Hola.
Pues cree un script para el desplazamiento de un enemigo, que se dirija a un punto que le quede m?s cerca (y libre) al personaje. Pero cuando est? el juego en marcha y el enemigo en esa room actual el juego se traba :-\ .
Les explico lo que tengo:
en el create del personaje est?n estas variables:
Citarxx=x
yy=y
en el step:
Citarif(xx=x and yy=y)
{
//scr_ia_mov_bot3();
}
else
{
......
}
y el script es este:
Citar
var dir,x1,y1;
dir=0
//25
while(direction<360)
{
x1=x+25*(seno(dir))
y1=y-25*(seno(dir))
if(place_free(x1,y1))
{
if(point_distance(x1,y1,obj_personaje.x,obj_personaje.y)<point_distance(xx,yy,obj_personaje.x,obj_personaje.y))
{
xx=x1
yy=y1
}
}
dir+=10
}
speed=3
direction=point_direction(x,y,xx,yy)
La verdad no veo el por qu? se traba el juego, el script solo se llama 1 vez y luego el enemigo prosigue a moverse :-\ despu?s lo mismo.
Incluso intent? que la variable "dir" aumente en 20 pero ni as?.
Ustedes que dicen? :-[
Citarwhile(direction<360)
{
x1=x+25*(seno(dir))
y1=y-25*(seno(dir))
if(place_free(x1,y1))
{
if(point_distance(x1,y1,obj_personaje.x,obj_personaje.y)<point_distance(xx,yy,obj_personaje.x,obj_personaje.y))
{
xx=x1
yy=y1
}
}
dir+=10
}
es obio que se ba a trancar si pones:
while(direction<360)
y luego dentro del while nunca haces nada para que deje de ser cierta la condicion
no seria asi?: while(dir<360)
XD seee. Ya lo not?.
Vaya error de novato, no?
Creo que mis cables se cruzaron y relacionaron dir con direction :-[
Muchas gracias Alfonsos1