Últimos temas
» Tienda de dibujos
por DopellSerch Ayer a las 9:27 pm

» Zaza no konpasu (La Brújula de Zaza) [VXACE]
por Pocari Ayer a las 1:27 pm

» Ayuda con Scripting en Menú
por DorFenn Ayer a las 2:22 am

» Concurso de screens (Agosto '19) [Votaciones]
por Turbiosoft.acho Jue Ago 22, 2019 4:19 pm

» Iconos sueltos 2.0!!
por Greninja555 Miér Ago 21, 2019 12:30 pm

» Inherited Sins [Juego Completo] [Definitive Edition]
por kermexrpg Miér Ago 21, 2019 4:48 am

» Chronicles from the Past
por fran0090 Miér Ago 21, 2019 3:58 am

» KMonstersTerrain XP
por kyonides Mar Ago 20, 2019 4:28 am

» ¿Retirar un estado al huir? (VX ACE)
por MCarlos15 Dom Ago 18, 2019 6:12 pm

» Tutorial puzzles
por Pocari Sáb Ago 17, 2019 3:18 pm

» ACTUALIZACIÓN Y FINALIZACIÓN DE "UN NUEVO MUNDO"
por RENDER201 Sáb Ago 17, 2019 5:47 am

» [XP,VX,ACE] Largos Script Calls
por kyonides Sáb Ago 17, 2019 5:01 am


PREGUNTA BÁSICA DE JAVASCRIPT

Ir abajo

PREGUNTA BÁSICA DE JAVASCRIPT Empty PREGUNTA BÁSICA DE JAVASCRIPT

Mensaje por Fiquei el Jue Abr 25, 2019 10:10 pm

Muy buenas! Tenía una dudilla que quería comentaros. Seguro que más de uno que tenga ya tiros pegados en Javascript me sabrá responder.

El caso es que, debido a que las opciones condicionales para pulsar botones que trae el RPG Maker MV son, como mínimo, bizarras (¿Pulsar Av Pagina?), me gustaría utilizar las condicionales con teclas más usuales.

En RGSS no tengo problema, sé que metiendo como condición una llamada a Script del tipo "Input.trigger?(Input::X)", donde X sería la tecla, la cosa funciona.

El tema es que no tengo claro la llamada equivalente que tendría que hacer con Javascript.

Si me he explicado, ¿alguien podría iluminarme? Si no queda claro, lo vuelvo a explicar, sin problema.

¡Gracias por anticipado!

Fiquei
PJ Principal
PJ Principal

Masculino
Rmakercom
RPG Maker : Xp
Mensajes : 193
Monedas : 1067
Reputación : 18

Volver arriba Ir abajo

PREGUNTA BÁSICA DE JAVASCRIPT Empty Re: PREGUNTA BÁSICA DE JAVASCRIPT

Mensaje por Chaskarron el Sáb Abr 27, 2019 8:52 pm

La respuesta a tu cuestion se encuentra en el archivo rpg_core.js alrededor de la linea 3000 en el objeto Input del engine. En el cual deberas establecer nuevos valores añadidos para las teclas que quieras agregar a los parametros de pageup y pagedown de las funciones que determinan las pulsaciones de teclas. Debes tener en cuenta que el numero del indice se debe corresponder con la identificacion de la tabla ASCII para esa tecla.

Código:
/**
 * A hash table to convert from a virtual key code to a mapped key name.
 *
 * @static
 * @property keyMapper
 * @type Object
 */
// La estructura de este objeto es simple,
// debes acceder al valor ASCII de la tecla
// y asociarla a la funcionalidad que deseas
// siendo: indice: 'funcion'
// Ejemplo: 48: 'tab' //esto asigna la pulsacion de TAB a la tecla "0" (cero)
Input.keyMapper = {
    9: 'tab',       // tab
    13: 'ok',       // enter
    16: 'shift',    // shift
    17: 'control',  // control
    18: 'control',  // alt
    27: 'escape',   // escape
    32: 'ok',       // space
    33: 'pageup',   // pageup
    34: 'pagedown', // pagedown
    37: 'left',     // left arrow
    38: 'up',       // up arrow
    39: 'right',    // right arrow
    40: 'down',     // down arrow
    45: 'escape',   // insert
    81: 'pageup',   // Q
    87: 'pagedown', // W
    88: 'escape',   // X
    90: 'ok',       // Z
    96: 'escape',   // numpad 0
    98: 'down',     // numpad 2
    100: 'left',    // numpad 4
    102: 'right',   // numpad 6
    104: 'up',      // numpad 8
    120: 'debug'    // F9
};

Teniendo esa referencia como base debes sobreescribir el keyMapper para incluir las nuevas teclas que necesites, asi como la posibilidad de crear nuevas funcionalidades en la clase Input.

Un saludo!!
Chaskarron
Chaskarron
PJ Principal
PJ Principal

Masculino
España
RPG Maker : MV
Mensajes : 203
Monedas : 581
Reputación : 47
Edad : 38
Localización : Mordor

Volver arriba Ir abajo

PREGUNTA BÁSICA DE JAVASCRIPT Empty Re: PREGUNTA BÁSICA DE JAVASCRIPT

Mensaje por Fiquei el Lun Abr 29, 2019 6:45 am

¡Muchas gracias @Chaskarron! Creo que con esto ya no tendré problema.

EDIT: Bueno, no, espera. Porque vale, para crear nuevas funcionalidades en el core ok, no veo problema. Pero, ¿y si lo que quiero hacer es una chuminada tipo "cuando pulso tal botón se enciende un interruptor o se activa tal animación"?

Supongamos que quiero pulsar el A y que se active el interruptor "Limón". Mi suposición de lo que tengo que hacer en el Maker (no en el .js) es la siguiente:

Spoiler:
Si: Script: Input.isTriggered = 65
: Limón = ON

¿Me equivoco?

Fiquei
PJ Principal
PJ Principal

Masculino
Rmakercom
RPG Maker : Xp
Mensajes : 193
Monedas : 1067
Reputación : 18

Volver arriba Ir abajo

PREGUNTA BÁSICA DE JAVASCRIPT Empty Re: PREGUNTA BÁSICA DE JAVASCRIPT

Mensaje por Chaskarron el Lun Abr 29, 2019 9:30 am

@Fiquei escribió:¡Muchas gracias @Chaskarron! Creo que con esto ya no tendré problema.

EDIT: Bueno, no, espera. Porque vale, para crear nuevas funcionalidades en el core ok, no veo problema. Pero, ¿y si lo que quiero hacer es una chuminada tipo "cuando pulso tal botón se enciende un interruptor o se activa tal animación"?

Supongamos que quiero pulsar el A y que se active el interruptor "Limón". Mi suposición de lo que tengo que hacer en el Maker (no en el .js) es la siguiente:

Spoiler:
Si: Script: Input.isTriggered = 65
: Limón = ON

¿Me equivoco?

Puedes intentarlo pero como estas tratando una funcion como si fuese una propiedad de clase te va a dar error en tiempo de ejecucion, ya sea property isTriggered is not defined o alguna otra cosa por el estilo.

No te queda mas opcion que modificar el core implementando lo que necesites para hacer lo que quieres.

ejemplo:


/**
 * A hash table to convert from a virtual key code to a mapped key name.
 *
 * @static
 * @property keyMapper
 * @type Object
 */
Input.keyMapper = {
    9: 'tab',       // tab
    13: 'ok',       // enter
    16: 'shift',    // shift
    17: 'control',  // control
    18: 'control',  // alt
    27: 'escape',   // escape
    32: 'ok',       // space
    33: 'pageup',   // pageup
    34: 'pagedown', // pagedown
    37: 'left',     // left arrow
    38: 'up',       // up arrow
    39: 'right',    // right arrow
    40: 'down',     // down arrow
    45: 'escape',   // insert
    // nueva implementacion personalizada
    65: 'myOwnKey', // A
    // fin nueva implementacion
    81: 'pageup',   // Q
    87: 'pagedown', // W
    88: 'escape',   // X
    90: 'ok',       // Z
    96: 'escape',   // numpad 0
    98: 'down',     // numpad 2
    100: 'left',    // numpad 4
    102: 'right',   // numpad 6
    104: 'up',      // numpad 8
    120: 'debug'    // F9
};


if(Input.isPressed('myOwnKey')){
    console.log("Se ha pulsado la tecla A");
}


JavaScript y Ruby son dos lenguajes distintos con librerias distintas, que en un lenguaje se haga de una manera no implica que en el otro funcione de la misma forma, y menos aun cuando intentas tratar una funcion como una propiedad de clase. De otro modo para leer el keycode de la tecla pulsada como lo hace en Ruby, tendrias que reprogramar toda la clase Input del core ya que el valor del evento lo recoge internamente en una funcion privada de la clase.

Saludos!!!
Chaskarron
Chaskarron
PJ Principal
PJ Principal

Masculino
España
RPG Maker : MV
Mensajes : 203
Monedas : 581
Reputación : 47
Edad : 38
Localización : Mordor

Volver arriba Ir abajo

PREGUNTA BÁSICA DE JAVASCRIPT Empty Re: PREGUNTA BÁSICA DE JAVASCRIPT

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.