Autor Tema: Juego tipo Luftrausers  (Leído 137 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Anon

  • Visitante
  • *
  • Puntos: 16
  • Mensajes: 9
    • Ver Perfil
Juego tipo Luftrausers
« en: Enero 12, 2018, 01:46:55 am »
Hola, estoy intentando hacer un juego de aviones sencillo tipo Luftrausers pero no consigo el efecto que quiero. El código que utilizo es este:
Código: [Seleccionar]
if keyboard_check (ord("W"))
{
direction=image_angle
speed+=0.1
}

if keyboard_check (ord("D"))
{
image_angle-=4
}
if keyboard_check (ord("A"))
{
image_angle+=4
}

Estoy muy verde en cuanto a programación, si alguien puede decirme que esta mal o que falta se lo agradecería :)
« última modificación: Enero 12, 2018, 08:44:47 pm por Anon »


 
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Arcadian

Re:Juego tipo Luftrausers
« Respuesta #1 en: Enero 12, 2018, 06:20:21 am »
Y cuál es el efecto que quieres conseguir?
 
Los siguientes usuarios dieron las gracias a este tema: Yuzo


Desconectado Anon

  • Visitante
  • *
  • Puntos: 16
  • Mensajes: 9
    • Ver Perfil
Re:Juego tipo Luftrausers
« Respuesta #2 en: Enero 12, 2018, 02:00:05 pm »
Quiero que se mueva con en este vídeo https://youtu.be/M9Ui0jUflAk

Con el código que tengo el avión nunca pierde velocidad.
 

Desconectado MateG_

Re:Juego tipo Luftrausers
« Respuesta #3 en: Enero 12, 2018, 05:49:23 pm »
Buenas, si el problema que tenés es que el avión no pierde velocidad podrías probar este código:

Código: [Seleccionar]
if keyboard_check (ord("W"))
{
direction=image_angle
if speed < 15
{
speed+=0.1
}
}
else
{
    if speed > 0
    {
    image_angle = direction
    if direction != 270
    {
        if direction < 90 or direction > 270
        {
            direction -= 5
        }
        else
        {
            direction += 5
        }
    }
    if speed > 7
    {
        speed-=0.1
    }   
    }
}

if keyboard_check (ord("D"))
{
image_angle-=4
}
if keyboard_check (ord("A"))
{
image_angle+=4
}

Lo que hace es que cuando no se está presionando la "W" la velocidad se reduzca hasta la mitad (no a 0 ya que sino el avión tampoco caería) y que la dirección se redirija hacia abajo, haciendo el efecto de caída libre. No se si es ese exacto el efecto que querías pero espero que te sirva. Buena suerte.  ;)
« última modificación: Enero 12, 2018, 06:03:44 pm por MateG_ »
 
Los siguientes usuarios dieron las gracias a este tema: Yuzo, Anon

Desconectado 3dgeminis

Re:Juego tipo Luftrausers
« Respuesta #4 en: Enero 12, 2018, 07:18:17 pm »
Proba a poner solo lo siguiente en el objeto, en el evento STEP para probar:
gravity=0.4 ///gravedad
if mouse_check_button(mb_left) {motion_add(point_direction(x,y,mouse_x,mouse_y), 1)} ///direccion y velocidad
if speed>=10 {speed=10} ///limitar velocidad
Se maneja con el raton pero te sera facil cambiarlo a teclas
W --> motion_add
A y D --> direction
 
Los siguientes usuarios dieron las gracias a este tema: Yuzo, Anon

Desconectado Anon

  • Visitante
  • *
  • Puntos: 16
  • Mensajes: 9
    • Ver Perfil
Re:Juego tipo Luftrausers
« Respuesta #5 en: Enero 12, 2018, 09:12:35 pm »
Buenas, si el problema que tenés es que el avión no pierde velocidad podrías probar este código:

Código: [Seleccionar]
if keyboard_check (ord("W"))
{
direction=image_angle
if speed < 15
{
speed+=0.1
}
}
else
{
    if speed > 0
    {
    image_angle = direction
    if direction != 270
    {
        if direction < 90 or direction > 270
        {
            direction -= 5
        }
        else
        {
            direction += 5
        }
    }
    if speed > 7
    {
        speed-=0.1
    }   
    }
}

if keyboard_check (ord("D"))
{
image_angle-=4
}
if keyboard_check (ord("A"))
{
image_angle+=4
}

Lo que hace es que cuando no se está presionando la "W" la velocidad se reduzca hasta la mitad (no a 0 ya que sino el avión tampoco caería) y que la dirección se redirija hacia abajo, haciendo el efecto de caída libre. No se si es ese exacto el efecto que querías pero espero que te sirva. Buena suerte.  ;)
Con este código cae demasiado bruscamente, pero gracias por tomarte la molestia de ayudarme :)

Proba a poner solo lo siguiente en el objeto, en el evento STEP para probar:
gravity=0.4 ///gravedad
if mouse_check_button(mb_left) {motion_add(point_direction(x,y,mouse_x,mouse_y), 1)} ///direccion y velocidad
if speed>=10 {speed=10} ///limitar velocidad
Se maneja con el raton pero te sera facil cambiarlo a teclas
W --> motion_add
A y D --> direction

Es justo lo que buscaba, no conocía la función motion_add, muchas gracias :)

Por si a alguien le interesa el código ha quedado mas o menos así
Código: [Seleccionar]
gravity=0.04 //gravedad

//direccion y velocidad
if keyboard_check (ord("W"))
{
motion_add(image_angle, 1)
}

//limitar velocidad
if speed>=10
{
speed=10
}

//Giro
if keyboard_check (ord("A"))
{
image_angle+=4
}

if keyboard_check (ord("D"))
{
image_angle-=4
}