Hola, necesito consejos :-)

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

Hola, necesito consejos :-)

Notapor kefren » Vie May 07, 2010 1:52 am

Muy buenas a todos, llevo un tiempo visitando la página y el foro. El motivo no es otro que el desarrollo de un juego sencillo usando Python y Pygame.

Soy estudiante de Grado Medio de Informática en España, y quiero realizar de proyecto final un videojuego. El problema viene, en que el tiempo se me acaba, lo he ido dejando y ahora sólo me quedan 15 días xD.

No es por ser vago, es porque apenas tengo tiempo, duermo poco, realizo las prácticas en empresa y me estoy preparando la prueba de acceso al Grado Superior, y ahora encima, el proyecto.

Estoy un poco ofuscado, pero bueno, me veo capaz de hacer algo decente en el tiempo que me queda. Bueno, voy al grano...

Quiero realizar un pequeño juego de plataformas, sencillo, mediante sprites y demás, con dos o tres mapas cortitos. Para ello, estoy aprendiendo sobre colisiones.

Me estoy basando en un par de ejemplos de la página, "Ejemplo de plataformas", "Cars, maneja un automóvil" y "Pygame: ¡Ayuda!, ¿Como muevo una imagen?"

Creo que se me olvida alguno, pero bueno. Mis dudas son por ahora generales, son básicamente:

- ¿Es buena idea hacer algo de plataformas para el poco tiempo que tengo?

- Me gustaría que me dijérais las funciones principales en las que debo centrarme, obviando algunas que me puedan liar y que no sean necesarias para el desarrollo del juego.

Seguramente me surgirán más dudas que iré comentando por aquí, serán referentes al código y demás.

Muchas gracias.
kefren
 
Mensajes: 4
Registrado: Jue May 06, 2010 4:32 pm
Ubicación: En una microscópica partícula del Cosmos

Re: Hola, necesito consejos :-)

Notapor Geo » Vie May 07, 2010 4:29 am

kefren escribió:- ¿Es buena idea hacer algo de plataformas para el poco tiempo que tengo?

De que se puede, se puede, pero yo optaría por algo más sencillo :).
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México

Re: Hola, necesito consejos :-)

Notapor hugoruscitti » Vie May 07, 2010 5:03 am

kefren escribió:- ¿Es buena idea hacer algo de plataformas para el poco tiempo que tengo?


Creo que hacer un juego de plataformas desde cero te llevará
un poco mas de tiempo, de todas formas podrías plantear
si te permiten comenzar con un ejemplo ya creado. Por ejemplo,
el juego de plataformas de la web es GPL, podrías usarlo como
base para crear tu trabajo (eso sí, consulta antes).

Además, piensa que al hacer un trabajo tu juego necesitará
estar completo, tener una presentación, menú y tal vez
una final.

kefren escribió:- Me gustaría que me dijérais las funciones principales en las que debo centrarme, obviando algunas que me puedan liar y que no sean necesarias para el desarrollo del juego.


Depende mucho del juego, pero creo que las principales
son el manejo de teclado y cómo imprimir en pantalla.

Luego, si haces en realidad otro juego, no uno de plataformas,
intenta usar el mouse para interactuar con el usuario en lugar
del teclado. Suele ser mas sencillo de manejar, bah a mi modo
de ver.

kefren escribió:Seguramente me surgirán más dudas que iré comentando por aquí, serán referentes al código y demás.


Si, tranquilo, aquí estamos para contestar tus dudas lo
antes posible.

Ah, por cierto, se me ocurre un juego que puede ser mas
sencillo. ¿Has visto alguna vez los juegos de memoria?:

http://www.muchosjuegos.net/jugar.php?j ... animal.swf

si haces uno de esos juegos puede que te resulte mas sencillo
complir con el plazo, y será un juego al que puedes
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Notapor kefren » Mié May 12, 2010 1:28 pm

Hola, en primer lugar muchas gracias a los dos, en segundo lugar, pedir perdón por la tardanza en responder, ya que he estado unos días sin internet en casa. Bueno, el viernes estuve en clase, hablando con el profesor y eso, y me dio una idea fantástica.

Realizar un juego de laberintos, ¿qué os parece? Por mi parte lo veo bastante más viable que uno de plataformas, ya por lo menos, muevo una imagen sobre un fondo realizado con sprites, es un avance la verdad jejeje.

Ahora, debería centrarme en estudiar las colisiones e idear los mapas ¿no? Otra cosa que me gustaría saber, es cómo hacer para que el personaje al moverse cambie de sprite. Sé que en el juego de plataformas del alien rojo viene muy bien ejemplificado, pero agradecería que alguno de ustedes me detallara un poco como realizarlo.

Ahora mismo en España son las 15:27, esta noche publico el código que llevo, o mejor, lo subo a cualquier servidor de descarga directa con las imágenes y todo.

¡Un saludo! :D
kefren
 
Mensajes: 4
Registrado: Jue May 06, 2010 4:32 pm
Ubicación: En una microscópica partícula del Cosmos

Notapor endaramiz » Mié May 12, 2010 8:36 pm

