Y llegaron las matematicas, hacer un juego no solo requiere de conocimientos de programacion y diseño, las matematicas entran de lleno y de cuando en vez tendremos que calcular angulos o, como en este caso, no serviremos de algunas funciones matematicas para hacer el efecto de vida del monstrito, ahora aqui se habla del maximo comun divisor y esas cosas.
public void act() {
t++;
if (t % frameSpeed == 0){
t=0; currentFrame = (currentFrame + 1) % spriteNames.length;
//cuando inicia currentframe = 0, le suma 1 y lo divide
//con 2(spriteNames.length) y saca el residuo que es 1
//luego suma 2 y el residuo es 0, luego a 3 y el residuo es 1
// y asi sucesivamente, spriteNames.length nos garantiza que
//el residuo jamas va a ser mayor al numero de elementos en el array }
}
frame speed es declarado en Monster como 35, aca luego se va sumando t hasta llegar a 35 (o a un multiplo) y cuando lo hace pone t = o y reinicia el conteo
En este capitulo no hay absoltutamente nada nuevo, agregar un jugador es como agregar un monstruo
Aunque este cpaitulo es muy interesante yo pondria el manejo del jugador en un clase aparte, pero bueno…
public class Invaders extends Canvas implements Stage , KeyListener{ //interface para obtener los metodos referentes al teclado
addKeyListener(this);//Es el que "escucha" los eventos de tecla
public void keyPressed(KeyEvent e) {
player.keyPressed(e);//player hereda estas funciones y recibe el evento de tecla
}
public void keyReleased(KeyEvent e) {
player.keyReleased(e);
}
protected static final int PLAYER_SPEED = 4;//no cambia siempre tendra una nueva posicion en 4 y -4
protected void updateSpeed() {
//se modifican vx y vy y con esto cambian las variables de la funcion act
vx=0;vy=0;
if (down) vy = PLAYER_SPEED;
if (up) vy = -PLAYER_SPEED;
if (left) vx = -PLAYER_SPEED;
if (right) vx = PLAYER_SPEED;
}
Y listo con esto nuestro avion deberia ir arriba, abajo, izquierda, derecha usando las teclas de direccion
Por hoy es todo, hablaos