這次我用frameCount影格的方式讓特別的蟑螂在特別的時間出現(如圖(1)、圖(2))
特別的蟑螂是圖中的正方形,一般蟑螂是圓形。
當frameCount==180&&frameCount<360的時候,特別蟑螂會出現,也就是說特別的蟑螂會在Time=6出現 ,Time=3的時候消失。
![]() |
| 圖(1) |
![]() |
| 圖(2) |
程式碼如下:
float x,y,vx,vy,x2,y2,vx2,vy2;
int count=600;///計時器的總共時間
int score=0;
PFont myFont;///讀入字體
void setup(){
size(500,500);
generateCockroach();//一般的蟑螂
generateCockroach2();//特別的蟑螂
fill(255,0,0);
textSize(80);
myFont = createFont("微軟正黑體",30);///中文輸入法程式碼
}
void draw(){
background(128);
fill(0);//蟑螂顏色
ellipse(x,y,10,10);//蟑螂的大小
x+=vx; y+=vy;//若超過左邊界、右邊界,則會隨機產生一般蟑螂。
x2+=vx2; y2+=vy2;//若超過左邊界、右邊界,則會隨機產生特別蟑螂。
if(frameCount%10==0){//每一秒,改一次角度
float angle = atan2(vy,vx);
//float angle2=(angle+radians(90));//時間到就轉90度。
float angle2=(angle+radians(random(-30,30)));//時間到就轉30度。
vx =cos(angle2);//一般蟑螂
vy =sin(angle2);//一般蟑螂
vx2=sin(angle2);//特別蟑螂
vy2=cos(angle2);//特別蟑螂
}
if(x<0 || y<0||x>500||y>500)generateCockroach();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
noFill(); ellipse(mouseX,mouseY,50,50);//產生藍白拖。
if(mousePressed && dist(mouseX,mouseY,x,y)<40){
generateCockroach();//死後產生新的蟑螂。
score+=10;///分數加10分
}
if(frameCount>180&&frameCount<360){///
fill(0);rect(x2,y2,20,20);//特別的蟑螂
if(x2<0 || y2<0||x2>500||y2>500)generateCockroach2();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
if(mousePressed && dist(mouseX,mouseY,x2,y2)<40){
generateCockroach2();//死後產生新的特別蟑螂。
score+=100;///分數加100分
}
}
if(count<=0)background(100,50,255);
//如果秒數<=0,背景色彩改變。
textFont(myFont);
text("分數:"+score,350,45);
///計時器。
if(count<=0){
textFont(myFont,80);
text("遊戲結束",80,200);
}
else {
count--;
}
fill(0);
textSize(36);
text("Time:" +int(count/60),50,45); ///計時器。
}
void generateCockroach(){//一般的蟑螂
int edge=int (random(4));//4個邊
if(edge==0){
x=300;y=random(300);vx=-random(1,3);vy=random(-3,+3);
}else if(edge==1){
x=random(300);y=300;vx=-random(-3,3);vy=random(1,3);
}else if(edge==2){
x=0;y=random(300);vx=random(1,3);vy=random(-3,+3);
}else if(edge==3){
x=random(300);y=0;vx=random(-3,3);vy=random(1,3);
}
}
void generateCockroach2(){///特別的蟑螂
int edge2=int (random(4));//4個邊
if(edge2==0){
x2=300;y2=random(300);vx=-random(1,3);vy=random(-3,+3);
}else if(edge2==1){
x2=random(300);y2=300;vx=-random(-3,3);vy=random(1,3);
}else if(edge2==2){
x2=0;y2=random(300);vx=random(1,3);vy=random(-3,+3);
}else if(edge2==3){
x2=random(300);y2=0;vx=random(-3,3);vy=random(1,3);
}
}


沒有留言:
張貼留言