期中作業
火箭躲隕石
01161160 劉景晟
00163106 李士昌
說明:
隕石落下的會越來越快
得到的分數也會越高
利用滑鼠來控制左右移動
碰到隕石就會GameOver
等待一段時間會重新開始
程式碼:
float pX[]={0,0,0},pY[]={0,0,0},rocketX=200, rocketY=650, bgY=0, rockX=0;PImage imgBG, Sh;
PImage Rock[]=new PImage[2];
void setup() {
size(500, 800);
imgBG=loadImage("space1.jpg");
for(int i=0;i<2;i++) Rock[i]=loadImage("rock"+(i+1)+".png");
Sh=loadImage("sh.png");
imgBG.resize(500, 800);
for(int i=0;i<2;i++){
pX[i]= int(random(3))*150;pY[i]= 0;
}
}
float gg=0,x=5;
int score=0,z=1;
void draw()
{
if(gg>0){
x=5;
z=1;
textSize(80);
fill(255,0,0);
text("GameOver\n",50,200);
text("score\n"+score,50,300);
if(gg==1)score=0;
for(int i=0;i<2;i++){pX[i]=int(random(3))*150;pY[i]= 0;}
fill(255,0,0,1);rect(0,0,500,800);gg--;
return;
}
score+=z;
background(imgBG);
image(imgBG, 0, bgY, 500, 800);
image(imgBG, 0, bgY-800, 500, 800);
//image(Rock1, 0, 0, 150, 150);
//image(Sh,rocketX, rocketY, 100, 100);
bgY++;
if (bgY>800) bgY=0;
textSize(15);
fill(255, 0, 0);
text("Score:"+score, 50, 100);
for(int i=0;i<2;i++) image(Rock[i],pX[i],pY[i],150,150);
image(Sh,rocketX, rocketY, 100, 100);
for(int i=0;i<2;i++){
pY[i]+=x;
if(abs(pX[i]-rocketX)<=75 && (rocketY-pY[i])<75)gg=300;
if(pY[i]>650){pX[i]=int(random(3))*150;pY[i]= 0;x+=0.3;z+=1;}
}
}
void mousePressed() {
if (mouseButton == LEFT) {
if(rocketX>=200)rocketX-=150;
} else if (mouseButton == RIGHT) {
if(rocketX<=200)rocketX+=150;
}
}
沒有留言:
張貼留言