<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Flavio Danesse escribi&oacute;:
<blockquote
 cite="mid:16a27f9c1001181114i7457814cu82e5825ad60ce830@mail.gmail.com"
 type="cite">Hola Pablo y dem&aacute;s muchachada.<br>
  <br>
Estaba viendo eso mismo, de dibujar partes de la pantalla y dem&aacute;s, pero
hay bastante para ver todav&iacute;a.<br>
  <br>
Hay cosas que todav&iacute;a no entiendo bien, por ejemplo, supongamos que
tengo un mapa grande, muy grande y en la pantalla solo quiero ver una
parte, pero cuando mueva el mouse hacia los lados poder recorrer el
mapa y ver las zonas que est&aacute;n fuera de la pantalla.<br>
Es como si me moviera sobre el mapa, todavia no lo he hecho, pero
imagino que tendr&iacute;a que cargar la imagen y hacer una m&aacute;scara del tama&ntilde;o
de la pantalla y mover la m&aacute;scara sobre el mapa para poder desplazarme
(no se si se entendi&oacute;).<br>
  <br>
</blockquote>
<br>
algo asi como pantalla.blit(mapa,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (0,0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; coordenada de
destino en pantalla<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; rectangulo_origen) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; este
es el que vas recalculando el x e y acorde a como se mueve el mouse
aumentarias x cada tanto movimiento del mouse<br>
<br>
ese es el metodo facil, copias toda el area , para no gastar todo el
tiempo de cpu en eso , habria que hacer algo mas optimo por ejemplo
scrollear ( en assembler lo mas seguro o tal vez C ) una superficie sdl
y solo copiar del mapa los cuadrados necesarios en 1 o 2 bordes de la
pantalla que queda "sucios" por el scroll.<br>
<br>
<br>
<br>
<br>
<br>
<blockquote
 cite="mid:16a27f9c1001181114i7457814cu82e5825ad60ce830@mail.gmail.com"
 type="cite">Estuve viendo como hacer men&uacute;s y eso ya lo tengo claro.<br>
  <br>
Con lo que no me encuentro es con el bucle del juego, porque si cargo
un menu tengo que capturar eventos del mouse y teclado sobre los
objetos del men&uacute;, pero cuando elijo "jugar", preferir&iacute;a cambiar de
bucle pero no se como hacerlo, es complicado tener todo en un solo
bbucle porque tengo que pensar que objetos hay en pantalla en todo
momento y asignar los eventos de mouse y teclado seg&uacute;n eso.<br>
  <br>
Quisiera tener el men&uacute; con su "captura de eventos" y al elegir "jugar"
llamar eal juego con su bucle principal, es lo mismo que cuando cambias
de nivel, no encuentro como parar ese bucle sin que se termine el juego.<br>
  <br>
</blockquote>
Bueno supongo que tenes una funcion o clase que dibuja el menu y
procesa los eventos , cuando detectas que el usuario hizo click en una
de las opciones<br>
podria simplemente llamar a la funcion o instanciar el objeto para
jugar y darle el control a la funcion que maneja eventos cuando estas
en ese nivel<br>
cuando termina el nivel , sale y seguis dentro del bucle del menu (
redibujas el menu una vez ) y estas listo para lo que siga<br>
No es la unica manera de hacerlo.<br>
<br>
<br>
<blockquote
 cite="mid:16a27f9c1001181114i7457814cu82e5825ad60ce830@mail.gmail.com"
 type="cite">PD:<br>
Estoy seguro que debe ser una bobada esto del bucle.<br>
  <br>
Por lo que yo veo, pygame es excelente para emulaciones tipo "el ciclo
del agua", "la clorofila", emulaci&oacute;n de gravedad y cosas de f&iacute;sicas,
esas cosas, que no requieren una interacci&oacute;n permanente como ser&iacute;a un
juego tipo galaxian. <br>
Me imagino buenas cosas con mapas, dibujo, geometr&iacute;a y edici&oacute;n de
im&aacute;genes etc.<br>
  <br>
No lo miro tanto como herramienta para juegos a no ser juegos de
tablero, porque el rendimiento no es bueno, me hubiera gustado hacer
algo con blender y pygame pero en la xo no tenemos py3d y seguramente
si lo tuviera el rendimiento ser&iacute;a mucho peor.<br>
  <br>
De todas maneras pygame est&aacute; muy bueno para hacer actividades de clase
en la xo, probablemente sea la mejor herramienta para nosotros en este
sentido.<br>
  <br>
</blockquote>
<br>
<blockquote
 cite="mid:16a27f9c1001181114i7457814cu82e5825ad60ce830@mail.gmail.com"
 type="cite">Estuve mirando el tema de la integraci&oacute;n con gtk y es muy
mala, no es buena idea porque se complica la captura de eventos en
pygame y gtk al mismo tiempo lo cual es una l&aacute;stima porque si se
pudiera hacer bien se ganar&iacute;a mucho tiempo y dise&ntilde;o.<br>
  <br>
En cuanto a la integraci&oacute;n de pygame con sugar, no lo he logrado porque
hay que bajarse un paquete de olpc y hacer unos malabares barbaros con
el, pero me imagino que si no se integra bien a gtk tampoco lo har&aacute; a
sugar.<br>
  <br>
</blockquote>
Bueno el paquete que yo baje de OLPC&nbsp; me dio algunos problemitas , al
final me copie el que venia con Conozca Uruguay y ese funciono OK<br>
<br>
<br>
<blockquote
 cite="mid:16a27f9c1001181114i7457814cu82e5825ad60ce830@mail.gmail.com"
 type="cite"><br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <br>
  <div class="gmail_quote">El 18 de enero de 2010 13:31, Pablo Moleri <span
 dir="ltr">&lt;<a moz-do-not-send="true" href="mailto:pmoleri@gmail.com">pmoleri@gmail.com</a>&gt;</span>
escribi&oacute;:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hola,<br>
    <br>
Si ten&eacute;s problemas de performance lo primero que ten&eacute;s que hacer es
tratar de utilizar un grupo de sprites optimizado y no dibujar todo el
fondo en cada frame.<br>
    <br>
Fijate en la referencia de PyGame: <a moz-do-not-send="true"
 href="http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.RenderUpdates"
 target="_blank">http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.RenderUpdates</a><br>
Ah&iacute; ten&eacute;s herramientas que te facilitan el actualizar s&oacute;lo las &aacute;reas de
la pantalla donde hubieron cambios.<br>
    <br>
Saludos,<br>
Pablo<br>
    <br>
    <div class="gmail_quote">2010/1/16 Flavio Danesse <span dir="ltr">&lt;<a
 moz-do-not-send="true" href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>&gt;</span><br>
    <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
      <div>
      <div class="h5"><b>Hola gente.</b><br>
      <br>
He estado jugando con pygame y la verdad es que est&aacute; bueno y muy muy
facil, se presta muchisimo para hacer actividades interactivas en la
xo, en particular me qued&eacute; pensando en la idea que alguien en la lista
ten&iacute;a para hacer una actividad sobre astronom&iacute;a.<br>
      <br>
Est&aacute; buen&iacute;simo para hacer cosa sobre f&iacute;sica, quimica, etc. . . Se
pueden hacer buenas emulaciones con pygame.<br>
      <br>
En cuanto a los juegos, que se supone que es para eso el paquete, al
menos lo que yo he hecho, anda bastante lento, le cuesta mucho a la xo
correr estas cosas.<br>
      <br>
Les paso en adjunto en archivo zipeado el jueguito que empec&eacute; a hacer
para aprender (no se si conviene seguirlo o hacer otra cosa mas
provechosa, la idea era solo aprender pygame).<br>
Son 3 archivos de c&oacute;digo, donde tendr&aacute;n que modificar las referencias a
las im&aacute;genes para que les funcione en sus PC (son solo 3 imagenes)<br>
      <br>
deben ejecutar el archivo BatallaEspacial.py<br>
      <br>
      <b>Hice simplemente:</b><br>
      <ol>
        <li>una pantalla con una imagen de fondo.</li>
        <li>una nave nodriza</li>
        <li>nueve naves tipo caza</li>
      </ol>
      <br>
La nave principal se mueve con el mouse, las naves cazas se mantienen
en formaci&oacute;n a una distancia determinada de la nave principal.<br>
Al presionar la tecla 1 las naves se forman de una manera y al
presionar 2 se forma de otra manera diferente.<br>
Al presionar la tecla a las naves se separan entre si, al presionar la
tecla z las naves se acercan entre si.<br>
      <br>
      <br>
Si les d&aacute; la voluntad de probarlo y mirarlo, agradecer&iacute;a consejos para
mejorar y hacer m&aacute;s eficiente el c&oacute;digo y perdonen si molesto por
mandar esto a la lista.<br>
      <br>
      </div>
      </div>
      <div class="im">_______________________________________________<br>
Olpc-uruguay mailing list<br>
      <a moz-do-not-send="true"
 href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
      <a moz-do-not-send="true"
 href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
      <br>
      </div>
    </blockquote>
    </div>
    <br>
    <br>
_______________________________________________<br>
Olpc-uruguay mailing list<br>
    <a moz-do-not-send="true"
 href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</a><br>
    <a moz-do-not-send="true"
 href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
    <br>
  </blockquote>
  </div>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Olpc-uruguay mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.laptop.org/listinfo/olpc-uruguay">http://lists.laptop.org/listinfo/olpc-uruguay</a>
  </pre>
</blockquote>
<br>
</body>
</html>