Ayuda con mi primer juego : tipo TETRIS

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: CEZ

Responder
Avatar de Usuario
santoto
8 bits
8 bits
Mensajes: 13
Registrado: 23 Jun 2007 15:26

Ayuda con mi primer juego : tipo TETRIS

Mensaje por santoto »

Bueno heme aqui luego de terminar el tutorial que estaba haciendo, he decidido comenzar con mi primer pequeño juego una nueva version del famoso TETRIS, y luego de pensar varios dias como encararlo y de ver distintos ejemplos, de romperme la cabeza pensando logre mostrar en pantalla una figura y moverla, mas aun hice que la figura vaya cayendo y con un temporizador maneje el retaardo del tiempo, solo quedaba detectar si una casilla esta ocupada, validar la posicion(que no se me salga de la pantalla) y el tema de las lineas; entonces digo para mi "...se lo muestro a mi hermano haber que le parece" y aqui descubro un gran problema que pasare a explicar lo mejor que pueda.

para ubicar las figuras utilizo una matriz de 20 filas x 15 columnas, la pongo en 0 y luego si una figura (un cuadradito de 25x25 pixeles) ocupa esa posicion le asigno -1, luego con un for recorro el arreglo y si en la posicion que estoy hay un -1 dibujo el cuadrado en pantalla, este es el funciionamento general. Ahora el problema es que cuando me quiero colocar entre las filas (0 a 3) y las columnas (16 a 19) el bloque desaparece y aparece en otra posicion, hace 3 horas que estoy leyendo y releyendo el codigo y no encuentro que es lo que causa esto, asi que les dejo un zip con los archivos y si pueden mirenlo y ven que pasa.

algunos pedazos de codigo estan puestos comentarios ya que estaba probando para ver que causaba el problema. Al ejecutarlo se genera mediante la funcion texto() el archivo ("notas.txt") en la cual se muestra el estado de la matriz antes de salir y la forma de la figura (esto lo hice para arreglar algunos problemas que tenia :))

Saludos. 8)

este es el codigo fuente http://www.gigasize.com/get.php/-1100007226/TETRIS.rar
incluye imagenes

PD: Benway gracias por las respuestas en los otros temas (recien los vi), aplicare en cuanto tenga tiempo tu metodo.

PD2: Ahora uso allegro
Avatar de Usuario
santoto
8 bits
8 bits
Mensajes: 13
Registrado: 23 Jun 2007 15:26

Mensaje por santoto »

He resuelto el problema, no se que pasa pero para resolverlo agrande la matriz, ahora tiene 18 columnas pero solo lo dejo pintar en las primeras 14,

Aunque igual me gustaria saber porque no andaba

Nos leemos :shock:
Avatar de Usuario
Benway
Site Admin
Site Admin
Mensajes: 9241
Registrado: 24 Dic 2005 10:18
Ubicación: Madrid
Contactar:

Re: Ayuda con mi primer juego : tipo TETRIS

Mensaje por Benway »

santoto escribió:PD: Benway gracias por las respuestas en los otros temas (recien los vi), aplicare en cuanto tenga tiempo tu metodo.
De nada, hombre... para eso estamos ;)

A ver si le echo un ojo al tetris este ;)
Un saludo.
Imagen - Imagen - Imagen
Avatar de Usuario
santoto
8 bits
8 bits
Mensajes: 13
Registrado: 23 Jun 2007 15:26

Mensaje por santoto »

Si alguno ha bajado el codigo vera que esta un poco liado asi que comenze a darle una forma mas limpia generando una clase "pieza" para manejar las piezas en un archivo de cabecera (.h) con su correspondiente desarrollo(.cpp), el asunto es que quiero utilizar para manejar los 2 sprites q necesita la clase otra libreria que ya tenia creada y al compilar me sale lo siguiente:

Compilador: Default compiler
Building Makefile: "C:\Documents and Settings\Exequiel\My Documents\PROG DE JUEGOS\TETRIS\Makefile.win"
Ejecutando make...
make.exe -f "C:\Documents and Settings\Exequiel\My Documents\PROG DE JUEGOS\TETRIS\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" -DALLEGRO_STATICLINK -Wall

g++.exe main.o pieza.o sprite.o -o "Tetris.exe" -L"C:/Dev-Cpp/lib" -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lalleg -mwindows -lalleg_s -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -ldinput -lddraw -ldxguid -lwinmm -ldsound

