¿como muevo todo el escenario?

Consulte acerca de programas, técnicas, algoritmos etc.

¿como muevo todo el escenario?

Notapor gatsu » Lun Feb 11, 2008 6:08 am

Hola a todos.

Mi problema es el siguiente:

- Quiero hacer un videojuego en el que un personaje se desplace por un escenario bastante amplio

- No pienso mostrar el escenario completo, sino solo la zona por donde transita el personaje.

He pensado que para lograr esto debo mover el escenario completo y solo ir dibujando lo que se vaya necesitando.

Ahora bien, lo que les quiero preguntar es: ¿Mi apreciación es correcta? ¿existe alguna función/clase en pygame que me apoye con esto?

Agradeceria mucho que me dieran su opinion.
gatsu
 
Mensajes: 1
Registrado: Lun Feb 11, 2008 5:59 am

Notapor hugoruscitti » Lun Feb 11, 2008 1:51 pm

Hola, entiendo que tu apreciación es correcta. El efecto de mostrar un
escenario amplio con desplazamiento se suele denominar "Scroll", muchos
juegos lo tienen y hay muchas formas de lograrlo.

Pygame no cuenta con una clase específica para lograrlo, dado que el
efecto de "scroll" es casi exclusivo de cada juego, y en esos casos
es mejor que el mismo programador implemente el scroll que necesita.

Para empezar te recomiendo que uses la idea que nos comentas
anteriormente: imprimir el escenario en diferentes posiciones
simulando el efecto de cámara, e imprimiendo solo lo que se ve
en pantalla. Para esto te será especialmente útil el tercer
parámetro opcional de la función 'blit':

http://www.pygame.org/docs/ref/surface. ... rface.blit

En la web tienes un ejemplo de scroll pero realizado en C con
SDL, se llama desplazamiento suave y está en la siguiente
dirección:

http://www.losersjuegos.com.ar/referenc ... emplos.php

Puedes usarlo como referencia si te parece bien. O si tienes
dificultades para interpretarlo avísame y lo re-escribo pero
para python y pygame.

Saludos.
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor Metator de Arkalot » Vie Ene 02, 2009 6:59 pm

Pensaba abrir un tema nuevo, pero vi que este ya estaba :lol:

Mi juego tiene un sistema de scroll como el descrito aquí, solo
que es un mapa MUY grande, y crear una Surface con pygame
toma mucho tiempo y memoria. Intentado solucionar esto pensé
en otra forma de lograr el scroll:

Revisar la posición de las unidades, así como de los tiles alrededor
de la pantalla y llamar a una función blit() que los pinte en la posición
correcta (restando a su posicion original la posición de camará), en
lugar de crear una superficie completa y tomar una parte.
ventaja: Como quiero hacer un juego en red, se podria enviar al jugador
solamente la información del entorno cercano, unidades y demás.
desventaja: hum, quiza algun efecto, como una explosión ocurriendo
fuera de pantalla, pero que arroje fuego o algo, no sería visible al jugador
a menos que se desplaze hacia alli.

Que les parece, el juego que estoy haciendo es de estrategia por turnos,
y cada casilla tiene sus propiedades, como la imágen a mostrar y las
unidades que en ese momento se encuentran en ellas, así solo revisaria
las casillas vecinas en lugar de revisar toda la lista de unidades :)
Avatar de Usuario
Metator de Arkalot
 
Mensajes: 34
Registrado: Mié Abr 23, 2008 2:17 am
Ubicación: México ñ_ñ !!

Notapor shackra » Lun Jun 15, 2009 4:59 pm

eso es parecido a mi problema.
buscare mas sobre el "Scroll" para pygame!
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron