int naveAlvoX = 300;
int naveAlvoY = 50;
int deslocaX = 5;
int naveTiroX = 300;
int naveTiroY = 550;
boolean atirando = false;
int tiroX = 300;
int tiroY = 550;
int tiros = 3;
int estado = 0;
void setup() {
size(600, 600);
}
void draw() {
if (estado == 0) {
menu();
}
if (estado == 1) {
rainbowRoad();
moveNaveAlvo();
moveNaveTiro();
if (atirando) {
moveTiro();
}
verificaAcerto();
}
}
void moveNaveAlvo() {
naveAlvoX += deslocaX;
if (naveAlvoX >= 650) {
naveAlvoX = -50;
}
desenhaNave(naveAlvoX, naveAlvoY);
}
void moveNaveTiro() {
naveTiroX = mouseX;
if (mousePressed && !atirando && tiros > 0) {
atirando = true;
tiroX = naveTiroX;
tiros--;
}
desenhaNave(naveTiroX, naveTiroY);
fill(0);
textSize(10);
text(tiros, naveTiroX, naveTiroY);
}
void moveTiro() {
noStroke();
colorMode(HSB, height);
tiroY -= 10;
fill(tiroY, height, height);
rect(tiroX-5, tiroY-15, 10, 30);
colorMode(RGB, 255);
}
void desenhaNave(int x, int y) {
stroke(0, 255, 0);
fill(127);
ellipse(x, y, 100, 40);
fill(0, 127, 255);
arc(x, y-5, 50, 50, PI, TAU);
line(x-5, y-25, x-15, y-40);
line(x+5, y-25, x+15, y-40);
}
void verificaAcerto() {
if (tiroY<=50 && tiroY>=10 && tiroX>naveAlvoX-50 && tiroX<naveAlvoX+50) {
stop();
}
if (tiroY<=-15) {
atirando = false;
tiroY = 550;
}
}
void rainbowRoad() {
colorMode(HSB, 2);
strokeWeight(2);
for (int i = 0; i<=height; i++) {
stroke(-(sin(radians(frameCount+i))-1), 2, 2);
line(0, i, width, i);
}
colorMode(RGB, 255);
}
void menu() {
colorMode(HSB, 2);
background(0);
fill((sin(radians(frameCount))+1), 2, 2);
textSize(50);
text("Press Space to play", 55, 300);
colorMode(RGB, 255);
if (keyPressed && key == ' ') {
estado = 1;
}
}
Algo (tipo o uso de < e >) trava o código aqui, mas funciona normalmente no processing
Nenhum comentário:
Postar um comentário
Pode falar, eu não mordo... Pelo menos não através da internet