Lo que me dices sobre el bucle ya lo hice, pero se cuelga porque quedan ambos bucles funcionando, ese es el tema en realidad, cuando activo el segundo bucle no puedo hacerlo desde dentro del primero, tengo que hacerlo desde fuera de este.<br>
<br>La idea es matar el primer bucle y luego llamar al segundo.<br>¿como hago?<br><br><br><br><div class="gmail_quote">El 18 de enero de 2010 18:24, Fabian Peña <span dir="ltr"><<a href="mailto:fapenia@adinet.com.uy">fapenia@adinet.com.uy</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div bgcolor="#ffffff" text="#000000">
Flavio Danesse escribió:
<div class="im"><blockquote type="cite">Hola Pablo y demás muchachada.<br>
<br>
Estaba viendo eso mismo, de dibujar partes de la pantalla y demás, pero
hay bastante para ver todavía.<br>
<br>
Hay cosas que todaví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án fuera de la pantalla.<br>
Es como si me moviera sobre el mapa, todavia no lo he hecho, pero
imagino que tendría que cargar la imagen y hacer una máscara del tamaño
de la pantalla y mover la máscara sobre el mapa para poder desplazarme
(no se si se entendió).<br>
<br>
</blockquote>
<br></div>
algo asi como pantalla.blit(mapa,<br>
(0,0) coordenada de
destino en pantalla<br>
rectangulo_origen) 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.<div class="im"><br>
<br>
<br>
<br>
<br>
<br>
<blockquote type="cite">Estuve viendo como hacer menú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ú, pero cuando elijo "jugar", preferirí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ún eso.<br>
<br>
Quisiera tener el menú 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></div>
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.<div class="im"><br>
<br>
<br>
<blockquote 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ón de gravedad y cosas de físicas,
esas cosas, que no requieren una interacción permanente como sería un
juego tipo galaxian. <br>
Me imagino buenas cosas con mapas, dibujo, geometría y edición de
imá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ía mucho peor.<br>
<br>
De todas maneras pygame está 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 type="cite">Estuve mirando el tema de la integració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ástima porque si se
pudiera hacer bien se ganaría mucho tiempo y diseño.<br>
<br>
En cuanto a la integració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á a
sugar.<br>
<br>
</blockquote></div>
Bueno el paquete que yo baje de OLPC me dio algunos problemitas , al
final me copie el que venia con Conozca Uruguay y ese funciono OK<br>
<br>
<br>
<blockquote type="cite"><div><div></div><div class="h5"><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"><<a href="mailto:pmoleri@gmail.com" target="_blank">pmoleri@gmail.com</a>></span>
escribió:<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és problemas de performance lo primero que tené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 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í tenés herramientas que te facilitan el actualizar sólo las á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"><<a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a>></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><b>Hola gente.</b><br>
<br>
He estado jugando con pygame y la verdad es que está bueno y muy muy
facil, se presta muchisimo para hacer actividades interactivas en la
xo, en particular me quedé pensando en la idea que alguien en la lista
tenía para hacer una actividad sobre astronomía.<br>
<br>
Está buenísimo para hacer cosa sobre fí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é 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ódigo, donde tendrán que modificar las referencias a
las imá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ó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á la voluntad de probarlo y mirarlo, agradecería consejos para
mejorar y hacer más eficiente el código y perdonen si molesto por
mandar esto a la lista.<br>
<br>
</div>
</div>
<div>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a 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 href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br>
</blockquote>
</div>
<br>
</div></div><pre><hr size="4" width="90%"><div class="im">
_______________________________________________
Olpc-uruguay mailing list
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a>
</div></pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div><br>