Tetris by Bkron
Started by
Bkron
, 05 Jul 2011 05:40 PM
31 replies to this topic
#1
Posted 05 July 2011 - 05:40 PM
Versión del Tetris que he programado en Java con LibGDX.
Versión de 7/7/2011 18:00:
http://www.mediafire...wu30wuaz5p6wj9b
Controles:
[*:1awjlflu] Flechas: mover la pieza a los lados y hacia abajo.
[*:1awjlflu] A y S: girar la pieza a la izquierda y a la derecha respectivamente.
[*:1awjlflu] Espacio: empezar/pausa.
Características:
[*:1awjlflu] Música de fondo (con introducción y bucle) y sonidos. La música es el tema de Tetris versión Ska.
[*:1awjlflu] Forma de puntuar: Dejar caer una pieza suma un punto por cada linea que baje. Bajar una pieza pulsando abajo, suma dos puntos por cada linea bajada. Al hacer líneas se suman puntos en función de la cantidad de lienas simultaneas: una: 100; dos: 250; tres: 500; cuatro: 1000. Por cada 10.000 puntos aumenta la velocidad. El juego termina al conseguir 99.999 puntos.
[*:1awjlflu] Se puede elegir la velocidad del juego antes de empezar pulsando izquierda o derecha. Esa velocidad se mantendrá hasta que se alcance una puntuación que obligue a subirla (por ejemplo, jugando con velocidad 5, se mantendrá hasta los 60.000 puntos).
Versión de 7/7/2011 18:00:
http://www.mediafire...wu30wuaz5p6wj9b
Controles:
[*:1awjlflu] Flechas: mover la pieza a los lados y hacia abajo.
[*:1awjlflu] A y S: girar la pieza a la izquierda y a la derecha respectivamente.
[*:1awjlflu] Espacio: empezar/pausa.
Características:
[*:1awjlflu] Música de fondo (con introducción y bucle) y sonidos. La música es el tema de Tetris versión Ska.
[*:1awjlflu] Forma de puntuar: Dejar caer una pieza suma un punto por cada linea que baje. Bajar una pieza pulsando abajo, suma dos puntos por cada linea bajada. Al hacer líneas se suman puntos en función de la cantidad de lienas simultaneas: una: 100; dos: 250; tres: 500; cuatro: 1000. Por cada 10.000 puntos aumenta la velocidad. El juego termina al conseguir 99.999 puntos.
[*:1awjlflu] Se puede elegir la velocidad del juego antes de empezar pulsando izquierda o derecha. Esa velocidad se mantendrá hasta que se alcance una puntuación que obligue a subirla (por ejemplo, jugando con velocidad 5, se mantendrá hasta los 60.000 puntos).
#2
Posted 05 July 2011 - 06:13 PM
Tienes que llamarlo de otra forma, Tetris es marca comercial xD
#3
Posted 05 July 2011 - 06:20 PM
Ya sé, pondré la R al revés y lo llamaré TETЯIS! nadie se dará cuenta!
#4
Posted 05 July 2011 - 06:53 PM
Tretis.
#7
Posted 05 July 2011 - 09:37 PM
Ya tengo bastante hecho, pero aún estoy intentando averiguar por qué se para cuando hago una linea...
(Lo de la derecha es la pantalla "version texto")
Edit: arreglado lo de las lineas xD.
El juego tal cual está no se bajan las piezas solas, no tiene ningún control del tiempo y las piezas se mueven a toda leche, y no hay "game over".
#8
Posted 05 July 2011 - 10:13 PM
Flipante bkron! Para lo de las piezas a toda leche, supongo que con poner que a la posición actual se le sumen/resten ( depende de como lo hayas hecho) menos "puntos", irá mas lento. habria que ver el código para saber.
No sé si se me ha entendido xD pongamos que en cada refresco de pantalla sea posiciónpieza.x=lo que sea posiciónpieza.y=lo que sea + 5 ( por poner), pues posicionpieza.y=loquesea +3, por ejemplo.
para el game over, pues supongo que si le dices que las piezas caidas llegan a la posición x/y que corresponde con lo alto del cuadro, = terminar funcion de juego activo y cargar pantalla de game over. Lo mismo, habría que ver el código para ver como te lo tienes montado xD
El control del tiempo no sé si LibGDX tiene algúna función de control de tics o algo, para eso es muy útil algo así.
No sé si se me ha entendido xD pongamos que en cada refresco de pantalla sea posiciónpieza.x=lo que sea posiciónpieza.y=lo que sea + 5 ( por poner), pues posicionpieza.y=loquesea +3, por ejemplo.
para el game over, pues supongo que si le dices que las piezas caidas llegan a la posición x/y que corresponde con lo alto del cuadro, = terminar funcion de juego activo y cargar pantalla de game over. Lo mismo, habría que ver el código para ver como te lo tienes montado xD
El control del tiempo no sé si LibGDX tiene algúna función de control de tics o algo, para eso es muy útil algo así.
#9
Posted 05 July 2011 - 10:24 PM
Lo de game over no es ningún problema, es simplemente que todavía no lo he hecho xD. Mañana sigo con eso y con lo demás.
#11
Posted 05 July 2011 - 11:21 PM
Jo, me sorprende la captura esa. Te desenvuelves bien tirándote a la piscina de usar algo habiéndolo mirado en 2 días. El tetris en una tarde!
#12
Posted 06 July 2011 - 06:57 AM
Muy chulo Kbron
Editado por FvG, 24 de noviembre 3400 A.C. - 06:20 PM.
#13
Posted 06 July 2011 - 09:26 AM
- Añadí el Game Over, simplemente comprobando si cada pieza nueva colisiona al empezar, usando una función de comprobar colisión que hice para los movimientos.
- Mejora del control, las piezas ya no mueven por cada refresco de imagen. Haciendo uso del tiempo delta (tiempo entre cada refresco de imagen) puedo controlar la velocidad de los movimientos.
- Añadí la "pieza siguiente", tardé menos de lo que pensaba.
Aún me queda hacer que las piezas bajen solas, y que lo hagan a la velocidad indicada. Y lo más importante, optimizar el juego, tal como está ahora parece que come muchos recursos, si lo quiero cerrar tarda mucho (aguanto más a veces cerrando el compilador directamente), y puede llegar a quedarse petado...
#14
Posted 06 July 2011 - 03:17 PM
Arreglado el asunto del rendimiento. Antes lo que hacía para dibujar la pantalla era crear objetos de la clase cuadrado (cada uno de los cuadraditos que componen las piezas, almacenaban las coordenadas y el color, y en base al color creaban una textura. Al final, crear tantos cuadrados y tantas texturas machacaba la memoria... Cambié la clase cuadrado por una clase de la que no se pueden crear objetos y que tiene texturas estáticas ya hechas para todos los colores, además de funciones estáticas para calcular las coordenadas.
Y las piezas ya bajan solas según la velocidad que tenga el juego.
Creo que ya no me queda mucho más por hacer que ponerlo bonito... xD
Y las piezas ya bajan solas según la velocidad que tenga el juego.
Creo que ya no me queda mucho más por hacer que ponerlo bonito... xD
#15
Posted 06 July 2011 - 03:42 PM
Deberías registrarte en github e ir colgando el código según vas tabajando en él
#16
Posted 06 July 2011 - 03:45 PM
Mmm, me estás incitando a que trastée también en este mundidillo.
#17
Posted 06 July 2011 - 03:45 PM
Uf, no se, eso lo veo para gente más experimentada... xDDeberías registrarte en github e ir colgando el código según vas tabajando en él
Le he pasado ya el "juego" a Daguar y Ultra-K, si alguien más lo quiere ver lo subo a algún lado.
#18
Posted 06 July 2011 - 04:12 PM
Hombre, si cada ciclo creabas un cuadrado nuevo porque sí... ahora entiendo lo de la memoria xD
Yo pensaba que simplemente mirarías la matriz y en cada sitio dibujarías lo que tocase, no que crearías algo nuevo.
Como mucho tener una matriz de cuadrados y simplemente llamar a "dibujar", pero no crear objetos nuevos cada vez.
Yo pensaba que simplemente mirarías la matriz y en cada sitio dibujarías lo que tocase, no que crearías algo nuevo.
Como mucho tener una matriz de cuadrados y simplemente llamar a "dibujar", pero no crear objetos nuevos cada vez.
#19
Posted 06 July 2011 - 04:40 PM
Estaba convencido que haciendo lo de "new constructor()" borraba el objeto anterior xD
#20
Posted 06 July 2011 - 11:57 PM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users