Skip to content
 

Exemplo com máquina de estados


// Posição e vel do personagem e inimigo
float x = 100, vx = 1, xinimigo=200;
float y = 100, vy = 1, yinimigo=200;
int estado = 0;
void setup() {
 size(300,300);
}
void draw() {
 background(0);
 fill(255,0,0);
 ellipse(x,y,10,10);
 fill(0,255,0);
 ellipse(xinimigo,yinimigo,10,10);
 switch(estado) {
 case 0:
 atacando();
 // SE a distancia for menor que 10 vague!
 if(dist(x,y,xinimigo,yinimigo)<10) {
 estado = 1;
 }
 break;
 case 1:
 vagando();
 break;
 }
}
void vagando() {
 x = x + vx;
 if( (x>width) || (x<0)) {
 vx = -vx;
 }
}
void atacando() {
 // Se o personagem estiver à ESQUERDA
 if(x<xinimigo) {
 vx = 1;
 }
 // Se o personagem estiver à DIREITA
 if(x>xinimigo) {
 vx = -1;
 }
 // Se o personagem estiver ACIMA
 if(y<yinimigo) {
 vy = 1;
 }
 // Se o personagem estiver ABAIXO
 if(y>yinimigo) {
 vy = -1;
 }
 x = x + vx;
 y = y + vy;
}

Deixar uma Resposta

Você precisa estar logado para postar um comentário.