今日進度:
總目標:做出水果忍者
小目標:
1.設定畫面
2.設定拋物線
3.加入刀子及切水果的功能
4.建立聲音和放入
進階:
加入計分器
↑設定畫面和插入圖片↑實際遊玩影片(沒聲音)
程式:
import ddf.minim.*; //引入聲音的函式
Minim minim;
AudioPlayer player1; //定義音檔1
AudioPlayer player2;//定義音檔2
PImage img;
float x=100, y=500, vx=3, vy=-30;
int fruitDie=0;
void setup()
{
size(500,500);
img = loadImage("fruit.png");
minim = new Minim(this);
player1 = minim.loadFile("zapsplat_warfare_knife_metal_blade_edge_scrape_wood_008_48474.mp3");
player2 = minim.loadFile("2019-06-17_-_Super_Spiffy_-_David_Fesliyan.mp3");
player2.loop();
}
void draw()
{
background(255);
image(img, x, y, 100, 100);
x+=vx;
y+=vy;
vy+=0.98;
if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) //當滑鼠切到水果時執行下列動作
{
fruitDie=1;
player1.rewind();
player1.play();
}
stroke(0);line(mouseX,mouseY,pmouseX,pmouseY); //設定滑鼠畫出的刀痕
if(y>500) //如果超過畫面,水果重生
{
fruitDie=1;
}
if(fruitDie==1) //如果水果死亡,會隨機重生高度跟起始位置
{
if(frameCount%2==0)
{
x=random(250);y=500;vx=random(2,3);vy=-random(28,32);
}
else
{
x=random(250,500);y=500;vx=-random(2,3);vy=-random(28,32);
}
fruitDie=0;
}
}
↑實際遊玩影片(有聲音和計分器)import ddf.minim.*; //引用音檔函式
Minim minim;
AudioPlayer player1;
AudioPlayer player2;
PImage img;
float x=100, y=500, vx=3, vy=-30;
int fruitDie=0,point=0;
PFont f; //定義字體及大小
void setup()
{
size(500,500);
img = loadImage("fruit.png"); //插入水果圖片
minim = new Minim(this);
player1 = minim.loadFile("zapsplat_warfare_knife_metal_blade_edge_scrape_wood_008_48474.mp3");
player2 = minim.loadFile("2019-06-17_-_Super_Spiffy_-_David_Fesliyan.mp3");
player2.loop();
f=createFont("Arial", 20, true); //設定字體及大小
}
void draw()
{
background(255);
textFont(f,16);
fill(0);
text("Point:",0,20); //印出計分器的位置及大小
text(point,50,20);//印出分數
image(img, x, y, 100, 100);
x+=vx;
y+=vy;
vy+=0.98;
if(x<mouseX && mouseX<x+100 && y<mouseY && mouseY<y+100) //如果滑鼠切到水果加一分並讓水果重生
{
fruitDie=1;
player1.rewind();
player1.play();
point+=1;
}
stroke(0);line(mouseX,mouseY,pmouseX,pmouseY);
if(y>500)
{
fruitDie=1;
}
if(fruitDie==1)//當水果重生會隨機生成位置
{
if(frameCount%2==0)
{
x=random(250);y=500;vx=random(2,3);vy=-random(28,32);
}
else
{
x=random(250,500);y=500;vx=-random(2,3);vy=-random(28,32);
}
fruitDie=0;
}
}
https://youtu.be/LF8-ACcTiHA
https://youtu.be/fDWcevJdXF8
https://youtu.be/cH1i_NtZkUQ

沒有留言:
張貼留言