2014年10月27日 星期一

01160235_謝采玲, HW07, Week07

期中作業

影片:



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;
    }
  }
}

沒有留言:

張貼留言