今天2022.1.8,我來補教筆記啦
1.遊戲介面上會有兩顆按鈕,分別為紅色開始遊戲鍵,綠色查看分數鍵。
2.進入遊戲後會出現主角蟑螂,藍白脫是攻擊武器,觸及蟑螂即可得分,分數會出現在座標(350,45)的位置;點擊右下角的RESET鍵可以重新開始新的一局。
程式碼如下:
float x,y,x0,y0,x1,y1,x2,y2,vx,vy,vx0,vy0,vx1,vy1,vx2,vy2;
int score=0,a,b,c,count=420;
int condition;//情況
int music;
PFont myFont;
PImage img0,img1,img2,img3,img4,img43,img5,img6,img7,img8,img9,img10,img11,img12;
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
minim = new Minim(this);
player=minim.loadFile("BGM.mp3");
size(800,600);
img0=loadImage("封面.png");
img1=loadImage("start.png");//讀入圖片
img2=loadImage("RANKING.png");
img3=loadImage("內容.png");//背景圖片
img4=loadImage("Cockroach.png");//小蟑螂
img12=loadImage("Cockroach-2.png");//中蟑螂
img43=loadImage("Cockroach-3.png");//大蟑螂
img5=loadImage("restart.png");//返回鍵
img6=loadImage("分數版.png");
img7=loadImage("拖鞋.png");
img8=loadImage("結束.png");
img9=loadImage("return.png");
img10=loadImage("Cockroach1.png");
img11=loadImage("Cockroach1-2.png");
generateCockroach();//一般的蟑螂
generateCockroach0();//一般的蟑螂
generateCockroach1();//一般的蟑螂
generateCockroach2();//特別的蟑螂
fill(255,0,0);
textSize(80);
myFont = createFont("微軟正黑體",30);///中文輸入法程式碼
}
void mousePressed() {///場景切換
if(condition==0){//主畫面
if (mouseButton == LEFT&&dist(470,470, mouseX, mouseY)<65){ // 切換到開始遊戲介面
condition=1;
}
if(mouseButton == LEFT&&dist(600,450, mouseX, mouseY)<50){
condition=3;
}
}
if(condition==1){//遊戲畫面
player.play();
if(mouseButton==LEFT&& dist(650,450,mouseX-100,mouseY-100)<50){
condition=0;//返回鍵
score=0;
count=600;
}
}
if(condition==2){//結束畫面
if (mouseButton == LEFT&&dist(700,550, mouseX, mouseY)<50){// 切換到開始遊戲介面
condition=0;
}
}
if(condition==3){//計分畫面
if(mouseButton==LEFT&& dist(700,520,mouseX,mouseY)<50) { // 切換到開始遊戲介面
condition=0;
}
}
}
void draw(){
if(condition==0){
image(img0,0,0,800,600);
image(img1,400,410,100,100);
image(img2,560,410,100,100);
player.pause();
player.rewind();
}
if(condition==1){//condition=1且時間>0=遊戲介面
image(img3,0,0,800,600);//背景圖片
image(img4,x,y,80,80);//小蟑螂圖片
image(img10,x1,y1,80,80);//小蟑螂圖片
image(img11,x0,y0,80,80);//小蟑螂圖片
image(img5,705,505,88,88);//重製鍵圖片
x+=vx;y+=vy;//若超過左邊界、右邊界,則會隨機產生一般蟑螂。
x0+=vx0;y0+=vy0;
x1+=vx1;y1+=vy1;
x2+=vx2; y2+=vy2;//若超過左邊界、右邊界,則會隨機產生特別蟑螂。
if(frameCount%20==0){//每一秒,改一次角度
float angle = atan2(vy,vx);float angle2=(angle+radians(random(-20,20)));//時間到就轉30度。
float angle0 = atan2(vy0,vx0);float angle3=(angle0+radians(random(-90,60)));//時間到就轉30度。
vx =cos(angle2);vy =sin(angle2);//一般蟑螂
vx0=cos(angle3);vy0=sin(angle3);//一般蟑螂
vx1=cos(angle2);vy1=sin(angle2);//一般蟑螂
vx2=sin(angle2);vy2=cos(angle2);//特別蟑螂
}
if(x<0 || y<0||x>600||y>400)generateCockroach();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
if(mousePressed && dist(mouseX-40,mouseY-40,x,y)<40){
generateCockroach();//死後產生新的蟑螂。
score+=10;
}//一般蟑螂
if(x0<0 || y0<0||x0>600||y0>400)generateCockroach0();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
if(mousePressed && dist(mouseX-40,mouseY-40,x0,y0)<40){
generateCockroach0();//死後產生新的蟑螂。
score+=10;
}//一般蟑螂
if(x1<0 || y1<0||x1>600||y1>400)generateCockroach1();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
if(mousePressed && dist(mouseX-40,mouseY-40,x1,y1)<40){
generateCockroach1();//死後產生新的蟑螂。
score+=10;
}//一般蟑螂
if(frameCount>180&&frameCount<360){
image(img12,x2,y2,120,120);//中蟑螂圖片
if(x2<0 || y2<0||x2>780||y2>580)generateCockroach2();//不管邊界x,y<0或x,y>500,都會產生新的蟑螂。
if(mousePressed && dist(mouseX-50,mouseY-50,x2,y2)<50){
generateCockroach2();
score+=100;
}
}//特別蟑螂
image(img7,mouseX-40,mouseY-40,80,80);//產生藍白拖。
textFont(myFont);
text("分數:"+score,350,45);
fill(255,255,255);
textSize(36);
text("Time:" +int(count/60)+"秒",50,45); ///計時器。
count--;
if(count<=0){
condition=2;//結束介面
count+=300;
c=score;
if(score>a){
a=score;
}
if(score<a&&score>b){
b=score;
}
score=0;
}
}
if(condition==2){//結束畫面
background(186,85,211);
image(img2,10,5,500,500);
image(img8,0,0,800,600);
textFont(myFont,80);
text(+c,340,260);
player.pause();//音樂停止
player.rewind();//從頭播放
}
if(condition==3){
image(img6,0,0,800,600);//分數版
image(img9,650,500,100,100);//返回建
textFont(myFont,44);
fill(255,255,255);
text(+a,385,260);
textFont(myFont,44);
text(+b,385,450);
}
}
void generateCockroach(){//一般的蟑螂
int edge=int (random(4));//4個邊
if(edge==0){
x=600;y=random(300);vx=-random(1,3);vy=random(-3,+3);
}else if(edge==1){
x=random(300);y=400;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 generateCockroach0(){//一般的蟑螂
int edge0=int (random(4));//4個邊
if(edge0==0){
x0=600;y0=random(300);vx0=-random(1,3);vy0=random(-3,+3);
}else if(edge0==1){
x0=random(300);y0=400;vx0=-random(-3,3);vy0=random(1,3);
}else if(edge0==2){
x=0;y=random(300);vx0=random(1,3);vy0=random(-3,+3);
}else if(edge0==3){
x0=random(300);y=0;vx0=random(-3,3);vy0=random(1,3);
}
}
void generateCockroach1(){//一般的蟑螂
int edge1=int (random(4));//4個邊
if(edge1==0){
x1=300;y1=random(300);vx1=-random(1,3);vy1=random(-3,+3);
}else if(edge1==1){
x1=random(300);y1=300;vx1=-random(-3,3);vy1=random(1,3);
}else if(edge1==2){
x1=0;y1=random(300);vx1=random(1,3);vy1=random(-3,+3);
}else if(edge1==3){
x1=random(300);y1=0;vx1=random(-3,3);vy1=random(1,3);
}
}
void generateCockroach2(){///特別的蟑螂
int edge2=int (random(4));//4個邊
if(edge2==0){
x2=600;y2=random(300);vx=-random(1,3);vy=random(-3,+3);
}else if(edge2==1){
x2=random(300);y2=400;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);
}
}




沒有留言:
張貼留言