Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

* Sponsor

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: hacer una barra que limite el tiempo de correr  (Leído 781 veces)

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

Desconectado Bird Sick Games

  • Habitual
  • *
  • Puntos: 45
  • Mensajes: 18
    • Ver Perfil
en: Abril 22, 2021, 02:54:51 am
hola, he hecho un videojuego que tiene una mecánica que cuando apreté un botón corra, pero quiero poner una barra que se gaste cuando corra y que cuando se gaste la barra el personaje no pueda correr y cuando se quede parado el personaje (sin moverse) se regenere la barra, y que la barra aparezca en el lado derecho y arriba de la pantalla, ¿alguien me dice como se hace ? para que lo pueda implementar en mi proyecto
les mando una imagen como ejemplo
« Última modificación: Abril 22, 2021, 06:00:37 am por Bird Sick Games »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Respuesta #1 en: Abril 25, 2021, 03:10:13 am
Hola, gusto en saludarlo.

Aquí dos programas html5 con la respuesta, uno para pc y uno para móvil, los cuales pueden abrir dándole click a la imagen:

Versión móvil:Versión PC:

Explicación:

Bueno lo primero que vamos a hacer es definir variables para identificar a cada uno de los factores que intervienen en el proyecto:

1.   global.energia: será la variable que indicará la energía del personaje, si la energía ha llegado al 100% entonces estará completa y si es cero es porque no tiene energía.
2.   estado: en esta variable es la que nos va a indicar el estado del personaje, entre los estados posibles son: parado, caminando y corriendo.
3.   tecla_correr: es la variable que nos va a indicar cuál es la tecla que vamos a usar para correr.
4.   sprite_barra: Es el nombre que tendrá el sprite que se utilizará para representar la barra de energía.
5.   ancho_barra: En esta variable debemos colocar el ancho en pixeles que mide el sprite que usaremos para crear la barra, en este caso usaremos un sprite rectangular con dos imágenes una roja que servirá de fondo y una azul que hará referencia al porcentaje de energía.
6.   margen: es el margen o separación que tendrá la barra de las orillas de la room, o las orillas de la view, es decir la cámara que sigue al player.
7.   room_width: Es la variable que nos indicará el ancho de la room.
8.   ancho_pantalla:  Es la variable que nos indicara el ancho real de la pantalla y puede ser el ancho de la room o el ancho de la view si estas usando una cámara que sigue al player.

Ahora vamos a declarar esas variables en un evento créate del objeto player:

//porcentaje de energía
global.energia=100;

//Estado del personaje:
//Los estados en este caso son: parado, caminando, corriendo.
global.estado="parado";

//tecla que se va a usar para correr
tecla_correr=ord("X");//En este caso se esta indicando que la tecla para correr es la X

//ancho de barra de energía
ancho_barra=300;

//margen de separación de la barra:
margen=10;


A continuación nos vamos al evento draw del player y colocamos los siguientes códigos:

1.   Definimos una variable que se encargará de evaluar si la tecla para correr está presionada.
//botones a reconocer
tecla_correr_presionada=(keyboard_check(tecla_correr));

2.   Indicamos las reglas o condiciones que indicarán cuando la barra de energía bajará o se recargará:
//Para controlar la energía
//restando energía cuando corre
if(global.estado="corriendo"){global.energia-=0.5;}
//subiendo energia cuando está parado
if(global.estado="parado"){global.energia+=0.5;}

3.   Establecemos un regulador de la energia para que no suba de 100 ni baje de 0%.
//regulador de energia
if(global.energia<0){global.energia=0}//para que la energia no baje de cero;
if(global.energia>100){global.energia=100}//para que la energia no suba de 100;


4.   Creamos las condiciones para los estados, estas condiciones se utilizaran de manera combinada para determinar el estado del player
//Determinando los estados
condicion1=(x=xprevious);//será verdadero si no se está moviendo
condicion2=tecla_correr_presionada;//será verdadero si se presiona la tecla de correr
condicion3=(global.energia>0);//si la energia es mayor que cero

5.   Ahora definimos la relación entre las condiciones y el estado del player:
//Parado
if(condicion1){global.estado="parado"}
//caminando
if(!condicion1){global.estado="caminando"}
//corriendo
if(!condicion1 && condicion2 && condicion3){global.estado="corriendo"}

6.   Por último mandamos a dibujar la barra de energía:
//Dibujando barra de energia
ancho_pantalla=room_width;//determinando el ancho de pantalla o ancho de room
//ancho_pantalla=view_xport[0]+view_wport[0];
posicion_barra_x=ancho_pantalla-ancho_barra-margen;
//barra roja de fondo
draw_sprite(sprite_barra,0,posicion_barra_x,margen);
//barra azul indicativa de energia.
draw_sprite_stretched(sprite_barra,1,posicion_barra_x,margen,global.energia/100*ancho_barra,128);

Si estas usando una view, o una cámara que sigue al player tendrás que cambiar la variable ancho _pantalla de la siguiente manera:

 ancho_pantalla=view_xport[0]+view_wport[0];

Bueno eso es todo, nos vemos.
   

« Última modificación: Abril 25, 2021, 06:25:42 am por dixon »

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.