連結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);
}
}
}
 
沒有留言:
張貼留言