Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: venus en Octubre 25, 2014, 11:24:45 AM

Título: ¿Porque no funciona esto?
Publicado por: venus en Octubre 25, 2014, 11:24:45 AM
Dejo el proyecto aquí para  :GMS:
No se que es lo que hago mal, la verdad. Todo está escrito correctamente y no da ningún error, pero el personaje no se mueve.
Título: Re:¿Porque no funciona esto?
Publicado por: penumbra en Octubre 25, 2014, 12:02:16 PM
La fricción es mucha e impide que avance. 
Título: Re:¿Porque no funciona esto?
Publicado por: venus en Octubre 25, 2014, 12:52:07 PM
Pues este error tan tonto me tiene paralizado 2 semanas o_O
Gracias por tu ayuda.
Título: Re:¿Porque no funciona esto?
Publicado por: venus en Octubre 25, 2014, 04:45:33 PM
Ahora cambia lo del evento step por esto:
[spoiler]//movimiento horizontal
if keyboard_check(vk_left) {
  phy_linear_velocity_x=-40*room_speed;
}

if keyboard_check(vk_right) {
  phy_linear_velocity_x=40*room_speed;
}

if ((!keyboard_check(vk_right) && !keyboard_check(vk_left)) || (keyboard_check(vk_right) && keyboard_check(vk_left))) {
  phy_linear_velocity_x=0;
}

//movimientos verticales
if keyboard_check_pressed(vk_up) && physics_test_overlap(x, y+1, phy_rotation, obj_suelo1) {
    phy_linear_velocity_y=-160;
}


//Anular rotación
phy_fixed_rotation=true;
[/spoiler]

¿Porque cuando se mueve a los lados con phy_linear_velocity_x no se activa la gravedad ni el cmando phy_linear_velocity_y?
Título: Re:¿Porque no funciona esto?
Publicado por: TheSandBoxMKG en Octubre 25, 2014, 08:09:10 PM
Cita de: venus en Octubre 25, 2014, 04:45:33 PM
Ahora cambia lo del evento step por esto:
[spoiler]//movimiento horizontal
if keyboard_check(vk_left) {
  phy_linear_velocity_x=-40*room_speed;
}

if keyboard_check(vk_right) {
  phy_linear_velocity_x=40*room_speed;
}

if ((!keyboard_check(vk_right) && !keyboard_check(vk_left)) || (keyboard_check(vk_right) && keyboard_check(vk_left))) {
  phy_linear_velocity_x=0;
}

//movimientos verticales
if keyboard_check_pressed(vk_up) && physics_test_overlap(x, y+1, phy_rotation, obj_suelo1) {
    phy_linear_velocity_y=-160;
}


//Anular rotación
phy_fixed_rotation=true;
[/spoiler]

¿Porque cuando se mueve a los lados con phy_linear_velocity_x no se activa la gravedad ni el cmando phy_linear_velocity_y?

Una pregunta: ¿No podes cambiar el tamaño de la ventana del código?
Es que está muy chiquita la ventana, apenas veo un renglón  :-\
Título: Re:¿Porque no funciona esto?
Publicado por: venus en Octubre 25, 2014, 08:30:45 PM

No se como se cambia eso, yo veo 1/4 de línea.

De todas maneras te dejo el código aquí:
//movimiento horizontal
if keyboard_check(vk_left) {
  phy_linear_velocity_x=-40*room_speed;
}

if keyboard_check(vk_right) {
  phy_linear_velocity_x=40*room_speed;
}

if ((!keyboard_check(vk_right) && !keyboard_check(vk_left)) || (keyboard_check(vk_right) && keyboard_check(vk_left))) {
  phy_linear_velocity_x=0;
}

//movimientos verticales
if keyboard_check_pressed(vk_up) && physics_test_overlap(x, y+1, phy_rotation, obj_suelo1) {
    phy_linear_velocity_y=-160;
}


//Anular rotación
phy_fixed_rotation=true;



Tienes que cambiarlo por lo que haya en el evento step.