Exemplo com máquina de estados
8 junho 2010, 6:33 pm
// 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;
}