【利用Processing】
*做出簡單小遊戲*
小遊戲深入介紹
1.利用(Week03-1.3)的概念做延伸
程式碼:
PImage imgHook,imgLove;
float HookX=400,HookY=300;
float HookVX=0,HookVY=0;
float HookAX=0,HookAY=0;
float [][]LoveX=new float[5][4];
float [][]LoveY=new float[5][4];
boolean [][]LoveAlive=new boolean[5][4];
void setup(){
size(800,600);
imgHook=loadImage("Hook.png");
imgLove=loadImage("Love.png");
imageMode(CENTER);
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
LoveX[i][j]=700-i*100;LoveY[i][j]=100+j*100;LoveAlive[i][j]=true;
}
}
}
void draw(){
background(255);
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
if(dist(LoveX[i][j],LoveY[i][j],HookX,HookY)<100){
LoveAlive[i][j]=false;
}
if(LoveAlive[i][j])image(imgLove,LoveX[i][j],LoveY[i][j],100,100);
}
}
/*if(LoveAlive)image(imgLove,LoveX,LoveY,100,100); */
image(imgHook,HookX,HookY,100,100);
/* if(dist(LoveX,LoveY,HookX,HookY)<100){
LoveAlive=false;
} */
line(HookX,HookY,400,300);
HookX+=HookVX;
HookY+=HookVY;
if(HookX<50){HookX=50;HookVX=-HookVX;}
if(HookX>width-50){HookX=width-50;HookVX=-HookVX;}
if(HookY<50){HookY=50;HookVY=-HookVY;}
if(HookY>height-50){HookY=height-50;HookVY=-HookVY;}
HookVX+=HookAX;
HookVY+=HookAY;
HookVX*=0.997;
HookVY*=0.997;
}
void mouseDragged(){
HookX=mouseX;
HookY=mouseY;
HookVX=HookVY=HookAX=HookAY=0;
}
void mouseReleased(){
HookVX=(400-mouseX)/10.0;
HookVY=(300-mouseY)/10.0;
HookAY=0.98;
}
2.簡單概念複習
2.1畫圓
程式碼:
void setup(){
size(800,600); //視窗初始化大小
}
void draw(){
for(int i=0;i<5;i++){ //橫為5
for(int j=0;j<4;j++){ //行為4
ellipse(700-i*100,100+j*100,100,100); //fill(顏色編碼)畫圓(座標,座標,大小,大小)<沒有將座標寫死>
}
}
}
2.2變顏色
程式碼:
void setup(){
size(800,600); //視窗初始化大小
}
void draw(){
for(int i=0;i<5;i++){ //橫為5
for(int j=0;j<4;j++){ //行為4
fill(#3EC1CE);ellipse(700-i*100,100+j*100,100,100); //fill(顏色編碼)畫圓(座標,座標,大小,大小)
}
}
fill(#A45EE3);ellipse(400,300,100,100); //一個圓固定位置<將座標寫死>
}
2.3用矩陣替代
程式碼:
float [][]pigx=new float[5][4]; //用矩陣初始化
float [][]pigy=new float[5][4]; //用矩陣初始化
boolean [][]pigAlive=new boolean[5][4]; //藍色圈圈部分都是豬(存活)
void setup(){
size(800,600);
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
pigx[i][j]=700-i*100;pigy[i][j]=100+j*100;pigAlive[i][j]=true;
}
}
}
void draw(){
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
//fill(#3EC1CE);ellipse(700-i*100,100+j*100,100,100);
fill(#3EC1CE);ellipse(pigx[i][j],pigy[i][j],100,100);
}
}
fill(#A45EE3);ellipse(400,300,100,100);
}
2.4用矩陣替代
程式碼:
float birdX=100,birdY=400;
float [][]pigx=new float[5][4];
float [][]pigy=new float[5][4];
boolean [][]pigAlive=new boolean[5][4];
void setup(){
size(800,600);
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
pigx[i][j]=700-i*100;pigy[i][j]=100+j*100;pigAlive[i][j]=true;
}
}
}
void draw(){
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
//fill(#3EC1CE);ellipse(700-i*100,100+j*100,100,100);
fill(#3EC1CE);ellipse(pigx[i][j],pigy[i][j],100,100);
}
}
fill(#A45EE3);ellipse(birdX,birdY,100,100);
}
3.匯入音樂
程式碼:
import ddf.minim.*;
Minim minim;
AudioPlayer player;
void setup(){
size(800,600);
minim=new Minim(this);
player=minim.loadFile("chicken.mp3",2048);
player.play();
}
void draw(){
}
沒有留言:
張貼留言