alanhc 互動技術-week6
alanhc 互動技術-week6
October 17, 2019
打殭屍小遊戲 [ 連結 ]
生成10個殭屍位置
for (int i=0; i<10; i++) {
zombiePos[i] = int( random(3) );
print(zombiePos[i]+" ");
}
for (int i=9; i>=0; i--) {
rect(zombiePos[i]*100, 200-i*30,100,100);
}
if ( (key=='1'&&zombiePos[0]==0) || (key=='2'&&zombiePos[0]==1) ||
(key=='3'&&zombiePos[0]==2) ) {
println("correct");
for (int i=0; i<9; i++) zombiePos[i]=zombiePos[i+1];//move zombie
zombiePos[9]=int( random(3) );
} else {
fill(255,0,0);
rect(0,0,width,height);
}
for (int i=0; i<9; i++) zombiePos[i]=zombiePos[i+1];//move zombie
zombiePos[9]=int( random(3) );
小提醒:
zombiePos[i] 的範圍 [0,2]
所以殭屍的X為 zombiePos[i]*100

聲音


youtubeto
import processing.sound.*;
SoundFile player;
player = new SoundFile(this, "rain.wav");
player.play();
Minim
0. 查範例
1. 匯入及宣告
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;
Minim minim;
AudioPlayer player;
2. 實體化及讀音樂檔
minim = new Minim(this);
player = minim.loadFile("cymbal.wav");
3. 播放 * rewind() 是倒帶
player.rewind();
player.play();
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;
Minim minim;
AudioPlayer player;
AudioInput input;
void setup()
{
minim = new Minim(this);
player = minim.loadFile("cymbal.wav");
}
void mousePressed()
{
player.rewind();
player.play();
}
氣球
使用陣列使其氣球可以一直生成
void mousePressed()
{
balloonSize[nowN]=10;
balloonX[nowN] = mouseX-balloonSize[nowN]/2;
balloonY[nowN] = mouseY-balloonSize[nowN]/2*3;
nowN++;
bigger=1;
}
void mouseReleased()
{
bigger=0;
}
畫畫面
void draw()
{
background(255);
for (int i=0; i
image(imgBalloon, balloonX[i], balloonY[i], balloonSize[i], balloonSize[i]);
if (balloonY[i]>0) {
balloonY[i]--;
}
}
if (bigger==1) balloonSize[nowN-1]+=1;
println(bigger+" "+nowN);
}
氣球可以充氣
if (mousePressed) balloonSize[nowN-1]+=1;
小技巧:解決氣球充氣後偏移
void setBalloon(int size, int i)
{
balloonSize[nowN]=10;
balloonX[nowN] = mouseX-balloonSize[nowN]/2;
balloonY[nowN] = mouseY-balloonSize[nowN]/2*3;
}
void mousePressed()
{
setBalloon(10, nowN);