Hola a todos! Queria comentar que estaba tratando de hacer el tipico clon del tetris, cuando me tope con cierto inconveniente.
Estoy tratando de hacer el hard drop con su respectiva pieza fantasma para saber donde iría a caer.. Hasta ahora para no detenerme ahi y poder seguir sin problemas lo " simule " haciendo descender la pieza mas rápido de lo habitual.
Estoy tratando de crear el clon del tetris siguiendo algunos tips de esta pagina
https://gamedevelopment.tutsplus.com/tutorials/implementing-tetris-collision-detection--gamedev-852
Con eso en mente paso a explicar que separe los tableros en 2 uno dinamico y el otro de aterrizaje y los estoy almacenando en un grilla ds_grid y mis piezas tambien las almaceno en una ds_grid de 4x4
Trate haciendo lo siguiente:
Obviamente este codigo no me funciono trate un par de cosas mas y nada.. Queria saber si ustedes encontraron alguna solución o tienen algo en mente que pueda funcionar, o tal vez la idea que tenia no estaba mal pero falle en el metodo al aplicarla.
Quisiera escuchar sus comentarios al respecto y si tienen alguna idea que tal vez podamos llevar a cabo para encontrar una solucion! ;D
Estoy tratando de hacer el hard drop con su respectiva pieza fantasma para saber donde iría a caer.. Hasta ahora para no detenerme ahi y poder seguir sin problemas lo " simule " haciendo descender la pieza mas rápido de lo habitual.
Estoy tratando de crear el clon del tetris siguiendo algunos tips de esta pagina
https://gamedevelopment.tutsplus.com/tutorials/implementing-tetris-collision-detection--gamedev-852
Con eso en mente paso a explicar que separe los tableros en 2 uno dinamico y el otro de aterrizaje y los estoy almacenando en un grilla ds_grid y mis piezas tambien las almaceno en una ds_grid de 4x4
Trate haciendo lo siguiente:
Código [Seleccionar]
/* Aca trato de obtener la ultima linea donde hay bloques /*
for(j=0; j < 4; j++){
if (piece[# j, potential[1]] > 0){
if (get_line[j] == 0) {
get_line[j]= piece[# j, potential[1]];
}else{
get_line[j+1] = piece[# j, potential[1]];
}
}
}
/*Una vez que se cual fue la ultima fila. Trato de buscar la primera y la ultima columna que contengan bloque*/
for(i=0; i < 4; i++){
if (get_line > 0){
last_value = i;
if(first_value==-1) then first_value = i;
}
}
/*Con todos esos datos trato de " trazar " una vertical hacia abajo para saber cual de todos los bloques colisiona primero y asi poder aterrizar arriba*/
for(i= potential[1]; i < ds_grid_height(landed_board); i++){
for(j=first_value; j < last_value ; j++){
if (landed_board[# j, i] > 0){
return i-1;
}
}
}
Obviamente este codigo no me funciono trate un par de cosas mas y nada.. Queria saber si ustedes encontraron alguna solución o tienen algo en mente que pueda funcionar, o tal vez la idea que tenia no estaba mal pero falle en el metodo al aplicarla.
Quisiera escuchar sus comentarios al respecto y si tienen alguna idea que tal vez podamos llevar a cabo para encontrar una solucion! ;D