Step01:到moodle 下載音樂(上禮拜交的,接著程式碼如下):
///先安裝Skech-Library-Mange Libraries 裝 Sound
import processing.sound.*;//音樂功能
//使用外掛,要先把外掛裝起來!!!
SoundFile sound1, sound2, sound3;///程式存檔,拉音樂進來
void setup(){
size(400,300);
sound1= new SoundFile(this,"In Game Music.mp3");
sound1.play();
}
void draw(){
}
Step02:開新視窗,並設計可切換音樂的應用,程式碼如下:
///先安裝Skech-Library-Mange Libraries 裝 Sound
import processing.sound.*;//音樂功能
//使用外掛,要先把外掛裝起來!!!
SoundFile sound1, sound2, sound3;///程式存檔,拉音樂進來
void setup(){
size(400,300);
textSize(50);
fill(255,0,0);
sound1 = new SoundFile(this,"In Game Music.mp3");
sound2 = new SoundFile(this,"Intro Song_Final.mp3");
sound1.play();
}
int stage=1;//1, 2, 3
void draw(){
background(255);
if(stage==1){//舞台1
text("stage 1",100,100);
}else if(stage==2){//舞台2
text("stage2",100,100);
}
}
void mousePressed(){
if(stage==1){ //
stage=2;
sound1.stop();
sound2.play();
}else if(stage==2){
stage=1;
sound2.stop();
sound1.play();
}
}
Step03,簡化上列程式碼及寫法:
void setup(){
size(400,300);
}
int stage=1;//1:start,2:playing
void draw(){
background(255,255,0);
fill(255,0,0);
textSize(80);
if(stage==1){
text("stage 1", 100,100);
}else if(stage==2){
text("stage 2", 100,100);
}
}
void mousePressed(){
if(stage==1) stage=2;
else if(stage==2) stage=1;
}
Step04,製造有水果跑出來,按按鍵可以把它移掉:
1.讓水果可以飛出來
//目標:有個水果可以飛起來!!
//按按鍵,可以將它消掉
void setup(){
size(400,300);
}
float fruitX=200,fruitY=150;///水果位置X,Y有小數點精確
float fruitVX=1,fruitVY=-1;///水果的素地 VX VY
boolean flying=true;///if()好朋友,布林變數boolean true:成立 false不成立
void draw(){
background(255,255,0);///黃色背景
ellipse(fruitX,fruitY,50,50);
if(flying){///如果在飛,水果的位子會改變
fruitX += fruitVX;
fruitY += fruitVY;
//fruitVY +=0.98/3;///重力加速度
}
}
void keyPressed(){
flying=false;
}
Step5接著加上重力加速度:
//目標:有個水果可以飛起來!!
//按按鍵,可以將它消掉
void setup(){
size(400,300);
}
float fruitX=200,fruitY=300;///水果位置X,Y有小數點精確
float fruitVX=2,fruitVY=-13;///水果的素地 VX VY
boolean flying=true;///if()好朋友,布林變數boolean true:成立 false不成立
void draw(){
background(255,255,0);///黃色背景
ellipse(fruitX,fruitY,50,50);
if(flying){///如果在飛,水果的位子會改變
fruitX += fruitVX;
fruitY += fruitVY;
fruitVY +=0.98/3;///重力加速度
}
}
void keyPressed(){
flying=false;
fruitReset();///重新準備另一個水果
}
void fruitReset(){
fruitX=random(100,300);
fruitY=300;//固定高度
fruitVX=random(-2,+2);
fruitVY=-13;
flying=true;
}
//目標:class物件:每個水果都可以用物件生出來(值以及函式)
class Fruit{
float x, y, vx, vy;
boolean flying;
PApplet sketch;///為了讓ramdom可以使用,修改一下
Fruit(PApplet _sketch){///建構子:一開始要做的事情
sketch = _sketch;///為了讓ramdom可以用,修改一下
reset();
}
void reset(){
x = sketch.random(100.0, 300.0);///為了讓ramdom可以用,修改一下
y = 300;
vx = sketch.random(-2,+2);///為了讓ramdom可以用,修改一下
vy = -13;
flying = true;
}
void update(){
x += vx;
y += vy;
vy += 0.98/3;///重力加速度
}
}
Fruit fruit;
void setup(){
size(400,300);
fruit = new Fruit(this);///為了讓random可以用,修改一下
}
void draw(){
background(255,255,0);
ellipse(fruit.x, fruit.y, 50, 50);
fruit.update();
}
void keyPressed(){
fruit.reset();
}
Step7:加入子目錄,讓程式碼認識程式碼與示意圖如下;
Fruit [] fruits;
void setup(){
size(400,300);
fruits = new Fruit[3];
for(int i=0; i<3; i++){
fruits[i] = new Fruit(this);//為了讓ramdom可以用,修改一下
}
}
void draw(){
background(255,255,0);
for(int i=0; i<3; i++){
fill(255); ellipse(fruits[i].x, fruits[i].y, 50, 50);
textSize(30);
textAlign(CENTER,CENTER);
fill(0);text(fruits[i].c, fruits[i].x,fruits[i].y);
fruits[i].update();
}
}
void keyPressed(){
for(int i=0; i<3; i++){
if( keyCode == fruits[i].c){
fruits[i].reset();
}
}
}
String line="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
class Fruit{
float x, y, vx, vy;
boolean flying;
char c;//水果對應的字母
PApplet sketch;///為了讓ramdom可以使用,修改一下
Fruit(PApplet _sketch){///建構子:一開始要做的事情
sketch = _sketch;///為了讓ramdom可以用,修改一下
reset();
}
void reset(){
x = sketch.random(100.0, 300.0);///為了讓ramdom可以用,修改一下
y = 300;
vx = sketch.random(-2,+2);///為了讓ramdom可以用,修改一下
vy = -13;
flying = true;
int i=int(random(26));
c = line.charAt(i);
}
void update(){
x += vx;
y += vy;
vy += 0.98/3;///重力加速度
}
}







沒有留言:
張貼留言