Buenas.
Se que hay varios temas que hablan de las colisiones de un coche, pero yo he probado todos los ejemplos y no hay manera que me funcionen...
Tengo un coche cuyo movimiento es bastante bueno, hasta cambio de sprite en funci?n de si gira a la derecha o a la izquierda, el problema es que cuando colisiona con algun objeto, se para...
He provado todos los ejemplos que salen en el foro y no me van.
Desde poner simplemente que cuando choque haga como una pelota, hasta cosas m?s sofisticadas, pero nada.
Tambi?n he provado con diferentes m?scaras de colisi?n (redondas, cuadradas, precise, separate...) hasta hacer una m?scara aparte, pero nada. Choca y se para.
El c?digo del step del coche es el siguiente:(Como movimiento es muy bueno).
x+=cos(degtorad(angle))*vel;
y-=sin(degtorad(angle))*vel;
//----------------------------------------
up=keyboard_check(vk_up);
left=keyboard_check(vk_left);
right=keyboard_check(vk_right);
frenomano=keyboard_check(vk_space);
//----------------------------------------
sentido=0
if (up)
{
vel=min(vel_max,vel+accel);
}
else vel=max(0,vel-d_accel);
if (left)
{
if vel>2
{
sentido=1
angle+=13-vel;
}
}
if (right)
{
if vel>2
{
sentido=2
angle-=13-vel;
}
}
if (frenomano) vel=max(0.5,vel-0.5)
----------------------------------------------------
Tambi?n tengo puesta una fricction de 0.8
?Alguien me puede ayudar please???
Gracias por avanzado
pero que c?digo pusiste en las colisiones???
En las colisiones he puesto de todo ...
He seguido los siguientes enlaces:
http://www.comunidadgm.org/index.php?topic=11271.0
http://www.comunidadgm.org/index.php?topic=11600.0
http://www.comunidadgm.org/index.php?topic=9867.0
y otros.
La verdad es que no se que pasa. Cuado choca con un sprite pared se queda parado. Ni rebota (Cuando puse una colision tipo Bounce) ni nada. Hasta que no giro el coche no se mueve.
Seguramente tiene que ver con el movimiento ya que tengo otro juego que hice tambien de coches, y en ese rebotaba bien haciendo en el evento de colision:
if place_meeting(x+hspeed,y,obj_Solid) {hspeed=0};
if place_meeting(x,y+vspeed,obj_Solid) {vspeed=0};
Lo que cambiaba era el movimiento... Per me gusta m?s el movimiento obtenido de esta forma.
Estoy bastante desesperado.
Citarif place_meeting(x+hspeed,y,obj_Solid) {hspeed=0};
if place_meeting(x,y+vspeed,obj_Solid) {vspeed=0};
{hspeed=0}
{vspeed=0}?No significa esto que el coche debe pararse?
La verdad es que no lo tengo muy claro, pero del ejemplo que yo lo cog?, el coche segu?a a la pared...