Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: verdader26 en Febrero 21, 2012, 10:39:12 PM

Título: Hacer drift
Publicado por: verdader26 en Febrero 21, 2012, 10:39:12 PM
estoy creando un juego de carreras en 2d y me preguntaba como puedo hacer que el coche al teclear espacio haga drift eso me sirviria mucho para cuando tenga que girar una curva, sin parar del todo el coche.
Título: Re:Hacer drift
Publicado por: romon_28 en Febrero 22, 2012, 03:41:22 PM
tenes que tener dos direciones
la 1° es la direccion en donde mira el coche
la 2° es la direccion donde esta girando

Ejemplo
supongamos que el coche tiene 0° y quiere hacer un giro de 180°
pondremos algo asi:


if keyboard_check(vk_left)
{
Dire_coche += 15
}

if keyboard_check(vk_right)
{
Dire_coche -= 15
}

Dire_real = max( min( Dire_real+5 , Dire_coche ), Dire_real-5 )
                                                 ^
te faltaria hacer algo la velocidad afecte al derrape cambiando el "5"

Se como hacerlo mejor pero no tengo ganas de escribir ni pensarlo mucho.
pero ya tenes la idea.

suerte con tu juego!!

ROMON®
Título: Re:Hacer drift
Publicado por: magnetox en Febrero 29, 2012, 06:36:15 PM
Aunque le faltan muchas optimizaciones al codigo de romon, es util y lo que le faltaria seria:

Drift=keyboard_check(vk_space) //o la tecla que quieras

Dire_real = max( min( Dire_real+5*Drift , Dire_coche ), Dire_real-5*Drift )


Cuando Drift sea 1, se sumara o restara 5, y si es 0, entonces 0.

Espero que te sirva

Saludos 8)
Título: Re:Hacer drift
Publicado por: verdader26 en Febrero 29, 2012, 07:23:09 PM
Cita de: magnetox en Febrero 29, 2012, 06:36:15 PM
Aunque le faltan muchas optimizaciones al codigo de romon, es util y lo que le faltaria seria:

Drift=keyboard_check(vk_space) //o la tecla que quieras

Dire_real = max( min( Dire_real+5*Drift , Dire_coche ), Dire_real-5*Drift )


Cuando Drift sea 1, se sumara o restara 5, y si es 0, entonces 0.

Espero que te sirva

Saludos 8)

___________________________________________
ERROR in
action number 3
of  Step Event
for object obj_car:

Error in code at line 3:
   Dire_real = max( min( Dire_real+5*Drift , Dire_coche ), Dire_real-5*Drift )
                         ^
at position 24: Unknown variable Dire_real


que hago???
Título: Re:Hacer drift
Publicado por: magnetox en Marzo 01, 2012, 03:33:22 AM
Uhmm esas no son las variables que tienes que usar sino unas que debes cambiar por las de tu juego. O puedes crearlas porque el problemas es que no existe aun esa variable...

Saludos 8)
Título: Re:Hacer drift
Publicado por: verdader26 en Marzo 01, 2012, 12:15:24 PM
Cita de: magnetox en Marzo 01, 2012, 03:33:22 AM
Uhmm esas no son las variables que tienes que usar sino unas que debes cambiar por las de tu juego. O puedes crearlas porque el problemas es que no existe aun esa variable...

Saludos 8)
entonces me podrias decir que variables son:
Dire_real
Dire_coche
Título: Re:Hacer drift
Publicado por: magnetox en Marzo 01, 2012, 07:39:26 PM
Mmm a ver, primero tendrias que leer un poco el manual de game maker y hacer algunos tutoriales basicos, pero igual te ayudare con esto:

Código (En Create o Game Start) [Seleccionar]
Dire_coche=0

Código (En Step) [Seleccionar]
Drift=keyboard_check(vk_space) //o la tecla que quieras
var Dire_max;
Dire_max=10
Dire_real = max( min( Dire_max+5*Drift , Dire_coche ), -Dire_max-5*Drift )
//Los eventos de teclas izquierda y derecha cambian la variable Dire_coche


Espero que te sirva y animos aprendido gml!

Saludos 8)
Título: Re:Hacer drift
Publicado por: verdader26 en Marzo 01, 2012, 08:54:35 PM
yo lo que me referia era si esos values eran la direction o speed del coche para ver si tengo que cambiar algo
Título: Re:Hacer drift
Publicado por: magnetox en Marzo 01, 2012, 11:04:03 PM
La direccion del coche, osea si usas el engine de movimiento por defecto de gamemaker seria la variable direction

Saludos 8)
Título: Re:Hacer drift
Publicado por: verdader26 en Marzo 02, 2012, 02:09:44 PM
cambio todas las dire_... por direction?
Título: Re:Hacer drift
Publicado por: magnetox en Marzo 03, 2012, 01:02:35 AM
nono solo la variable dire_coche en el codigo

Saludos 8)