一: 爆爆王簡單的示範
放水球
程式碼
void setup(){
size(850,500);
}
int userJ=9,userI=5;
float userX,userY;
int waterN=0;
int []waterJ=new int[100];
int []waterI=new int[100];
void draw(){
background(#92AD28);
noStroke();
for(int i=0;i<10;i++){
for(int j=0;j<17;j++){
if((j-i)%2==0) fill(#7E9819);
else fill(#92AD28);
rect(j*50,i*50,50,50);
}
}
fill(255,0,0);ellipse(userJ*50+25,userI*50+25,50,50);
for(int i=0;i<waterN;i++){
fill(#93E1F7);ellipse(waterJ[i]*50+25,waterI[i]*50+25,30,30);
}
}
void keyPressed(){
if(keyCode==LEFT) userJ--;
if(keyCode==RIGHT) userJ++;
if(keyCode==UP) userI--;
if(keyCode==DOWN) userI++;
if(key==' '){waterI[waterN]=userI;waterJ[waterN]=userJ;waterN++;}
}
二: 鱷魚咬手指
程式碼
void setup(){
size(500,500);
}
void draw(){
background(255);
fill(0,155,0);ellipse(250,250,300,300);
for(int i=0;i<9;i++){
fill(255);rect(110+i*30,200,30,30);
if(110+i*30 <mouseX && mouseX <110+i*30+30 &&
200 < mouseY && mouseY <200+30){
fill(0);rect(110+i*30,200,30,30);
}
}
for(int i=0;i<9;i++){
fill(255);rect(110+i*30,300,30,30);
if(110+i*30 <mouseX && mouseX <110+i*30+30 &&
300 < mouseY && mouseY <300+30){
fill(0);rect(110+i*30,300,30,30);
}
}
}
點到牙齒會消失
死掉螢幕會變紅色
三: 射擊遊戲
程式碼
void setup(){
size(600,400);
}
float userX=300,userY=200;
void draw(){
background(#44B220);
stroke(#53C9E5);noFill();
for(int i=0;i<16;i++){
for(int j=0;j<24;j++){
rect(j*25,i*25,25,25);
}
}
stroke(0);fill(#F775E8);
float angle=atan2(mouseY-userY,mouseX-userX);
triangle(userX+40*cos(angle), userY+40*sin(angle),
userX+15*cos(angle+PI/2), userY+15*sin(angle+PI/2),
userX+15*cos(angle-PI/2), userY+15*sin(angle-PI/2));
ellipse(userX,userY,30,30);
}
箭頭移動可以調整方向
程式碼
a s d w可以往左上 左下 右上 又下移動
void setup(){
size(600,400);
}
float userX=300,userY=200;
float mapX=0, mapY=0;
void draw(){
background(#44B220);
stroke(#53C9E5);noFill();
for(int i=0;i<16;i++){
for(int j=0;j<24;j++){
rect(mapX+j*25,mapY+i*25,25,25);
}
}
stroke(0);fill(#F775E8);
float angle=atan2(mouseY-userY,mouseX-userX);
triangle(userX+40*cos(angle), userY+40*sin(angle),
userX+15*cos(angle+PI/2), userY+15*sin(angle+PI/2),
userX+15*cos(angle-PI/2), userY+15*sin(angle-PI/2));
ellipse(userX,userY,30,30);
mapX-=dirX;
mapY-=dirY;
}
int dirX=0,dirY=0;
void ketPressed(){
if(key=='a' || key=='A') dirX=-1;
if(key=='s' || key=='S') dirY=1;
if(key=='d' || key=='D') dirX=1;
if(key=='w' || key=='W') dirY=-1;
}
void ketReleased(){
if(key=='a' || key=='A') dirX=0;
if(key=='s' || key=='S') dirY=0;
if(key=='d' || key=='D') dirX=0;
if(key=='w' || key=='W') dirY=0;
}
沒有留言:
張貼留言