Saludos B_12.4
La manera mas facil seria agregandole a una variable con el tiempo, prueba creando una variable tipo "hsp" y sumarsela a la "x"
[gml]
/// Event Create
hsp = 0;
maxhsp[0] = 4;
maxhsp[1] = 7;
maxhsp[2] = 9;
hithsp = 0;
hcont = 0;
htime = room_speed*3; //puse un tiempo hipotetico
[/gml]
[gml]
/// Event Step
var kh;
kh = (keyboard_check(vk_right) - keyboard_check(vk_left));
/// Movimiento horizontal
if (kh <> 0 && !place_meeting(x+hsp, y, obj_solid) {
if (abs(hsp) < maxhsp[hithsp])
hsp += kh*0*5;
image_xscale = 1+(2*(hsp<0));
// Funciona para darle tiempo establecidos a cada aceleracion
hcont += 1;
if (hcont >= htime && hcont != 2) {
hithsp = min(hithsp+1, 2);
htime += room_speed*2;
hcont = 0;
}
}
else // Desaceleracion
if (hsp <> 0 && kh == 0) {
var hx
if (hithsp == 0)
hx = 0.25;
else
hx = 0.5;
hsp -= (sign(hsp)*hx);
// Cambiar valores mientras se desacelera
if (abs(hsp) > 4 && abs(hsp) < 7) {
hithsp = 1;
hcont = room_speed*3;
}
if (abs(hsp) > 0 && abs(hsp) < 4) {
hithsp = 0;
hcont = 0;
}
}
/*Sumar hsp*/ x += hsp;
[/gml]
Creo que con lo primero de ese ejemplo de se puede lograr prácticamente lo mismo, bueno apenas acabo de pensarlo :-[
La manera mas facil seria agregandole a una variable con el tiempo, prueba creando una variable tipo "hsp" y sumarsela a la "x"
[gml]
/// Event Create
hsp = 0;
maxhsp[0] = 4;
maxhsp[1] = 7;
maxhsp[2] = 9;
hithsp = 0;
hcont = 0;
htime = room_speed*3; //puse un tiempo hipotetico
[/gml]
[gml]
/// Event Step
var kh;
kh = (keyboard_check(vk_right) - keyboard_check(vk_left));
/// Movimiento horizontal
if (kh <> 0 && !place_meeting(x+hsp, y, obj_solid) {
if (abs(hsp) < maxhsp[hithsp])
hsp += kh*0*5;
image_xscale = 1+(2*(hsp<0));
// Funciona para darle tiempo establecidos a cada aceleracion
hcont += 1;
if (hcont >= htime && hcont != 2) {
hithsp = min(hithsp+1, 2);
htime += room_speed*2;
hcont = 0;
}
}
else // Desaceleracion
if (hsp <> 0 && kh == 0) {
var hx
if (hithsp == 0)
hx = 0.25;
else
hx = 0.5;
hsp -= (sign(hsp)*hx);
// Cambiar valores mientras se desacelera
if (abs(hsp) > 4 && abs(hsp) < 7) {
hithsp = 1;
hcont = room_speed*3;
}
if (abs(hsp) > 0 && abs(hsp) < 4) {
hithsp = 0;
hcont = 0;
}
}
/*Sumar hsp*/ x += hsp;
[/gml]
Creo que con lo primero de ese ejemplo de se puede lograr prácticamente lo mismo, bueno apenas acabo de pensarlo :-[