Noviembre 16, 2013, 04:34:54 PM Ultima modificación: Noviembre 17, 2013, 05:50:44 PM por EnDark2000
Hola a todos, makeros.
el problema es que no se como hacer una colision lateral, que sea, del mismo tipo que la de ir adelante/atras :(
Les agradeceria que me ayudasen con este codigo que hice en el evento STEP del personaje

if (keyboard_check(ord('W'))){
    if (point_distance(x,y,mouse_x,mouse_y) <= 32){ exit; }
    if not(collision_rectangle((x+cos(degtorad(direction))*3)+16,y-16,(x+cos(degtorad(direction))*3)-16,y+16,obj_wall,0,0)){
        x +=cos(degtorad(direction))*3;
    }
    if not(collision_rectangle(x-16,(y-sin(degtorad(direction))*3)+16,x+16,(y-sin(degtorad(direction))*3)-16,obj_wall,0,0)){
        y -=sin(degtorad(direction))*3;
    }
}
if (keyboard_check(ord('S'))){
    if not(collision_rectangle((x-cos(degtorad(direction))*3)+16,y-16,(x-cos(degtorad(direction))*3)-16,y+16,obj_wall,0,0)){
        x -=cos(degtorad(direction))*3;
    }
    if not(collision_rectangle(x-16,(y+sin(degtorad(direction))*3)+16,x+16,(y+sin(degtorad(direction))*3)-16,obj_wall,0,0)){
        y +=sin(degtorad(direction))*3;
    }
}
if (keyboard_check(ord('A'))){
    if not(collision_rectangle((x+cos(degtorad(direction))*3)-16,y+16,(x+cos(degtorad(direction))*3)+16,y-16,obj_wall,0,0)){
        x +=cos(degtorad(direction+90))*3;
    }
    if not(collision_rectangle(x-16,(y-sin(degtorad(direction))*3)+16,x-16,(y-sin(degtorad(direction))*3)-16,obj_wall,0,0)){
        y -=sin(degtorad(direction+90))*3;
    }
}
if (keyboard_check(ord('D'))){
    if not(collision_rectangle((x-cos(degtorad(direction))*3)-16,y+16,(x-cos(degtorad(direction))*3)+16,y-16,obj_wall,0,0)){
        x -=cos(degtorad(direction+90))*3;
    }
    if not(collision_rectangle(x-16,(y+sin(degtorad(direction))*3)+16,x-16,(y+sin(degtorad(direction))*3)-16,obj_wall,0,0)){
        y +=sin(degtorad(direction+90))*3;
    }
}

es el codigo del movimiento del personaje. tiene su fricción acia adelante y atras pero no consigo entender como hacer que sea la misma friccion cuando el personaje se desplaza lateralmente :( si alguien me pudiese ayudar se lo agradeceria mucho :D
por cierto en el evento END STEP puse esto que es la variable direction:
direction = point_direction(x,y,mouse_x,mouse_y);
image_angle = direction;


Gracias de antemano, salu2   :)

PD: se me olvido decirles que el sprite del jugador es un circulo de 32x32 mirando a la derecha y hay un objeto 'obj_wall' que es un muro de 32x32 con la casilla 'solid' Activada xD. Tanto el sprite del jugador como el del muro tienen desactivadas las 2 casillas que hay en el apartado 'collision checking' en la edicion de los sprites. Ahora si, es todo :D BB
Busco programador de IA:
http://www.comunidadgm.org/index.php?topic=19389.0

Atte: Dimitri


gracias jeje, pero necesito que el personaje se mueva en la dirección en la que esta el ratón, no sé como hacerlo :(. Sin embargo como pienso hacer un sistema de configuración de control guardare ese código como esta pero con otras velocidades :)
Busco programador de IA:
http://www.comunidadgm.org/index.php?topic=19389.0

Atte: Dimitri

Te dejo un nuevo ejemplo de tu version corregida, espero que te sirva. Como opinion personal ese sistema de control no es muy bueno, me recuerda al del resident evil  :'(

Pienso implementar los dos jeje, ya que ese que te digo me gusto mucho y el otro es el preferido de la mayoria :)
gracias por la ayuda aun que da un error y es que, al ir hacia atrás, el personaje deja de mirar al ratón, se vuelve loco jeje veré si lo puedo arreglar yo :) una vez mas, gracias, salu2
Busco programador de IA:
http://www.comunidadgm.org/index.php?topic=19389.0

Atte: Dimitri