2018年12月6日 星期四

Week13 呆江的筆記

連結UNO板與Processing-期末作品

UNO板邏輯:

先宣告要使用的腳位(2,3,4,5),如果按鈕按下就會寫對應的數字到Processing去

int kirbypin = 2;
int spacepin = 5;

void setup(){ 
  pinMode(kirbypin,INPUT_PULLUP); 
  pinMode(spacepin,INPUT_PULLUP);
  Serial.begin(9600);  
}

void loop(){
  if(digitalRead(spacepin)==LOW){
     Serial.write(1);
  }
  else{
     Serial.write(0);
  }
  if(digitalRead(kirbypin)==LOW){
     Serial.write(2);
  }
  else{
     Serial.write(3);
  }
  delay(200);
}


Processing:

在setup()裡

String portName = Serial.list()[0];  
myPort = new Serial(this,"COM3", 9600);

在draw()裡

1.透過按鈕控制畫面切換

if (myPort.available() > 0) {     
     val = myPort.read();   
  }
  if(val==1 && check==true){
    check=false;
    c++;
  }
  if(val==0 && check==false){
    check=true;
  }

  
2.按鈕控制卡比吸怪物(level 1)

if(val==2){
        if(score<=30 && c==3){
          MonsterDieVX[i] = (540-MonsterX[i])/8;
          MonsterDieVY[i] = (450-MonsterY[i])/8;
          if(dist(540,450,MonsterX[i],MonsterY[i])<300){
            if(MonsterX[i]>620 && i < 40){
              MonsterX[i]-=5;
              MonsterY[i]+=MonsterDieVY[i];
            }
            if(MonsterX[i]<460 && i > 40){
              MonsterX[i]+=25;
              MonsterY[i]+=MonsterDieVY[i];
            }
            else{
              MonsterX[i]+=MonsterDieVX[i];
              MonsterY[i]+=MonsterDieVY[i];
            }
          }
          if(dist(540,450,MonsterX[i],MonsterY[i])<80){
            MonsterDie[i]=true;
            score++;
            reborn(i);
          }
        }

      }


沒有留言:

張貼留言