C:/Dev-Cpp/lib/liballeg_s.a(allegro.o)(.text+0x770):allegro.c: multiple definition of `allegro_exit'
C:/Dev-Cpp/lib/liballeg.a(dwdes00595.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(allegro.o)(.text+0x330):allegro.c: multiple definition of `_install_allegro_version_check'
C:/Dev-Cpp/lib/liballeg.a(dwdes00184.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(wsystem.o)(.text+0x570):wsystem.c: multiple definition of `_WinMain'

C:/Dev-Cpp/lib/liballeg.a(dwdes00000.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(keyboard.o)(.text+0x990):keyboard.c: multiple definition of `readkey'
C:/Dev-Cpp/lib/liballeg.a(dwdes01141.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(keyboard.o)(.text+0x1070):keyboard.c: multiple definition of `install_keyboard'

C:/Dev-Cpp/lib/liballeg.a(dwdes00938.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(timer.o)(.text+0x970):timer.c: multiple definition of `install_timer'
C:/Dev-Cpp/lib/liballeg.a(dwdes00945.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(graphics.o)(.text+0x170):graphics.c: multiple definition of `set_color_depth'
C:/Dev-Cpp/lib/liballeg.a(dwdes01216.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(graphics.o)(.text+0xf00):graphics.c: multiple definition of `create_bitmap'
C:/Dev-Cpp/lib/liballeg.a(dwdes00643.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(graphics.o)(.text+0x1dd0):graphics.c: multiple definition of `set_gfx_mode'

C:/Dev-Cpp/lib/liballeg.a(dwdes01232.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(gfx.o)(.text+0x350):gfx.c: multiple definition of `clear_bitmap'
C:/Dev-Cpp/lib/liballeg.a(dwdes00625.o)(.text+0x0): first defined here
C:/Dev-Cpp/lib/liballeg_s.a(blit.o)(.text+0xab40):blit.c: multiple definition of `blit'
C:/Dev-Cpp/lib/liballeg.a(dwdes00608.o)(.text+0x0): first defined here

make.exe: *** [Tetris.exe] Error 1

Ejecución Terminada


No tengo idea de porque pasa, espero q alguien pueda ayudarme.
Avatar de Usuario
Benway
Site Admin
Site Admin
Mensajes: 9241
Registrado: 24 Dic 2005 10:18
Ubicación: Madrid
Contactar:

Mensaje por Benway »

Tiene toda la pinta de ser por los #include: O bien lo has puesto de forma cíclica (un archivo incluye a otro, que a su vez incluye al primero), o tienes alguno repetido...

Repásalo bien, que ya verás cómo por ahí "vienen los tiros" ;)
Un saludo.
Imagen - Imagen - Imagen
vd_exposito
8 bits
8 bits
Mensajes: 2
Registrado: 21 Abr 2008 18:52

Re: Ayuda con mi primer juego : tipo TETRIS

Mensaje por vd_exposito »

Hola, gustaría tener el código de este tetris, porque el enlace donde lo subiste no funciona, tengo que hacer un tetris en cpp con una matriz dinamica y he pensado que tu código me podría servir como guía, ¿podrías publicarlo?, si lo puedes subir a otro gestor de descargas te agradecería que me dijeses el enlace de dicha descarga por favor, muchas gracias
Última edición por Benway el 21 Abr 2008 19:19, editado 1 vez en total.
Razón: Desde la solución del problema de notificación por email del foro, no se permite poner el correo electrónico para recibir respuestas a temas de interés para otros usuarios del foro.
Avatar de Usuario
santoto
8 bits
8 bits
Mensajes: 13
Registrado: 23 Jun 2007 15:26

Re: Ayuda con mi primer juego : tipo TETRIS

Mensaje por santoto »

Ya te conteste el privado pero porlas, aca te dejo el codigo:

http://rapidshare.com/files/109316223/TETRIS.rar.html

No esta terminado ya que no tengo tiempo como antes :( y me estoy dedicando a los estudios 8) pero cuando pueda vere si puedo terminarlo.
vd_exposito
8 bits
8 bits
Mensajes: 2
Registrado: 21 Abr 2008 18:52

Re: Ayuda con mi primer juego : tipo TETRIS

Mensaje por vd_exposito »

gracias, de todas maneras, cuando tenga el mio listo te lo enviaré, muchisimas gracias. Un abrazo
Responder