2017年10月30日 星期一

Week 07 邱

#第07週
-------------------------------------------------------------------------------------------------------------------------

◎期中作業-皮卡丘打排球
 part.1:畫背景、地板、柱子、皮卡丘*2、寶貝球

程式碼:

PImage imgBall,imgP1,imgP2;
void setup(){
   size(800,600); 
   imgBall=loadImage("Ball.png");
   imgP1=loadImage("P1.png");
   imgP2=loadImage("P2.png");
   imageMode(CENTER);
}
float ballX=100,ballY=300,ballVX=0,ballVY=0;
float p1X=100,p1Y=430,p1VX=0,p1VY=0;
float p2X=700,p2Y=430,p2VX=0,p2VY=0;
void draw(){
   background(#BFEAFF); ///sky
   noStroke();fill(#D1C0A6);rect(0,500,800,100); ///floor
   fill(#A6ACAF);rect(400,320,10,240); ///cylider
   image(imgP1,p1X,p1Y,200,200);
   image(imgP2,p2X,p2Y,200,200);
   image(imgBall,ballX,ballY,80,80);
}



part.2:會彈跳的球、球碰地板遊戲結束、球碰皮卡丘反彈


程式碼:

PImage imgBall,imgP1,imgP2;
void setup(){
   size(800,600); 
   imgBall=loadImage("Ball.png");
   imgP1=loadImage("P1.png");
   imgP2=loadImage("P2.png");
   imageMode(CENTER);
}
float ballX=120,ballY=300,ballVX=0,ballVY=0;
float p1X=100,p1Y=430,p1VX=0,p1VY=0;
float p2X=700,p2Y=430,p2VX=0,p2VY=0;
Boolean bGG=false;
void draw(){
   background(#BFEAFF); ///sky
   noStroke();fill(#D1C0A6);rect(0,500,800,100); ///floor
   fill(#A6ACAF);rect(400,320,10,240); ///cylider
   image(imgP1,p1X,p1Y,200,200);
   image(imgP2,p2X,p2Y,200,200);
   image(imgBall,ballX,ballY,80,80);
   
   if(bGG)return;
   ballX += ballVX; ballY += ballVY;
   ballVY += 0.98;
   p1X+=p1VX; p1Y += p1VY; p1VY+=0.98;
   p2X+=p2VX; p2Y += p2VY; p2VY+=0.98;
   if(ballY>=500-40)bGG=true; ///if ball touch the floor : GameOver
   if(p1Y>=500-50) {p1VY=0; p1Y=500-50;}
   if(dist(p1X,p1Y,ballX,ballY)<=80)ballVY=-ballVY;
}







part.3:皮卡丘移動、跳起來

程式碼:

PImage imgBall,imgP1,imgP2;
void setup(){
   size(800,600); 
   imgBall=loadImage("Ball.png");
   imgP1=loadImage("P1.png");
   imgP2=loadImage("P2.png");
   imageMode(CENTER);
}
float ballX=120,ballY=300,ballVX=0,ballVY=0;
float p1X=100,p1Y=430,p1VX=0,p1VY=0;
float p2X=700,p2Y=430,p2VX=0,p2VY=0;
Boolean bGG=false;
void draw(){
   background(#BFEAFF); ///sky
   noStroke();fill(#D1C0A6);rect(0,500,800,100); ///floor
   fill(#A6ACAF);rect(400,320,10,240); ///cylider
   image(imgP1,p1X,p1Y,200,200);
   image(imgP2,p2X,p2Y,200,200);
   image(imgBall,ballX,ballY,80,80);
   
   if(bGG)return;
   ballX += ballVX; ballY += ballVY;
   ballVY += 0.98;
   p1X+=p1VX; p1Y += p1VY; p1VY+=0.98;
   p2X+=p2VX; p2Y += p2VY; p2VY+=0.98;
   if(ballY>=500-40)bGG=true; ///if ball touch the floor : GameOver
   if(p1Y>=500-50) {p1VY=0; p1Y=500-50;}
   if(p2Y>=500-50) {p2VY=0; p2Y=500-50;}
   if(dist(p1X,p1Y,ballX,ballY)<=80)ballVY=-ballVY;
   if(dist(p2X,p2Y,ballX,ballY)<=80)ballVY=-ballVY;
}
void update(){
  
}
void keyPressed(){
  if(key=='a') p1VX=-3;
  if(key=='s') p1VY=0;
  if(key=='d') p1VX=3;
  if(key=='w') p1VY=-20;
  
  if(keyCode==LEFT) p2VX=-3;
  if(keyCode==DOWN) p2VY=0;
  if(keyCode==RIGHT) p2VX=3;
  if(keyCode==UP) p2VY=-20;
}
void keyReleased(){
  if(key=='a') p1VX=0;
  if(key=='s') p1VY=0;
  if(key=='d') p1VX=0;
  if(key=='w') p1VY=0;
  
  if(keyCode==LEFT) p2VX=0;
  if(keyCode==DOWN) p2VY=0;
  if(keyCode==RIGHT) p2VX=0;
  if(keyCode==UP) p2VY=0;
}






沒有留言:

張貼留言