Bienvenidos de nuevo, mis compañeros desarrolladores de juegos.
En este video, vamos a añadir disparo automático.
Por lo que puedes ver aquí mismo que tenemos un tiempo entre tomas.
¿ Cuánto tiempo quieres entre tomas? Puedo oírte.
¿ Quieres decir 0.5?
Está bien, señor, ahí va.
Jugamos correr.
Teníamos el botón Play.
Corremos la ganancia,
y mantenemos pulsado el botón izquierdo del ratón.
Y ahí tienes. Se puede ver que debemos
cada fotograma y se puede ver que son muy consistentes.
Entonces no estoy jugando un juego y aquí estoy manteniendo pulsado el botón y
sigue disparando cada 0.5 segundos o cada uno tiene segundo,
seguimos disparando capaz.
Entonces, no perdamos más tiempo.
Vamos a aprender sobre los contadores.
Y empecemos.
O k
Por lo que queremos tener la capacidad de disparar automáticamente las
balas cuando se mantiene pulsado el botón del ratón.
Por lo que actualmente cada vez que presionamos el botón,
una vez podemos disparar,
pero lo que queremos es tener algún tipo de
disparo automático mientras mantenemos presionado el botón,
igual que un rifle,
pesar de que estamos usando una escopeta aquí mismo,
solo usaremos nuestra imaginación e imaginaremos que se trata de una escopeta automática.
Y mientras mantenemos pulsado el botón, sigue disparando.
Entonces, ¿cómo vamos a hacer esto?
Actualmente, si miras aquí mismo,
puedes ver que este método,
el botón get mouse down,
devuelve un verdadero durante el fotograma el usuario presionó el botón del mouse dado.
Por lo que sólo devuelve true una vez en
el fotograma que el jugador o el usuario ha pulsado el botón.
Lo que queremos es que queremos usar algo llamado el botón input dot get mouse.
Por lo que note que esto era botón del ratón hacia abajo.
Este es el botón get mouse.
Y si lees la descripción,
puedes ver que devuelve un verdadero si el botón del ratón dado se mantiene pulsado.
Entonces mientras estamos aguantando,
esto sigue volviendo verdad.
Y esto nos permitirá seguir instanciando balas todo el tiempo, cada fotograma.
Pero se nos ocurre un problema.
Te has dado cuenta de que cuando ejecutamos el juego,
si te acuerdas, podemos ver las estadísticas aquí mismo.
Por lo que tenemos alrededor de 800 a mil cuadros por segundo.
Entonces cada fotograma,
mientras mantenemos pulsado el botón del ratón,
vamos a estar instanciando una bala,
lo cual es muy malo.
Entonces vamos a tener alrededor de las 1000 balas cada segundo.
Ahora, es divertido.
Es un arma muy OOP,
pero eso no es lo que queremos.
Queremos tener cierto tiempo entre
disparar cada libro mientras estamos sosteniendo como un arma real.
¿ Cuál es la materia aquí?
De acuerdo, así que no se preocupe.
Creo que esto se resolverá por sí mismo. De todos modos.
Empecemos.
El primero que vamos a hacer es crear un campo serializado,
que va a ser un flotador,
y va a ser el tiempo entre tomas.
Una segunda variable que tendremos como flotador privado y el contador de disparos.
Y lo que haremos es en cuanto empecemos,
vamos a poner el contador de disparos para que esté alrededor de 0,
o podemos ponerlo de inmediato aquí en lugar de ponerlo y el inicio.
Por lo que empezamos a las 0.
Ahora si nos desplazamos aquí abajo,
vamos a crear otra condición.
Y diremos que si el punto de entrada consigue el botón del ratón,
que devuelve si el botón de modos dado se mantiene pulsado.
Y también utilizamos el índice 0 para el botón izquierdo del ratón.
Vamos a empezar a usar el contador de disparos y
a quitar de él el tiempo de punto delta.
Entonces, ¿recuerdas cuando usamos el plus igual
en algún lugar aquí arriba cuando estábamos usando la transformación,
ahora no la tenemos.
Bueno, esto es similar al plus igual.
Por lo que esto representa el contador de disparos menos tiempo.Deltatime.
Y sabes qué, voy a duplicar esto, comentar esto.
Y entonces haré de esto un minuss igual.
Por lo que recordarás que estas son las mismas cosas.
Y hasta lo moveré abajo junto a la línea justo aquí.
Se puede guardar esto como un recordatorio de por qué estamos estableciendo menos iguales,
más iguales y todas estas cosas.
Es mucho más fácil de leer y es mucho más fresco
y te hará mucho más profesional
buscando siempre que estemos mostrando a alguien tu juego.
Entonces sigamos uno,
¿qué necesitamos aquí?
Si bien mantenemos pulsado el botón del ratón,
el contador de disparos se está contando hacia abajo.
Entonces lo que queremos es siempre que este contador de disparo termine o se convierta en 0,
queremos disparar una bala y luego
refrescar el contador de disparos de nuevo al tiempo entre disparos.
Entonces, ¿cómo vamos a hacer esto?
En lugar de instanciar de inmediato,
voy a emitir un reto.
¿ Fue esa una transición mejor que la última vez?
De todos modos, tu reto es comprobar si el contador tiene,
y así crear una condición if que revise el contador de disparos.
Si el contador de disparos es menor o igual a 0,
¿por qué es menor o igual a 0?
Podría estar preguntando ¿por qué no inmediatamente 0?
Bueno, porque como estamos contando.