Hola a todos, tratare de ser breve.

resulta que tengo el room como un tablero de 50x50 donde uso tiles para poner campo, monta?as, desierto, etc.

y me gustaria saber como saber que un objeto esta en cierto tile (en la casilla donde esta ese tile), esto para que al momento de entrar en batalla salga con ese fondo.

por ejemplo si un objeto esta en un tile de desierto, cuando este entre en batalla, tendre que poner un fondo de desierto, y asi con los demas tiles y fondos...

espero haberme explicado...
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Pues lo mejor que puedes hacer es poner diferentes objetos invisibles, uno para las monta?as, otro para desiertos... y esos objetos ponerlos donde haya su tile.
Creas una varible (lugar_batalla), y antes de pasar a la batalla:
if lugar_batalla=desierto {...}
if lugar_batalla=monta?a{...}

O en lugar de con if lo puedes hacer con switch.

Espero que te sirva
si quieres jugar a un juego de internet
                              DINOPARC


si alguien entra que me lo diga por Mensaje Privado y le ayudo

Cita de: jesuan94 en Enero 10, 2010, 09:47:44 PM
Pues lo mejor que puedes hacer es poner diferentes objetos invisibles, uno para las monta?as, otro para desiertos... y esos objetos ponerlos donde haya su tile.
Creas una varible (lugar_batalla), y antes de pasar a la batalla:
if lugar_batalla=desierto {...}
if lugar_batalla=monta?a{...}

O en lugar de con if lo puedes hacer con switch.

Espero que te sirva


pero el room hasta ahora es de 1000x800 
los tiles son de 50x50

ahora imaginate el montonal de objetos que pondria para cada tile (que me diga que tipo de objeto es)
ya lo habia pensado asi, pero me repercutaria en la memoria.
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Mmm... la mejor forma que se me ocurre es que crees un array con el tipo de suelo de cada casilla.

global.map[0,0]="Llanura"
global.map[0,1]="Monta?a"
global.map[0,2]="Agua"
etc... obviamente el mapa lo ten?s que crear de forma automatizada no vas a hacer cada linea una por una, seria insano.

y despu?s haces que el personaje tambien lleve una posicion en un array cuando se mueve.
Cuando vas a la batalla te fijas en que casilla del array se encuentra el jugador y usas esos valores para obtener el tipo de suelo en el que se encuentra.

Capaz me exprese medio extra?o, ando algo apurado espero que te sirva.

Si cada tipo de tile viene de un fondo distinto es bastante simple, primero adquieres la id del tile, luego adquieres el index del fondo del que proviene, luego basado en ese index inicias la batalla en el sitio apropiado, por ejemplo:

id=tile_layer_find(depth,x,y);
back=tile_get_background(id);

switch (back){
case (bck_pradera): //batalla en la pradera;
case (bck_desierto): //batalla en el desierto;
case (bck_rio): //batalla en el rio;
case (bck_montana): //batalla en la monta?a;
case (bck_etc): //etc etc etc;
}


Por otro lado si todos los tiles vienen del mismo fondo entonces la soluci?n de Kraken me parece lo m?s viable.

he estado lidiando con algo como dice Kraken y pense que habia una forma como la de Killer, solo que no sabia que utilizar voy a tratar la de Killer...


Gracias a todos por responder
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Cita de: Killer en Enero 10, 2010, 11:39:15 PM
Si cada tipo de tile viene de un fondo distinto es bastante simple, primero adquieres la id del tile, luego adquieres el index del fondo del que proviene, luego basado en ese index inicias la batalla en el sitio apropiado, por ejemplo:

id=tile_layer_find(depth,x,y);
back=tile_get_background(id);

switch (back){
case (bck_pradera): //batalla en la pradera;
case (bck_desierto): //batalla en el desierto;
case (bck_rio): //batalla en el rio;
case (bck_montana): //batalla en la monta?a;
case (bck_etc): //etc etc etc;
}


Por otro lado si todos los tiles vienen del mismo fondo entonces la soluci?n de Kraken me parece lo m?s viable.


Me da el erro de "Tile does not exists"
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Yo tuve hoy el mismo problema y sabiendo la X y la Y del tile me hice un script para comprobar el tile en dicha posici?n:

var tile, i;
tile=10000000-1;
i=0;
do
{
tile+=1
if tile_exists(tile) {if tile_get_x(tile)=X && tile_get_y(tile)=Y{i=1} }
}
until i=1
tile_delete(tile)


Espero que te sirva al menos como referencia. Un Saludo

Gracias, ya lo hye puesto en practica y se me traba el juego.

las x Y y no son mayusculas

mas o menos le entiendo al script.

asi que tratare de usar las dos cosas  haber que sale.

saludotes...   XD
Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Se te traba porque se forma un bucle sin fin, ya que no habr? ning?n tile en la posicion X,Y

Solo por las dudas, en el c?digo que deje debias cambiar el argumento depth por la capa en la que estan los tiles, tambien deberias haber cambiado el nombre de la variable id, aunque ya que no te da error de asignacion supongo que ya lo hiciste.