Hola a todo mundo, espero que se encuentren muy bien, resulta que luego de comparar mi juego en diferentes ordenadores, resulta que algunas cosas con físicas o movimientos con aceleración varían respecto el ordenador. así que recurrí al Delta Time, lo que hice fue lo siguiente:
//Create
delta=(delta_time/1000000)*60;
g=0;
dir=0;
//Step
if(place_free(x,y+1)) {
g+=0.4*delta;
}
repeat(g*dir) {
if(place_free(x,y+sign(g))) {
y = y + sign(g);
} else {
g=0;
break;
}
}
if(g>0){dir=1;}else{dir=-1;}
if(keyboard_check_pressed(vk_space)){g-=12 *delta;}
//Begin Step
delta=(delta_time/1000000)*60;
El principal problema es que debería funcionar ya que con la función repeat esta tomando el valor de g que es lo que varia con los frames, resulta que cuando renderizo a 60 fps va bien, pero cuando lo pruebo a 30 fps salta muchísimo mas alto, ayuda por favor, por mas que intendo cosas no logro solucionar el problema, muchas gracias amigos, y espero que este sistema de salto de colisión precisa pueda servirle a quien lo necesite también
//Create
delta=(delta_time/1000000)*60;
g=0;
dir=0;
//Step
if(place_free(x,y+1)) {
g+=0.4*delta;
}
repeat(g*dir) {
if(place_free(x,y+sign(g))) {
y = y + sign(g);
} else {
g=0;
break;
}
}
if(g>0){dir=1;}else{dir=-1;}
if(keyboard_check_pressed(vk_space)){g-=12 *delta;}
//Begin Step
delta=(delta_time/1000000)*60;
El principal problema es que debería funcionar ya que con la función repeat esta tomando el valor de g que es lo que varia con los frames, resulta que cuando renderizo a 60 fps va bien, pero cuando lo pruebo a 30 fps salta muchísimo mas alto, ayuda por favor, por mas que intendo cosas no logro solucionar el problema, muchas gracias amigos, y espero que este sistema de salto de colisión precisa pueda servirle a quien lo necesite también