[Olpc-uruguay] Sobre Pygame

Flavio Danesse fdanesse en gmail.com
Lun Ene 18 15:37:49 EST 2010


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.

La idea es matar el primer bucle y luego llamar al segundo.
¿como hago?



El 18 de enero de 2010 18:24, Fabian Peña <fapenia en adinet.com.uy> escribió:

>  Flavio Danesse escribió:
>
> Hola Pablo y demás muchachada.
>
> Estaba viendo eso mismo, de dibujar partes de la pantalla y demás, pero hay
> bastante para ver todavía.
>
> 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.
> 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ó).
>
>
> algo asi como pantalla.blit(mapa,
>                                         (0,0)       coordenada de destino
> en pantalla
>                                         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
>
> 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.
>
>
>
>
>
>
> Estuve viendo como hacer menús y eso ya lo tengo claro.
>
> 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.
>
> 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.
>
>  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
> 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
> cuando termina el nivel , sale y seguis dentro del bucle del menu (
> redibujas el menu una vez ) y estas listo para lo que siga
> No es la unica manera de hacerlo.
>
>
>
> PD:
> Estoy seguro que debe ser una bobada esto del bucle.
>
> 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.
> Me imagino buenas cosas con mapas, dibujo, geometría y edición de imágenes
> etc.
>
> 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.
>
> 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.
>
>
> 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.
>
> 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.
>
>  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
>
>
>
>
>
>
>
>
>
>
>
> El 18 de enero de 2010 13:31, Pablo Moleri <pmoleri en gmail.com> escribió:
>
>> Hola,
>>
>> 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.
>>
>> Fijate en la referencia de PyGame:
>> http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.RenderUpdates
>> Ahí tenés herramientas que te facilitan el actualizar sólo las áreas de la
>> pantalla donde hubieron cambios.
>>
>> Saludos,
>> Pablo
>>
>> 2010/1/16 Flavio Danesse <fdanesse en gmail.com>
>>
>>>  *Hola gente.*
>>>
>>> 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.
>>>
>>> Está buenísimo para hacer cosa sobre física, quimica, etc. . . Se pueden
>>> hacer buenas emulaciones con pygame.
>>>
>>> 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.
>>>
>>> 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).
>>> 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)
>>>
>>> deben ejecutar el archivo BatallaEspacial.py
>>>
>>> *Hice simplemente:*
>>>
>>>    1. una pantalla con una imagen de fondo.
>>>    2. una nave nodriza
>>>    3. nueve naves tipo caza
>>>
>>>
>>> La nave principal se mueve con el mouse, las naves cazas se mantienen en
>>> formación a una distancia determinada de la nave principal.
>>> Al presionar la tecla 1 las naves se forman de una manera y al presionar
>>> 2 se forma de otra manera diferente.
>>> Al presionar la tecla a las naves se separan entre si, al presionar la
>>> tecla z las naves se acercan entre si.
>>>
>>>
>>> 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.
>>>
>>>  _______________________________________________
>>> Olpc-uruguay mailing list
>>> Olpc-uruguay en lists.laptop.org
>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>
>>>
>>
>> _______________________________________________
>> Olpc-uruguay mailing list
>> Olpc-uruguay en lists.laptop.org
>> http://lists.laptop.org/listinfo/olpc-uruguay
>>
>>
> ------------------------------
>
> _______________________________________________
> Olpc-uruguay mailing listOlpc-uruguay en lists.laptop.orghttp://lists.laptop.org/listinfo/olpc-uruguay
>
>
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20100118/ea1d2d08/attachment-0001.htm 


More information about the Olpc-uruguay mailing list