Nombre del creador: King195
Descripción: Es un pequeño código para novicios en Game Maker que sirve para hacer uso del Sprint con tu personaje y que se almacene en una barra o contador que activa o desactiva el sprint con regeneración.
Versión GM: Game Maker Studio
Empecemos!
Primero de todo junto al Create Event de nuestro personaje ponemos las variables para que no de ninguna clase de error a la hora de usar nuestro Sprint
Create Event de nuestro personaje
global.sprint = 100; //Le indicamos el valor inicial del Sprint, que será 100
sprintmax = 120; //Le indicamos el tope maximo de valor Sprint que puede tener
sprintbar = true; //Es una variable que se almacenará más adelante en un Alarm
Ahora creamos un evento Alarm[0] que almacenará únicamente la variable "sprintbar", a la cual le daremos uso en un Step Event y podrá realizar la acción. Es tan solo una forma de organizarme 8)
Alarm Event de nuestro personaje
sprintbar = true;
A continuación haremos que todas estas variables tengan sentido. Teniendo el Step Event crearemos un End Step también.
En el Step Event de nuestro personaje pondremos
KEY_SPRINT=keyboard_check(vk_control); //Hacemos una variable que se encargue de guardar cual es nuestra tecla para Sprintar
if global.sprint > 0 //Aquí hacemos uso de la variable que pusimos en el Create Event, y le decimos. Si global.sprint es mayor a
//0 hará todo este codigo.
{
if (KEY_SPRINT and KEY_RIGHT) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la derecha
{
hsp=caminar +4; //hsp es una variable que actúa como un "Hspeed", sino lo teneis en el create event podeis hacer el cambio
// o ponerlo, igual que caminar. Caminar contiene un valor que sumará a Hspeed y le dará la velocidad.
}
if (KEY_SPRINT and KEY_LEFT) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la izquierda
{
hsp=-caminar -4;
}
if (KEY_SPRINT and KEY_UP) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia arriba
{
vsp=-caminar -4; //vsp es el mismo caso que con hsp, solo que este es para velocidad vertical y el otro para la horizontal
}
if (KEY_SPRINT and KEY_DOWN) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la abajo
{
vsp=caminar +4;
}
}
Ahora que ya tenemos esto en el Step Event debemos de crear un End Step Event que hará que la alarma sirva para algo
End Step Event del personaje
if sprintbar //Si esta la variable sprintbar
{
sprintbar = false; //Al ser un bucle le indicamos que la variable es falsa para que se vuelva a "resetear" por así decirlo
alarm[0] = 10; //Aquí ponemos la velocidad a la que el Sprint se regenera. Si tenemos una Room con un Speed de 30 le
//acabamos de decir que el alarm active la función cada 0.33 milisegundos aproximadamente.
if global.sprint < sprintmax and !KEY_SPRINT //Aquí le decimos que mientras no este pulsada la tecla de Sprintar y
//global.sprint sea menor a 120(el valor de la variable de sprintmax)
{
global.sprint+=.5; //lo que hará será sumar 0,5 a la sprintbar(a la barra del sprint o al contador).
}
if global.sprint > 0 and KEY_SPRINT //Si global.sprint es mayor a 0 y tenemos pulsada la tecla KEY_SPRINT
{
global.sprint-=1.; //global.sprint restará -1
}
}
Para entenderlo mejor, si yo no uso la tecla del sprint la regeneración será de 0.5, y si uso la tecla del sprint me sacará 1 punto a mi barra global.
A continuación creamos la barra global con un Draw Event de nuestro Hud, en el caso de no tener un objeto llamado Hud lo podéis hacer para hacer la comprobación de que funciona vuestro sprint y más adelante sacar una barra más bonita.
En el Draw Event de un obj_hud
draw_text(view_xview[view_current]+384, view_yview[view_current]+50, "Sprint " + string(global.sprint));
//en "Sprint" podéis poner las letras que queráis que se vean al lado de vuestro contador(vuestro contador es básicamente el valor de la variable global.sprint)
view_xview y view_yview son una buena forma de hacer que el obj hud no se tambalee ni se quede estatico, no es lo mismo poner que se verá según la view de la pantalla que poner este código
x+384, y+50
Ya que si pones eso le estas diciendo que sea en una coordenada concreta de la Room, pero que no se moverá.
Espero que os sirva y lo entendáis! A partir de esto podéis crear en el Draw Event algo que quede más bonito que un simple numero que esta en el medio de la pantalla.
Cualquier duda o error avisadme :P
**ADVERTENCIA** Esto es sólo un tutorial básico sobre como hacer un Sprint sencillo, por lo tanto ya doy por hecho que tenéis que tener un Step Event almenos para hacer caminar a vuestro personaje con sus variables, tan solo hay que moldearlo a vuestro personaje para que quede bien.