En mi juego de tanques me gustar?a que una vez destruido el tanque contrario, apareciera para el segundo asalto en la misma room, pero de unas formas concretas:
-Que no aparezca en donde ya hay objetos (para que no se atasque con las paredes)
-Que no aparezca fuera de la room.
Y si reinicias en room?? Para esto tendrias que almacenar los datos en variables globales o en un objeto persistente. De este modo volver?an a aparecer en las mismas posiciones los tankes.
Mmm al decir que no quieres que aparezca donde hay paredes te refieres a que el tanque aparecer? al azar en el room cuando este sea eliminado? Si es asi puedes usar esto:
En el obj_tanque_contrario
Evento crear:
[gml]
//Se crea el tanque al azar
x=irandom(800)//Suponiendo que la room mida 800x600
y=iramdom(600)
[/gml]
En el obj_tanque_contrario pon esto en el evento de colisi?n con el obj_pared(o cualquier otro obst?culo):
[gml]var dir;
dir=random(360);
while (place_meeting(x,y,other))
{
x+=lengthdir_x(1,dir);
y+=lengthdir_y(1,dir);
}[/gml]
Lo que hace esto es que si el tanque aparece en una pared se mover? al azar a otra posici?n que este libre usando solo los pixeles necesarios.
Saludos espero que te sirva
Tambi?n podr?as crear respawn points, unos que hayas se?alado previamente. Y que aparezca al azar en alguno de estos, siempre y cuando no haya otro jugador o enemigo en el. Es solo la idea pero igual es sencillo lograrlo.
Si necesitas m?s ayuda, aqui estamos. Saludos!
Lo explico m?s detalladamente:
-Tenemos dos jugadores con un tanque cada uno.
-Uno destroza al otro.
-Se suma un punto a la cuenta del que lo ha destrozado.
-El que acaba de perder tiene que aparecer en un sitio libre de la room, sin ning?n objeto de por medio para que no se atasque con una pared.
El cuarto punto es el que no s? hacer, y con lo que propone ArcariaOnline me sale en una colisi?n cualquiera (por culpa de c?mo rotan los tanques) as? que necesito algo que se pueda poner en el objeto que cuenta los score y no el tanque destruido.
Checa el ejemplo que adjunto, algo as? se me ocurre
Saludos espero te sea ?til ;)
Podrias eliminar la instancia cuando colisione con el solido en donde no quieres que el tanque sea creado. Pero no sabria decirte como hacerlo aparecer en una posicion redondeada a 16 y 16. Lo primero es facil, pero que quede justamente en un cuadro es lo que no sabria explicarte.
var a, b;
a=x+randon(640);
b=y+random(480);
if position_empty(a,b)
{instance_create(a,b,objtanke);}