Buenas, tengo un creo que big problem, y es que tengo objetos de boosts (propulsores), uso un objeto para cada dirección, ni lo comenten :v
el caso es que mientras testeaba mi juego compartiendo pantalla con darki, me quedé en medio de dos boosts, uno hacia arriba y otro hacia abajo, y claro... uno me subia vspeed y el otro me bajaba el mismo vspeed, entonces, la bola (player) se quedaba quieta pero digamos que no del todo (visualmente totalmente quieta).. pues porque no me dejaba hacer otra tirada...
El juego es un minigolf, lanzo y cuando se frena, me deja lanzar de nuevo, sino frena, no me lanza... este es el código de la bola para el lanzamiento...
create:
[gml]tiro = 0;
dir = 0;
spd = 0;
xlast = xstart;
ylast = ystart;
puedetirar = true;[/gml]
step:
[gml]///apuntar
if puedetirar {
if mouse_check_button(mb_left) {
dir = point_direction(mouse_x,mouse_y,x,y);
spd = point_distance(x,y,mouse_x,mouse_y)/8;
if tiro == 0 {
tiro = 1;
}
}
}
///tirar
if mouse_check_button_released(mb_left)
&& tiro == 1 {
sound_play(sndisparo);
vida--;
tiro = 2;
direction = dir;
if spd > 30
spd = 30;
speed = spd;
}
///frenar y morir con 0 de vida
if speed > 0
speed -= 0.2;
else {
speed = 0;
xlast = x;
ylast = y;
if tiro == 2 {
tiro = 0;
if vida <= 0
&& fin == 0 {
sound_play(snfail);
room_restart();
show_debug_message("moriste weiii");
}
}
}[/gml]
Y en los boosts... todos igual solo cambia la dicección -/+ h/v, de ejemplo pongo el UP...
colisión con bola:
[gml]///impulsar
if other.speed < 30
other.vspeed -= 0.5;
else
other.speed = 30;[/gml]
Espero alguien pueda ayudarme con alguna solución... que no sea cambiándolo TODO para "no usar h/vspeed o cosas de esas que hagan mi código chino xDD
Gracias de antecodo :B
el caso es que mientras testeaba mi juego compartiendo pantalla con darki, me quedé en medio de dos boosts, uno hacia arriba y otro hacia abajo, y claro... uno me subia vspeed y el otro me bajaba el mismo vspeed, entonces, la bola (player) se quedaba quieta pero digamos que no del todo (visualmente totalmente quieta).. pues porque no me dejaba hacer otra tirada...
El juego es un minigolf, lanzo y cuando se frena, me deja lanzar de nuevo, sino frena, no me lanza... este es el código de la bola para el lanzamiento...
create:
[gml]tiro = 0;
dir = 0;
spd = 0;
xlast = xstart;
ylast = ystart;
puedetirar = true;[/gml]
step:
[gml]///apuntar
if puedetirar {
if mouse_check_button(mb_left) {
dir = point_direction(mouse_x,mouse_y,x,y);
spd = point_distance(x,y,mouse_x,mouse_y)/8;
if tiro == 0 {
tiro = 1;
}
}
}
///tirar
if mouse_check_button_released(mb_left)
&& tiro == 1 {
sound_play(sndisparo);
vida--;
tiro = 2;
direction = dir;
if spd > 30
spd = 30;
speed = spd;
}
///frenar y morir con 0 de vida
if speed > 0
speed -= 0.2;
else {
speed = 0;
xlast = x;
ylast = y;
if tiro == 2 {
tiro = 0;
if vida <= 0
&& fin == 0 {
sound_play(snfail);
room_restart();
show_debug_message("moriste weiii");
}
}
}[/gml]
Y en los boosts... todos igual solo cambia la dicección -/+ h/v, de ejemplo pongo el UP...
colisión con bola:
[gml]///impulsar
if other.speed < 30
other.vspeed -= 0.5;
else
other.speed = 30;[/gml]
Espero alguien pueda ayudarme con alguna solución... que no sea cambiándolo TODO para "no usar h/vspeed o cosas de esas que hagan mi código chino xDD
Gracias de antecodo :B
