期中作業
影片:youtube網址:
https://www.youtube.com/watch?v=eM2tuxL7XDI&feature=youtu.be
[賽車]
●(上)=>前進
●(下)=>倒車
●(左)=>左轉
●(右)=>右轉
●吃到錢=>加100分
●吃到炸彈=>扣100分
●限時60秒
●時間到後=>顯示分數
import ddf.minim.*;
Minim minim;
AudioPlayer m;
PImage imgBG,money,bomb;
//int table[][]= new int [800][510];
float angle=0, carX=400, carY=190, gas=0;
int countDown=60*50;
int s=0;
int mX[]= new int [10];//{50,50,550,700,680,550,600,100,180,200};
int mY[]= new int [10];//{50,150,40,60,180,300,430,500,400,100};
int bX[]= new int [10];
int bY[]= new int [10];
void setup() {
minim= new Minim(this);
m= minim.loadFile("music.mp3");
m.rewind();
m.play();
size(800,510);
imgBG=loadImage("background.png");
//background(imgBG);
//$'s announce
money = loadImage("Dollarbills0.png");
bomb = loadImage("Bomb.png");
imgBG.resize(800,510);
mX[0]=50;
mX[1]=50;
mX[2]=550;
mX[3]=700;
mX[4]=700;
mX[5]=600;
mX[6]=550;
mX[7]=200;
mX[8]=500;
mX[9]=200;
mY[0]=50;
mY[1]=150;
mY[2]=100;
mY[3]=150;
mY[4]=400;
mY[5]=40;
mY[6]=300;
mY[7]=100;
mY[8]=450;
mY[9]=400;
bX[0]=330;
bX[1]=330;
bX[2]=330;
bX[3]=330;
bX[4]=600;
bX[5]=700;
bX[6]=350;
bX[7]=180;
bX[8]=180;
bX[9]=100;
bY[0]=140;
bY[1]=160;
bY[2]=180;
bY[3]=200;
bY[4]=200;
bY[5]=300;
bY[6]=420;
bY[7]=300;
bY[8]=15;
bY[9]=180;
/*
loadPixels();
for(int i=0;i<pixels.length;i++){
color now= pixels[i];
if(green(now)>red(now))
{
pixels[i]=color(255,0,0);
}
}
*/
rectMode(CENTER);//turn point in center
//updatePixels();
}
/*
//draw startline
void startline(){
stroke(0);
strokeWeight(4);
line(300,150,300,220);
}
*/
void draw() {
//countdowner
countDown--;
background(imgBG);
//startline();
//show $'s image
image(money,mX[0],mY[0],25,25);
image(money,mX[1],mY[1],25,25);
image(money,mX[2],mY[2],25,25);
image(money,mX[3],mY[3],25,25);
image(money,mX[4],mY[4],25,25);
image(money,mX[5],mY[5],25,25);
image(money,mX[6],mY[6],25,25);
image(money,mX[7],mY[7],25,25);
image(money,mX[8],mY[8],25,25);
image(money,mX[9],mY[9],25,25);
//show b's image
image(bomb,bX[0],bY[0],25,25);
image(bomb,bX[1],bY[1],25,25);
image(bomb,bX[2],bY[2],25,25);
image(bomb,bX[3],bY[3],25,25);
image(bomb,bX[4],bY[4],25,25);
image(bomb,bX[5],bY[5],25,25);
image(bomb,bX[6],bY[6],25,25);
image(bomb,bX[7],bY[7],25,25);
image(bomb,bX[8],bY[8],25,25);
image(bomb,bX[9],bY[9],25,25);
//show "Time="
textSize(32);
fill(255);
text("Time=", 20, 30);
//show time
textSize(30);
fill(255,0,0);
text(countDown/50,150,30);
//show "score="
textSize(32);
fill(255);
text("Score=", 600, 30);
//show score
textSize(30);
fill(250,0,0);
text(s,715,30);
//if time==0
if(countDown==0)
{
minim.stop();
background(255,0,0);
textSize(30);
fill(0,0,0);
text("Game Over",300,200);
text("Score is",300,250);
textSize(80);
text(s,350,350);
carX=1000;
carY=1000;
noLoop();
}
car();
poim();
poib();
}
void keyPressed() {
if(keyCode==UP)
{
gas+=2;
if(gas>5)
gas=5;
}
if(keyCode==RIGHT) angle+=0.1;
if(keyCode==LEFT) angle-=0.1;
if(keyCode==DOWN)
{
gas-=2;
if(gas<-5)
gas=-5;
}
}
//draw car
void car(){
translate(carX, carY);
rotate(angle);
fill(#0E7C26);
rect(0, 0, 25, 10);
fill(#E7F711);
rect(10, 0, 5, 10);
carX+=gas*cos(angle);
carY+=gas*sin(angle);
if(gas>0)
{
gas-=0.1;
if(gas<0) gas=0;
}
}
//eat money
void poim(){
for(int i=0;i<10;i++)
{
if((carX>mX[i]&&carX<mX[i]+25)&&(carY>mY[i]&&carY<mY[i]+25))
{
mX[i]=1000;
mY[i]=1000;
s+=100;
}
}
}
//eat bomb
void poib(){
for(int i=0;i<10;i++){
if((carX>bX[i]&&carX<bX[i]+25)&&(carY>bY[i]&&carY<bY[i]+25))
{
bX[i]=1000;
bY[i]=1000;
s-=100;
}
}
}
沒有留言:
張貼留言