2015年1月17日 星期六

期末作業: 跑跑薑餅人


遊戲:簡單版跑跑薑餅人
玩法:
按下按鈕後,薑餅人即可跳起
吃到一枚硬幣加五分
碰到大便及失敗


processing的程式碼
PImage imgBG, img, img1, img2;
PImage img10;
PImage img11;
PImage img12;
PImage img13;
PImage img14;
PImage img15;
PImage img16;
PImage img17;
PImage img18;
PImage img19;
float centerx=9570;
float myImgX=80;
float myImgY=320;
float mySpeed=25;
int [][] cx=new int[50][50];
int [][] cy=new int[50][50];
int [][] cd=new int[50][50];
int [][] bx=new int[50][50];
int [][] by=new int[50][50];
int [][] bd=new int[50][50];
int csx=150;
int csy=320;
int ry;
int bs;
int i, j;
int jump=0;
int score;
int bt=1;
int n1, n2, n3, n4, n5, nu1, nu2, nu3, nu4, nu5;

import processing.serial.*;
import ddf.minim.*;
Serial myPort;
AudioPlayer player;
AudioPlayer player1;
Minim minim;
void setup() {
 
  myPort=new Serial(this,"COM5",9600);

  size(720, 576);
  img = loadImage("ginger.png");
  img1 = loadImage("coin.png");
  img2 = loadImage("poo.png");
  imgBG = loadImage("back.jpg");
  img10 = loadImage("0.png");
  img11 = loadImage("1.png");
  img12 = loadImage("2.png");
  img13 = loadImage("3.png");
  img14 = loadImage("4.png");
  img15 = loadImage("5.png");
  img16 = loadImage("6.png");
  img17 = loadImage("7.png");
  img18 = loadImage("8.png");
  img19 = loadImage("9.png");
  nu1=10;
  nu2=100;
  nu3=1000;
  nu4=10000;
  nu5=100000;
  n1=0;
  n2=0;
  n3=0;
  n4=0;
  n5=0;

  for (j=0; j<50; j++)
    for (i=0; i<50; i++) {
      bd[j][i]=0;
    bs=int(random(1, 100));
      if (bs>=0&&bs<5)bd[j][i]=1;

      cd[j][i]=1;
      cx[j][i]=csx;
      bx[j][i]=csx;
      by[j][i]=csy;
        ry=int(random(1, 3));
      if (ry==1)cy[j][i]=csy;
      else if (ry==2)cy[j][i]=220;

      csx+=75;
    }

  imageMode(CENTER);
  minim = new Minim(this);
  player = minim.loadFile("coin.mp3", 2048);
  player1 = minim.loadFile("pee.wav",2048);
}
void draw() {
  //-------------------
 
  if(myPort.available()>0)
  {
    int a=myPort.read();
    if(a=='A' && jump==0) jump=1;
  }
 
  //---------------------
 
 
  if (bt==1) {
    image(imgBG, centerx, 288);
    image(img, myImgX, myImgY, 100, 100);
    print(myImgX);
    for (j=0; j<50; j++)
      for (i=0; i<50; i++) {
        if (myImgX>=cx[j][i]-20&&myImgX<=cx[j][i]+20)
          if (myImgY>=cy[j][i]-20&&myImgY<=cy[j][i]+20)
          {
            cd[j][i]=0;
            score += 5;
            player = minim.loadFile("coin.mp3");
           
            player.play();
          }
      }
     
       for (j=0; j<50; j++)
      for (i=0; i<50; i++) {
        if(bd[j][i]==1)
        if (myImgX>=bx[j][i]-20&&myImgX<=bx[j][i]+20)
          if (myImgY>=by[j][i]-20&&myImgY<=by[j][i]+20)
          {

            bt=2;
            player1 = minim.loadFile("pee.wav");
        player1.play();
          }
      }
     

    for (j=0; j<50; j++)
      for (i=0; i<50; i++)
      {
        if (cd[j][i]==1)image(img1, cx[j][i], cy[j][i], 50, 50);
          if (bd[j][i]==1)image(img2, bx[j][i], by[j][i], 50, 50);
      }


    centerx-=10;
    for (j=0; j<50; j++)
      for (i=0; i<50; i++)
      {
        cx[j][i]-=10;
        bx[j][i]-=10;
       
      }

    if (jump>0)
    {
      if (jump<=20)
        myImgY-=10;
      jump++;
      if (jump>20)
        myImgY+=10;
      if (jump==40)jump=0;
    }  
    if (centerx<=-8850)bt=2;
  }

  if (bt==2)
  {
    n1=score%nu1;
    n2=score%nu2/10;
    n3=score%nu3/100;
    n4=score%nu4/1000;
    n5=score%nu5/10000;
    //println(time);
    bt=3;
  }

  if (bt==3)
  {
    if (n1==0)image(img10, 630, 300, 50, 50);
    if (n1==1)image(img11, 630, 300, 50, 50);
    if (n1==2)image(img12, 630, 300, 50, 50);
    if (n1==3)image(img13, 630, 300, 50, 50);
    if (n1==4)image(img14, 630, 300, 50, 50);
    if (n1==5)image(img15, 630, 300, 50, 50);
    if (n1==6)image(img16, 630, 300, 50, 50);
    if (n1==7)image(img17, 630, 300, 50, 50);
    if (n1==8)image(img18, 630, 300, 50, 50);
    if (n1==9)image(img19, 630, 300, 50, 50);


    if (n2==0)image(img10, 580, 300, 50, 50);
    if (n2==1)image(img11, 580, 300, 50, 50);
    if (n2==2)image(img12, 580, 300, 50, 50);
    if (n2==3)image(img13, 580, 300, 50, 50);
    if (n2==4)image(img14, 580, 300, 50, 50);
    if (n2==5)image(img15, 580, 300, 50, 50);
    if (n2==6)image(img16, 580, 300, 50, 50);
    if (n2==7)image(img17, 580, 300, 50, 50);
    if (n2==8)image(img18, 580, 300, 50, 50);
    if (n2==9)image(img19, 580, 300, 50, 50);



    if (n3==0)image(img10, 530, 300, 50, 50);
    if (n3==1)image(img11, 530, 300, 50, 50);
    if (n3==2)image(img12, 530, 300, 50, 50);
    if (n3==3)image(img13, 530, 300, 50, 50);
    if (n3==4)image(img14, 530, 300, 50, 50);
    if (n3==5)image(img15, 530, 300, 50, 50);
    if (n3==6)image(img16, 530, 300, 50, 50);
    if (n3==7)image(img17, 530, 300, 50, 50);
    if (n3==8)image(img18, 530, 300, 50, 50);
    if (n3==9)image(img19, 530, 300, 50, 50);


    if (n4==0)image(img10, 480, 300, 50, 50);
    if (n4==1)image(img11, 480, 300, 50, 50);
    if (n4==2)image(img12, 480, 300, 50, 50);
    if (n4==3)image(img13, 480, 300, 50, 50);
    if (n4==4)image(img14, 480, 300, 50, 50);
    if (n4==5)image(img15, 480, 300, 50, 50);
    if (n4==6)image(img16, 480, 300, 50, 50);
    if (n4==7)image(img17, 480, 300, 50, 50);
    if (n4==8)image(img18, 480, 300, 50, 50);
    if (n4==9)image(img19, 480, 300, 50, 50);



    if (n5==0)image(img10, 430, 300, 50, 50);
    if (n5==1)image(img11, 430, 300, 50, 50);
    if (n5==2)image(img12, 430, 300, 50, 50);
    if (n5==3)image(img13, 430, 300, 50, 50);
    if (n5==4)image(img14, 430, 300, 50, 50);
    if (n5==5)image(img15, 430, 300, 50, 50);
    if (n5==6)image(img16, 430, 300, 50, 50);
    if (n5==7)image(img17, 430, 300, 50, 50);
    if (n5==8)image(img18, 430, 300, 50, 50);
    if (n5==9)image(img19, 430, 300, 50, 50);
  }
}


--------------------------------------------------------------------------------------------------------------------------
arduino
void setup(){
  Serial.begin(9600);
  pinMode(3, INPUT_PULLUP);
}
void loop()
{
 
  if(digitalRead(A3) == LOW )
  {
    digitalWrite(13,LOW);
    Serial.write('A');
 
  }

delay(100);
}

沒有留言:

張貼留言