Joystick USB GM7 script...

Publicado por Vector, Mayo 18, 2023, 09:02:49 AM

Tema anterior - Siguiente tema

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

Vector

En la zona de descargas había un ejemplo en el que arrastrabas un código en cada room y podías usar el joystick con las funciones pressed y released.

Como se ha dañado mi disco externo he perdido ese editable y en la zona de descargas se ha vuelto a perder todo ese material de engines para GM7/6, por razones de mantenimiento. Solo quedan puñados de ejemplos de cada versión sin opción de búsqueda.

Alguien que tenga el editable o pueda dar ayuda con el código.

¿Volverán los archivos clásicos a la sección descargas?

Saludos.🖖😋

dixon

Hola saludos Vector.

Necesitas un código parecido a este:

Para evento créate:
global.bA = 0;

Para el evento step:
global.bAr = !keyboard_check(ord("A")) and global.bA;
global.bAp = keyboard_check(ord("A")) and !global.bA;
global.bA = keyboard_check(ord("A"));

Explicación:
En este caso he creado mis propias funciones de la tecla "A" del teclado, es decir, tengo mi pressed, mi released y mi check:

global.bAr es mi released de la Tecla A. Para cuando se suelte la tecla A.
global.bAp es mi pressed de la Tecla A. Para cuando se presione recientemente la teclaA.
global.bA es mi check o direct de la Tecla A. Para cuando se mantenga presionada la tecla A.

Ahora vamos a hacer otro ejemplo usando las viejas funciones del joytick:

Para el evento créate:
global.j1 = 0;

Para el evento step:
global.j1r = !joystick_check_button(1,1) and global.j1;
global.j1p = joystick_check_button(1,1) and !global.j1;
global.j1 = joystick_check_button(1,1);

Bueno en este caso estoy creando las funciones check, pressed y released del botón 1 del joystick.

global.j1r --� released
global.j1p --� pressed
global.j1 --� check o direct.

Y Bueno puedo usar ese boton uno para hacer saltar a un objeto:
if(global.j1p)
{
    //funcion que permita saltar
}

Ahora supongamos que se nos ocurre desarrollar nuestra propia versión mejorada de Tony Hawks, y queremos saltar cuando soltemos el botón 1.


Entonces podríamos usar:
if(global.j1r)
{
    //funcion que permita saltar
}


Entonces, si eres de los que usa la función gamePad, pues tendrás que hacer lo mismo pero cambiando la función.

Te vendría bien usar el script "draw_text_super" para evaluar las variables:
//txt ++= "varx: "+string(varx)+chr(13);
txt ="";
varx ="";

txt += "varx: "+string(varx)+chr(13);
txt += "varx: "+string(varx)+chr(13);
txt += "varx: "+string(varx)+chr(13);

draw_text(0,0,txt);

Debes colocar ese script al final de un evento draw. Deberás cambiar varx por la variable que quierras visualizar de las siguiente manera:

//txt ++= "varx: "+string(varx)+chr(13);
txt ="";
varx ="";

txt += "global.bA: "+string(global.bA)+chr(13);
txt += "global.bAp: "+string(global.bAp)+chr(13);
txt += "global.bAr: "+string(global.bAr)+chr(13);
txt += "varx: "+string(varx)+chr(13);

draw_text(0,0,txt);

Supongamos que queremos visualizer solo la posicion x de un objeto:
//txt ++= "varx: "+string(varx)+chr(13);
txt ="";
varx ="";

txt += "x: "+string(x)+chr(13);
txt += "varx: "+string(varx)+chr(13);
txt += "varx: "+string(varx)+chr(13);

draw_text(0,0,txt);

Si lo usas bien y empleas las funciones reemplazar y buscar del editor de script podrás acelerar tu velocidad de testeo de variables.

Bueno me despido, bye.

95 Visitantes, 0 Usuarios