這星期我們要學如何做出類似水果忍者的遊戲,我也終於回到學校上課了,沒想到這麼快就可以製作出可以實際遊玩的遊戲,那麼接下來進入實作階段。
第一步比較簡單,先讓水果可以顯示,並加上我們上星期寫過的物理效果,背景要更改,否則會留下拖影,效果如圖:
這樣就可以看到一個香蕉在螢幕上四處蹦躂
程式碼如下
PImage img;
float x=100, y=500, vx=3,vy=-30;
void setup()
{
size(500,500);
img=loadImage("fruit.png");
}
void draw()
{
clear();
image(img,x,y,100,100);
x+=vx;
y+=vy;
vy+=0.98;
if(y>500)
{
x=random(400); y=500; vx=random(-5,5); vy=-30;
}
}
做完這一步就可以加上刀切效果了,切中了之後水果消失,然後再隨機生成一個新的水果,效果如下:
雖然圖上看不出來就是了,下面我們為它添加上音效,畢竟水果忍者這個遊戲沒有音效爽快感直接減半
在這裡添加sound函式庫就有音效了
最後添加上音效的程式碼如下:
import
processing.sound.*;
SoundFile sound1;
SoundFile sound2;
SoundFile sound3;
SoundFile sound4;
PImage img;
float x=100, y=500,
vx=3,vy=-30;
int fruitDie=0;
int point=0;
int mouseMove=0;
void setup()
{
size(500,500);
sound1= new SoundFile(this,
"blade-ink-2.wav");
sound2= new SoundFile(this,
"Bonus-Explosion-1.wav");
sound3= new SoundFile(this,
"Bonus-Explosion-3.wav");
sound4= new SoundFile(this, "Bonus-Explosion-5.wav");
img=loadImage("fruit.png");
}
void draw()
{
clear();
image(img,x,y,100,100);
x+=vx;
y+=vy;
point++;
vy+=0.98;
if(y>500) fruitDie=1;
if(x<mouseX&&mouseX<x+100&&y<mouseY&&mouseY<y+100
&& mouseMove==1)
{
sound1.play();
fruitDie=1;
if(point<10) sound4.play();
else if(point<20) sound3.play();
else if(point<30)sound2.play();
}
stroke(255);
line(mouseX,mouseY,pmouseX,pmouseY);
if(mouseX==pmouseX &&
mouseY==pmouseY) mouseMove=0;
else mouseMove=1;
if(fruitDie==1)
{
x=random(400); y=500; vx=random(-5,5);
vy=-30;
fruitDie=0;
point=0;
}
}
這樣就寫出了一個可以遊玩的小遊戲,說實話進度比我想像的快了不少,但收穫挺多。



沒有留言:
張貼留言