Mi primer videojuego terminado :. Tetraminos (tetris)

Mi primer videojuego terminado :. Tetraminos (tetris)

Notapor Metator de Arkalot » Vie May 16, 2008 1:39 am

Por fin, despues de algun tiempo estudiando como hacer vidijuegos,
termine el primero :D. Hasta ahora solo habia hecho ejemplos, y,
mas que nada, todos eran codigo copypasteado :P.

Pues entonces me encontre aqui una guia que recomendaba
comenzar haciendo un tetris, despues algo como un pong o
arkanoid, asi que ahi voy...

Despues de casi seis meses aprendiendo programacion (los ultimos
3 de hecho los pase estudiando blender) me propuse iniciar con un
proyecto hecho por mi mismo, usando lo poco que habia aprendido.
Aqui una captura:

Imagen

El juego no esta hecho en pygame, pero igual y para adaptarlo
bastaria cambiar las sentencias create_filled_rectangle(x,y, color,
etc) por imagenes o las propias draw en pygame, de hecho, el
juego funciona perfecto sin esas funciones, ya que incluye una
funcion mostrar_matriz() que imprime el contenido de una matriz
de esta forma:

000000000
000000000
000100000
000100000
000110000

Por supuesto, lo hace en la consola, donde los 1, son cualquier
numero distinto de 0.

El código aca:
http://uploading.com/files/5f7d4m99/tetris.rar#downloadform
(aunque al parecer, pocos tienen pythonG instalado o_0)

Para jugar, solo tiene que abirir el archivo 01.py en el editor
PythonG http://www3.uji.es/~dllorens/PythonG/ y darle en
python => ejecutar y listo.

Espero que si alguien se toma el tiempo de revisar el codigo,
pueda decirme que tal esta, pues considero que no es la mejor
forma de hacer un tetris, consume demasiado cpu en mi parecer,
para lo que hace...

Como sea, lo mejor de todo es que me tomo 2 dias hacerlo ñ_ñ.

Espero que esto pueda servirle a alguien que este empezando en
esto de los vidijuegos, nos vemos :arrow:
Última edición por Metator de Arkalot el Dom Oct 11, 2009 12:40 am, editado 2 veces en total
Avatar de Usuario
Metator de Arkalot
 
Mensajes: 34
Registrado: Mié Abr 23, 2008 2:17 am
Ubicación: México ñ_ñ !!

Versión Pygame terminada :.

Notapor Metator de Arkalot » Lun May 19, 2008 12:06 am

Aqui les dejo la version que hice para pygame. Usando pygame pude
controlar mejor los eventos de teclado, ahora las piezas se controlan
con las flechas de teclado y no con el mouse, como en el ejemplo de
pythonG.

Código fuente:
http://www.hotlinkfiles.com/files/1884813_l5xyy/tetraminos.rar

Imagen

Los cubos estan re-feos :), pero hace lo que se le pide...

Controles:
Flecha arriba = rotar pieza
Izquierda o derecha mueve las piezas
La tecla [p] pausa el juego

Hay algunos detalles que queria agregarle, como la capacidad de
guardar los records al terminar el juego, e incluso la posibilidad
de guardar las partidas, tal vez seria sencillo guardar en un carchivo
el estado de las matrices y la puntuación, para al comenzar usar
esos parametros y no los de defecto, pero por ahora prefiero
comenzar otro proyecto en lugar de mejorar este, pues creo que
me tomaria bastante tiempo....
Última edición por Metator de Arkalot el Jue Sep 25, 2008 4:22 pm, editado 1 vez en total
Avatar de Usuario
Metator de Arkalot
 
Mensajes: 34
Registrado: Mié Abr 23, 2008 2:17 am
Ubicación: México ñ_ñ !!

Notapor Nato » Lun May 19, 2008 4:46 pm

Para ser un "novato" esta bastante bien, pero creo que deberías a empezar a pensar en los usuarios Linux, porque .png no es lo mismo que .PNG o .ttf con .TTF, windows no diferencia entre minúsculas y mayúsculas pero linux si, ahora hablando del juego en sí, no hay demasiado que ver, pero lo que hay va como la seda, no me fallo nada, solo probé la versión de pygame, porque no encontré el PythonG en los repositorios de ubuntu, a ver si nos deleitas con algo nuevo dentro de poco.
Imagen
Avatar de Usuario
Nato
 
Mensajes: 26
Registrado: Sab Jul 21, 2007 11:11 am
Ubicación: Las Palmas, España

Notapor hugoruscitti » Lun May 19, 2008 8:57 pm

Saludos, a mí me gustó mucho tu programa. No es sencillo construir
un Tetris, y mucho menos en una biblioteca y luego adaptarlo a pygame. Te
felicito por tu trabajo.

Ahora sí, te comento que en GNU/Linux es necesario adaptar el nombre de
algunos archivos en mayúsculas. Luego de hacer ese cambio funciona perfecto:

Imagen

Ah, por cierto, una de las cosas que mas disfruto de juegos como Tetris es acelerar
la caída de las piezas pulsando hacia abajo. Mirando un poco tu código encontré
una forma de lograrlo, por eso te envío los cambios que realicé, por si lo quieres
ver/mejorar o usar lo que cambié:

http://www.losersjuegos.com.ar/incoming ... nos.tar.gz

Y otra cosa, si quieres hacer que el usuario pueda guardar su partida o los
puntajes puedes usar el módulo estándar de python "pickle" (o "cPickle"):

