2014年10月24日 星期五

第六周

第六周 進度

























整合:
1.計時器
2.觸碰wall後gameover
3.火柴人跳躍
4.wall 隨機出現
缺點:
1.火柴人觸碰wall的數據 還抓不準
2.火柴人跳躍(要長按,並非按一下跳一次)
3.wall出現會重複
import ddf.minim.*;
import processing.serial.*;
PImage img, over;
float myImgX=100;
float myImgY=300;
float mySpeed=2;
PImage[] p=new PImage [2];
PImage wall[]=new PImage[3];
float wallX[]={0,0,0},wallY[]={0,0,0};
PFont font;
String time = "0";
int t;
int interval=0;
void setup()
{
  size(650,450);
  p[0]=loadImage("peo1.jpg");
  p[1]=loadImage("peo2.jpg");
  for(int i=0;i<3;i++)
    wall[i]=loadImage("wall"+(i+1)+".png");
  for(int i=0;i<3;i++)
  {
    wallX[i]=int(random(6))*130+600;
    wallY[0]=270;
    wallY[1]=310;
    wallY[2]=270;
  }
  font=createFont("Arial",30);
  background(255);
  fill(0);
  over=loadImage("gameover.png");
}
void draw()
{
  background(255,255,255);
  line(0,350,650,350);
  int i=int(random(1000));
  if(i>500)
  image(p[0],myImgX,myImgY,50,50);
  if(i<500)
  image(p[1],myImgX,myImgY,50,50);



  wallY[0]=270;
  wallY[1]=308;
  wallY[2]=256;
  for(int w=0;w<3;w++)
  image(wall[w],wallX[w],wallY[w]);
  for(int w=0;w<3;w++)
  {
    wallX[w]-=2;
    if (wallX[w]<0)
      {
        wallX[w]=int(random(6))*130+600;
      }  
    if(wallX[0]==100&&220<myImgY)
    {
    image(over, 0, 0, 650,450);
    stop();
    }
    if(wallX[1]==100&&240<myImgY)
    {
    image(over, 0, 0, 650,450);
    stop();
    }
    if(wallX[2]==100&&226<myImgY)
    {
    image(over, 0, 0, 650,450);
    stop();
    }
  }

  t=interval+int(millis()/1000);
  time=nf(t,3);
  if(t==0)
  {
    interval+=1;
  }
  text(time,600,50);
}

void keyPressed()
{
     jump();
}
void jump()
{
  myImgY-=mySpeed;
  mySpeed-=0.1;
  if (mySpeed<0 && myImgY>295 && myImgY<350 )
    {
      mySpeed=4;
    }
}



沒有留言:

張貼留言