Hola Makeros, necesito ayuda!! :'(
En mi juego, que tiene las físicas activadas, tengo un personaje que dispara (juego 2D lateral).
Para evitar que la gravedad actúe y las balas tengan efecto parábola, decidí usar el código:
Step event de la bala
[gml]
phy_linear_velocity_x=lengthdir_x(2000, angulo)
phy_linear_velocity_y=lengthdir_y(2000, angulo)
[/gml]
donde la variable ángulo sería hacia donde apunta la pistola:
Create event de la bala
[gml]
phy_bullet=true
angulo=point_direction(obj_cabeza_disp.x,obj_cabeza_disp.y,obj_mirilla.x,obj_mirilla.y)
[/gml]
La gran problemática que tengo, es que las variables de velocidad con físicas están "capadas", y no puedo conseguir una velocidad mayor a un máximo. Esta velocidad es muy lenta para simular balas, por lo que supongo que tengo que usar impulsos o fuerzas, pero por más que lo intento no soy capaz de hacerlo funcionar como quiero...Lo más parecido que he logrado ha sido con este código:
Step event de la bala
[gml]
physics_apply_force(0,0,lengthdir_x(2000, angulo),lengthdir_y(2000, angulo))
[/gml]
Donde ya no me afecta la gravedad, pero la bala sigue yendo muy lenta.
¿Qué estoy haciendo mal o qué no estoy entendiendo?
Mil gracias!
En el objeto bala debes colocar phy_bullet = true;, así se moverá más rápido.
He probado a meterlo en el create event y nada.
Probé por si acaso en meterlo en el step event y tampoco :'(
mmm podrias mostrar un gif o un video de como van esas balas?..
segun mis teorias de gamemakera de 2 años es ponerle aceleracion en el evento step la accion en D&D "friction" para que la velocidad se sume y vaya mas rapida :v, es lo unico que se me ocurre, no he usado las fisicas aun uwu
Gracias por intentar ayudar LuciaHedgehog, pero con fisicas se complica todo demasiado :-[
Alguien tiene alguna otra idea????
Prueb con
[gml]
phy_linear_damping = 0;
[/gml]
Y en lugar de aplicar una fuerza asigna la velocidad en el evento Create
[gml]
// 20 px por step
phy_speed_x = lengthdir_x(20, angulo);
phy_speed_y = lengthdir_y(20, angulo);
[/gml]
Clamud, ya lo probé, pero las balas cogen gravedad y la trayectoria tiene forma de arco. Por si ayuda, con lo que me has comentado, tengo esto en el objeto bala:
Information about object: obj_disparar_naranja
Sprite: spr_disparo_naranja
Solid: false
Visible: true
Depth: -9999
Persistent: false
Parent:
Children:
Mask:
Physics
Start Awake: true
Is Kinematic: true
Is Sensor: true
Density: 0.1
Restitution: 0.1
Group: 0
Linear Damping: 0
Angular Damping: 0
Friction: -100
Shape: Circle
Points:
(43, 42)
(43, 43)
Create Event:
execute code:
///imagen
image_xscale=0.25
image_yscale=0.25
image_speed=0.5
desviado=0
execute code:
///Ir a mirilla
angulo=point_direction(obj_cabeza_disp.x,obj_cabeza_disp.y,obj_mirilla.x,obj_mirilla.y)
phy_bullet=true
phy_linear_damping = 0;
phy_speed_x = lengthdir_x(20, angulo);
phy_speed_y = lengthdir_y(20, angulo);
A nadie se le ocurre como poder hacerlo??? :'( :'(