Me parece buena idea un juego de laberintos. Seguramente, un Pong sería más fácil, pero quizás sería demasiado sencillo para un proyecto.

Suerte.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Notapor kefren » Jue May 20, 2010 3:41 am

Muy buenas a todos. Perdonad si escribo poco, ando muy muy muy justo de tiempo. Al final opté por el juego de laberintos, pero tengo un pequeño problema.

He realizado un menú para el juego en sí, sólo consta de 2 opciones. Iniciar partida y Salir. Lo que quiero es que cuando el usuario esté sobre una opción y pulse la tecla espacio, pues que haga algo.

O se salga, o inicie la partida, el problema es que no hace nada de nada. Agradecería una pequeña ayuda, muchas gracias.

Adjunto el código de la función.

Código: Seleccionar todo
def menu():

   fondo = pygame.image.load("fondo_menu.png")

   fuente1 = pygame.font.Font("fnt.ttf", 70)
   fuente2 = pygame.font.Font("fnt.ttf", 30)

   titulo = fuente1.render('Labyrinth', 1, (255, 0, 0))
   opcion_1 = fuente2.render('Iniciar partida', 1, (255, 255, 255))
   opcion_2 = fuente2.render('Salir', 1, (0, 255, 0))

   opcion_actual = 1

   while 1:
      for event in pygame.event.get():
      
         if event.type == pygame.QUIT:
            sys.exit()

      tecla = pygame.key.get_pressed()

      if tecla[K_DOWN]:
         opcion_1 = fuente2.render('Iniciar partida', 1, (0, 255, 0))
         opcion_2 = fuente2.render('Salir', 1, (255, 255, 255))
         opcion_actual = 2
      
      elif tecla[K_UP]:
         opcion_1 = fuente2.render('Iniciar partida', 1, (255, 255, 255))
         opcion_2 = fuente2.render('Salir', 1, (0, 255, 0))
         opcion_actual = 1

      if tecla[K_SPACE]:
         if opcion_actual == 1:
            preparar_mapa(screen)
            preparar_personaje()
         elif opcion_actual == 2:
            pygame.QUIT            

      screen.blit(fondo, (0, 0))
      screen.blit(titulo, (270, 180))
      screen.blit(opcion_1, (320, 300))
      screen.blit(opcion_2, (370, 350))
      pygame.display.flip()


Lo que quiero es, que llame a la función preparar_mapa() y preparar_personaje(), que al parecer no lo hace, porque el menú no se quita de la pantalla. No sé si es que tengo que limpiarla o algo.

Muchas gracias :wink:
kefren
 
Mensajes: 4
Registrado: Jue May 06, 2010 4:32 pm
Ubicación: En una microscópica partícula del Cosmos

Notapor Juanxo » Jue May 20, 2010 11:47 am

buenas kefren

tu ejemplo si que llama a las funciones, pero fijate que al final siempre acabas con:
Código: Seleccionar todo
      screen.blit(fondo, (0, 0))
      screen.blit(titulo, (270, 180))
      screen.blit(opcion_1, (320, 300))
      screen.blit(opcion_2, (370, 350))


por lo que siempre estas dibujando el menu al final. Si no me equivoco, en la seccion de ejemplos de losersjuegos, tienes un ejemplo de un menu que hizo Hugo usando una maquina de estados. Puede que eso resuelva tus dudas
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor kefren » Jue May 20, 2010 4:57 pm

Hola a todos, gracias por la respuesta Juanxo. Me ha sido útil esa apreciación tuya, por lo que se me ocurrió colocar una variable de control.

Ahora al pulsar espacio, sí cambia y aparece el mapa del juego, pero no se mueve el personaje. Supongo que será porque la función menu() la llamo fuera del bucle while de la función main(), y por eso no se repite constantemente.

Sólo coloca las imágenes y listo, bueno, es un paso jajaja. No encuentro el ejemplo ese que dices. ¿En qué sección está?

¡Un saludo a todos! :D
kefren
 
Mensajes: 4
Registrado: Jue May 06, 2010 4:32 pm
Ubicación: En una microscópica partícula del Cosmos

Notapor Juanxo » Jue May 20, 2010 11:12 pm

Ejemplo menu. En este ejemplo lo unico que hace cuando pulsas espacio es imprimir una cosa, pero para un menu de verdad, podrias hacer lo siguiente.

No se como andas de Programacion con Objetos, pero el tema es el siguiente:

Te podrías crear una jerarquia de clases, donde tienes tu menu basico que seria como una plantilla para las clases hijas y cada menu que te quieras hacer seria una clase hija, entonces tu te puedes hacer un objeto menu, y si pulsas la opcion creditos por ejemplo, cambiar tu menu a creditos

Todo se reduce mas o menos a una "super maquina de estados" la que se encarga de controlar todo.

Este concepto lo podrías ampliar a todas las escenas, creando te un Director (creo que asi es como estaba creado el asadetris, que quizas hugo tenga por ahí) que se encarga de manejar cada pantalla

Por ejemplo. Si estas en la pantalla inicial y pulas enter sobre jugar, te cambia de pantalla a la de juego, etc...

Un saludo y perdon por escribir tanto
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)


Volver a General

¿Quién está conectado?

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