PFont fontA; // Este factor define a variavel da Font
int sphereDiameter = 15;//diametro das circunferências
boolean shoot = false;
int menu = 1;
int randx()
{
return int(random(600));
}
int[] sphereXCoords = { randx(), randx(), randx(), randx(), randx() };
int[] sphereYCoords = { 0, 0, 0, 0, 0 };
PFont font; //variavel da fonte.
PImage a; //variavel da imagem de fundo
PImage img; //variável da imagem da nave
void setup() {
size(600, 620);//tamanho da janela
font = loadFont("CenturyGothic-32.vlw");//este factor faz o reconhecimento da font
a = loadImage("ceuestrelado.jpg"); // Aqui fazemos o upload da imagem de fundo
img = loadImage("nave.png"); //Aqui fazemos o upload da imagem da nave...
}
void draw() {
image(a, 0, 0); //dimensões/localização da imagem de fundo...
image(img, mouseX, mouseY ,50 ,50);//dimensões/localização da imagem "Nave"
fill(color(255,255,0));//cor do disparo
stroke(color(255,255,0));//cor do stroke do disparo
if(shoot=true)
{
sphereKiller(mouseX);
shoot =true;
}
sphereDropper();
gameEnder();
if(menu == 1){
background(0);
textFont(font, 32);
textAlign(CENTER);
text("Começar", 300, 250);
noLoop();
}
}
void keyPressed()
{
shoot = true;// dispara
}
void sphereDropper()
{
stroke(0);
fill(204,102,0);
for (int i=0; i<5; hit =" true;" i =" 0;">= (sphereXCoords[i]-sphereDiameter/2))&&
(shotX <= (sphereXCoords[i]+sphereDiameter/2)))
{
hit = true;
line(mouseX, 565, mouseX, sphereYCoords[i]); //linha que mostra o disparo
ellipse(sphereXCoords[i], sphereYCoords[i], //elipse que aparece no acto da
//destruição
sphereDiameter+50, sphereDiameter+50);// diametro da explosão
sphereXCoords[i] = randx();
sphereYCoords[i] = 0;
}
}
if(hit == false)// se neste factor pusser "true" em vez de "false" a linha fica
// invisível mas continua lá,
// continuamos sem ter controlo no disparo apenas ao click do
//rato
{
line(mouseX, 565, mouseX,0);
}
}
void gameEnder()
{
for (int i=1; i< 5; i++)
{
if(sphereYCoords[i]==600)// aki podemos dizer que quando as bolas tocarem
//nestas cordenadas o jogo acabou e parou nakele
//momento.
// o erro a corrigir aqui e que não queremos que o
//jogo pare mas sim que volte para o ínicio.
{
fill(color(255));
loop(); // se eu apagar ou disser "loop" em vez de "noLoop", este factor
//isto vai me primitir continuar a jogar mesmo que as bolas passem
//pela nave
}
}
}
// menu de inicio
void mouseClicked(){
if(menu==1){
loop();
menu = 0;
}}
Ps:. Este código necessita de ficheiros que se encontram na pasta data.
Sem comentários:
Enviar um comentário