-------------------------------------------------------------------------------------------------------------------------
◎期中作業-皮卡丘打排球
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; }
沒有留言:
張貼留言