//*****變數宣告*****
PImage s2,cat1,s1,s3,catshack; //圖片空間
float y = 450; //跳繩y變數
int now=1; //改變場景要用到的變數
int jumpH=0; //喵跳的高度
int mx=400,my=400; //喵的位子
boolean stop = false; //遊戲暫停會用到
int score =0; //計算得分會弄到
float count=1.5; //讓跳繩變快
float count2=0; //算跳了幾次
//*****設定*****
import ddf.minim.*; //音樂
Minim minim; //音樂
AudioPlayer player; //音樂
void setup() {
size(900, 600); //視窗大小
s1=loadImage("bk2.png"); //場景1
s2=loadImage("bk.jpg"); //場景2
s3=loadImage("s3.jpg"); //場景3
cat1=loadImage("cat.png"); //跳跳貓
catshack=loadImage("catshack.png");
//****音樂*****
minim = new Minim(this);
player = minim.loadFile("888.mp3");
player.play();
}
//*****開始畫****
void draw() {
image(s2,0,0);
if (stop == false) {
l();
jump();
judge();
}
//*****按Enter鍵休息****
if (keyPressed) {
stop = true;
fill(0);
textSize(150);
text("STOP", 250, 300);
}
else stop = false;
if(mouseX>622 && mouseX<895 && mouseY>96 && mouseY<130 && mousePressed){
now=3;
}
}
//*****跳跳繩的繩******
void l(){
fill(255,0,128);
y= y + count;
if (y > 600) y = 350;
strokeWeight(10);
fill(255,0,128);
line(0,y,width,y);
}
//*****跳和場景變換*****
void jump(){
if(now==1){
show1();
if(mouseX>593 && mouseX<836 && mouseY>188 && mouseY<273 && mousePressed){
now=2;
}
}
if(now==2){
show2();
if(jumpH>0){
jumpH=jumpH-10;
my-=10;
}
if(my<400){
my+=5;
}
image(cat1,mouseX,my,200,200); //讓跳跳人跟著滑鼠X移動
}
if(now==3){
show3();
}
}
void show1(){
image(s1,0,0);
}
void show2(){
//有手指指標
if (mousePressed == true) {
noCursor();
} else {
cursor(HAND);
}
fill(0);
textSize(50); //右上角分數大小
text(score+"score", 640,60); //右上角分數
}
void show3(){
image(s3,0,0);
fill(0);
textSize(50);
text("cheer up !", 250, 200);
textSize(150);
text(score, 360, 350);
minim = new Minim(this); //音樂
player = minim.loadFile("888.mp3"); //匯入音樂檔
player.play(); //音樂
}
//*****當按下滑鼠左鍵******
void mouseClicked()
{
jumpH=100 - (200-my);
score+=10; //分數跳一次加10分
count2+=1;
minim = new Minim(this); //音樂
player = minim.loadFile("jump.mp3"); //匯入音樂檔
player.play(); //音樂
}
//*****當按下滑鼠左鍵******
void judge(){
if(mouseY>300 && mouseY<540 && mousePressed) now=4;
if(now==4){
image(catshack,mouseX,my,138,200);
fill(0);
textSize(100);
text("Game over *_*' ",80,240);
text("Click Enter key !",65,350);
if(keyPressed)now=3;
}
if(now==3)show3();
if(count2==35)count+=0.5;
}
執行結果:
場景 1
場景 2
結束的狀況
場景 3
圖片素材 :
連結網址:
心得:
終於都做到一個段落了,雖然跟預期的有些不一樣,不過從無到有的結果實在令人十分感動,希望期末可以修正錯誤,再多加延伸,完成一個完整的遊戲。
在遊戲過程中按下play鍵,開始遊戲用滑鼠來控制貓咪左右移動,按下左鍵可讓貓咪跳起來。按下空白鍵可以暫停遊戲,螢幕畫面的右上角有分數統計。
在寫程式的過程中,我們一度卡在偵測繩子與貓咪相互碰撞跌倒的地方,一直不知道該怎麼做,之後我們用偵測畫面的位置,來判斷貓咪是否被繩子辦到。但還是沒有完整的做好偵測繩子,還需要再做更改。
沒有留言:
張貼留言