http://pyspanishdoc.sourceforge.net/lib ... ickle.html

es una de las formas mas sencillas de guardar información en disco.

Saludos, y muchas gracias por contarnos de tu juego, está excelente.
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 » Mar May 20, 2008 12:49 am

Hum, pues si. Trate de instalar linux hace tiempo, era una
distribucion ubuntu, un live cd mas bien, pero nomas no me
gusto, tuve algunos problemillas con el, como que a veces
se quedaba trabado el reproductor incluido, o no conocia la
forma de instalar programas nuevos, etc, etc, etc, ademas mi
familia que tambien usa el pc, no sabia como usarlo y tal, lo
desintale.:?

Pero afortunadamente, parece que pygame funciona
perfectamente en linux :D.
Si recuerdo haber tenido problemas en servidores basados en
linux donde debia escribir exactamente el nombre de los
archivos o los enlaces no me funcionaban, esto porque paint
parece guardar los archivos con la extension en mayusculas...
y al aprender a programar paginas web siempre escribia todo
en minusculas, ahi me percate del problema ...

Como sea, espero que los jueguillos que haga puedan abrirse
perfectamente en linux, tendre mas cuidado con las
extensiones y demas cosillas que puedan surgir...

Y ya en serio, me siento feliz de que les haya gustado el
programa, ahora tengo mas ganas de hacer el siguiente, un pong,
que seria mas vien una mejora del que ya habia hecho cuando
conoci pygame, pero pienso usar algunos personajes con
raquetas, en lugar de una barra,para que puedan golpear la pelota
hacia cierta direccion y no solo taparle el paso, ya lo prondre aqui
en cuanto lo termine...
Última edición por Metator de Arkalot el Jue Sep 25, 2008 4:27 pm, editado 1 vez en total
Avatar de Usuario
Metator de Arkalot
 
Mensajes: 34
Registrado: Mié Abr 23, 2008 2:17 am
Ubicación: México ñ_ñ !!

Notapor yasser_001200 » Jue Jul 17, 2008 5:06 pm

Hola. Así que has hecho un tetris. Yo tambien estoy pensando en hacer uno en VisualBasic, Delphi o C++.

Mi idea es hacer las figuras mediante bitmaps y con dos instrucciones for obtengo el color que hay en toda la pantalla si detecta el negro almacena en un array bidimensional el valor 0 sino almacenara el valor 1. Algo así:

for i=0 to screen_height do
for i=0 to screen_width do
begin
c=GetColor(hwnd_screen,j,i);
if(c==0) then
mapa[j][i]=0
else
mapa[j][i]=1;
end;
//esto es pascal

o mejor hago las figuras ordenando los datos del array y donde haya un cero dibujo un circulo o cuadrado negro y donde haya un 1 dibujo un circulo o cuadrado azul. ejemplo:

0000010000
0000111000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000

Crees que voy bien? De todos los juegos basicos para programadores novatos, el tetris es el más dificil.
Vienbeni2 a mi mundo....WAJAJAJAJAJA
yasser_001200
 
Mensajes: 46
Registrado: Lun May 19, 2008 3:28 pm

Notapor Metator de Arkalot » Sab Ago 02, 2008 12:53 am

Respecto a la duda de yasser:

Este fue el primer juego que hice, si ves las imagenes, en un
principio usaba un editor que me permitia ordenarle cosas como:

Código: Seleccionar todo
if pieza[2][2] == 1: # Pieza es una lista de listas (array puej)
    pintar_cubo_azul_en(2*ancho, 2*alto)


El tetris lo hice de la segunda forma que pones, jamas se me
ocurrio la primera, que me parece mas facil, dibujar con paint
los cubos que andar haciendo la matriz directamente [0,0,1]...
solo que todavia no usaba pixeles en pygame,

Pues yo te recomendaria la primer forma que pones, si puedes
hacerlo te seria mas facil poner nuevas piezas ñ_ñ

En cuanto a la sencillez, pues me resulto algo dificil hacerlo, ya
habia hecho un pong (incompleto) pero muy sencillo, y ahora lo
ultimo que hice fue una escena de rpg, creo que esta en
(http://www.losersjuegos.com.ar/foro/viewtopic.php?t=339) , soy
novato en esto, y desde hace 2 meses no agarro el pc para
programar nada, por lo que te recomiendo que revises el codigo
de esta pagina, ahi puse incluso una explicacion de como hice el
juego, ideas locas que tuve al hacerlo y demas, algo asi
como un paso a paso...

nos vemos...
Avatar de Usuario
Metator de Arkalot
 
Mensajes: 34
Registrado: Mié Abr 23, 2008 2:17 am
Ubicación: México ñ_ñ !!

Notapor carlosrod » Jue May 27, 2010 5:32 pm

esta bueno! me gusta! te felicito :lol:
carlosrod
 
Mensajes: 2
Registrado: Jue May 27, 2010 5:14 pm

Notapor carlosrod » Jue May 27, 2010 5:33 pm

esta bueno! me gusta! te felicito :lol:
carlosrod
 
Mensajes: 2
Registrado: Jue May 27, 2010 5:14 pm

Notapor shackra » Jue May 27, 2010 10:42 pm

si estuviste estudiando Blender podrías compartir la documentación que usaste!?

editado: deberias subir tu juego al grupo de Losersjuegos en gNewBook, la alternativa libre a facebook!, para mas información puedes visitar este post ;)
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica


Volver a Videojuegos

¿Quién está conectado?

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