Processing
import processing.serial.*;Serial myPort; // Create object from Serial class
int val;
PImage []player=new PImage[10];
PImage []gamer=new PImage[10];
PImage bg;
int playerNow=0,gamerNow=0;
int life1=100,life2=100;
void setup(){
size(700,393);
bg=loadImage("321.png");
for(int i=0;i<=4;i++)
player[i]=loadImage("player"+i+".png");
for(int j=0;j<=4;j++)
gamer[j]=loadImage("gamer"+j+".png");
imageMode(CENTER);
myPort = new Serial(this, "COM3", 9600);
}
float playerX=150,playerY=300, gamerX=550,gamerY=300;
int state=0;
void draw(){
while (myPort.available ()>0) {
val=myPort.read();
if (val==48) {//up
playerNow=3;
playerY-=100;
}
else if (val==49) {//down
playerNow=4;
playerY+=50;
}
else if (val==50) {//left
playerX-=1;
}
else if (val==51) {//right
playerX+=1;
}
else if (val==52) {//hand
playerNow=1;
if(dist(playerX,playerY,gamerX,gamerY)<100)
life2-=10;
}
else if (val==53){ //foot
playerNow=2;
if(dist(playerX,playerY,gamerX,gamerY)<100)
life2-=10;
}
else if (val==54) {//relaese
playerNow=0;
playerY=300;
}
else if (val==65) {//up
gamerNow=3;
gamerY-=100;
}
else if (val==66) {//down
gamerNow=4;
gamerY+=50;
}
else if (val==67) {//left
gamerX-=1;
}
else if (val==68) {//right
gamerX+=1;
}
else if (val==69) {//hand
gamerNow=1;
if(dist(playerX,playerY,gamerX,gamerY)<100)
life1-=10;
}
else if (val==70){ //foot
gamerNow=2;
if(dist(playerX,playerY,gamerX,gamerY)<100)
life1-=10;
}
else if (val==71) {//relaese
gamerNow=0;
gamerY=300;
}
}
println(val);
if(state==0){
fill(255,0,0);
background(bg);
image(player[playerNow],playerX,playerY,200,200);
image(gamer[gamerNow],gamerX,gamerY,200,200);
textSize(30);
text("Player1 : "+life1+"%",20,50);
text("Player2 : "+life2+"%",470,50);
}
if(life1<=0) state=1; if(life2<=0) state=2;
if(state==1){
background(0);
fill(255); textSize(50); text("Player2 Win!!!",175,175);
textSize(30); text("Click Mouse to Restart.",175,225);
}
if(state==2){
background(0);
fill(255); textSize(50); text("Player1 Win!!!",175,175);
textSize(30); text("Click Mouse to Restart.",175,225);
}
}
boolean playerattack=true;
boolean gamerattack=true;
void keyPressed(){
if(keyPressed && keyCode=='A'){
playerX-=20;
}
if(keyPressed && keyCode=='D'){
playerX+=20;
}
if(keyPressed && keyCode=='W'){
playerNow=3;
playerY-=100;
playerattack=false;
}
if(keyPressed && keyCode=='S'){
playerNow=4;
playerY+=80;
playerattack=false;
}
if(keyPressed && keyCode=='F'){
playerNow=1;
if(playerattack=true && dist(playerX,playerY,gamerX,gamerY)<100){
life2-=10;
}
}
if(keyPressed && keyCode=='G'){
playerNow=2;
if(playerattack=true && dist(playerX,playerY,gamerX,gamerY)<100){
life2-=10;
}
}
if(keyPressed && keyCode==LEFT){
gamerX-=20;
}
if(keyPressed && keyCode==RIGHT){
gamerX+=20;
}
if(keyPressed && keyCode==UP){
gamerNow=3;
gamerY-=100;
gamerattack=false;
}
if(keyPressed && keyCode==DOWN){
gamerNow=4;
gamerY+=80;
gamerattack=false;
}
if(keyPressed && keyCode=='.'){
gamerNow=1;
if(gamerattack=true && dist(playerX,playerY,gamerX,gamerY)<100){
life1-=10;
}
}
if(keyPressed && keyCode=='/'){
gamerNow=2;
if(gamerattack=true && dist(playerX,playerY,gamerX,gamerY)<100){
life1-=10;
}
}
}
void keyReleased(){
playerNow=0;
gamerNow=0;
playerY=300;
gamerY=300;
playerattack=true;
gamerattack=true;
}
void mouseClicked(){
if(state==1 || state==2){
state=0;
life1=100;
life2=100;
playerX=150; playerY=300; gamerX=550; gamerY=300;
}
}
DigitalInputPullup
void setup(){//start serial connection
Serial.begin(9600);
//configure pin2 as an input and enable the internal pull-up resistor
pinMode(2, INPUT_PULLUP);//p1 上
pinMode(3, INPUT_PULLUP);//p1 下
pinMode(4, INPUT_PULLUP);//p1 左
pinMode(5, INPUT_PULLUP);//p1 右
pinMode(6, INPUT_PULLUP);//p1 手
pinMode(7, INPUT_PULLUP);//p1 腳
pinMode(8, INPUT_PULLUP);//p2 上
pinMode(9, INPUT_PULLUP);//p2 下
pinMode(10, INPUT_PULLUP);//p2 左
pinMode(11, INPUT_PULLUP);//p2 右
pinMode(12, INPUT_PULLUP);//p2 手
pinMode(13, INPUT_PULLUP);//p2 腳
pinMode(14, OUTPUT);
}
int playerattack[4]={0,0,0,0};
int gamerattack[4]={0,0,0,0};
void loop(){
//read the pushbutton value into a variable
//player
int sensorVal2 = digitalRead(2);
int sensorVal3 = digitalRead(3);
int sensorVal4 = digitalRead(4);
int sensorVal5 = digitalRead(5);
int sensorVal6 = digitalRead(6);
int sensorVal7 = digitalRead(7);
//gamer
int sensorVal8 = digitalRead(8);
int sensorVal9 = digitalRead(9);
int sensorVal10 = digitalRead(10);
int sensorVal11 = digitalRead(11);
int sensorVal12 = digitalRead(12);
int sensorVal13 = digitalRead(13);
//player
if (playerattack[0]==0 && sensorVal2== LOW){Serial.print('0'); playerattack[0]=1;}
else if (playerattack[0]==1 && sensorVal2 == HIGH){Serial.print('6');playerattack[0]=0;}
if (playerattack[1]==0 && sensorVal3== LOW){Serial.print('1'); playerattack[1]=1;}
else if (playerattack[1]==1 && sensorVal3 == HIGH){Serial.print('6');playerattack[1]=0;}
if (sensorVal4 == LOW)Serial.print('2');
if (sensorVal5 == LOW)Serial.print('3');
if (playerattack[2]==0 && sensorVal6== LOW){Serial.print('4'); playerattack[2]=1;}
else if (playerattack[2]==1 && sensorVal6 == HIGH){Serial.print('6');playerattack[2]=0;}
if (playerattack[3]==0 && sensorVal7 == LOW){Serial.print('5');playerattack[3]=1;}
else if (playerattack[3]==1 && sensorVal7 == HIGH){Serial.print('6');playerattack[3]=0;}
//gamer
if (gamerattack[0]==0 && sensorVal8== LOW){Serial.print('A'); gamerattack[0]=1;}
else if (gamerattack[0]==1 && sensorVal8 == HIGH){Serial.print('G');gamerattack[0]=0;}
if (gamerattack[1]==0 && sensorVal9== LOW){Serial.print('B'); gamerattack[1]=1;}
else if (gamerattack[1]==1 && sensorVal9 == HIGH){Serial.print('G');gamerattack[1]=0;}
if (sensorVal10 == LOW)Serial.print('C');
if (sensorVal11 == LOW)Serial.print('D');
if (gamerattack[2]==0 && sensorVal12== LOW){Serial.print('E'); gamerattack[2]=1;}
else if (gamerattack[2]==1 && sensorVal12 == HIGH){Serial.print('G');gamerattack[2]=0;}
if (gamerattack[3]==0 && sensorVal13 == LOW){Serial.print('F');gamerattack[3]=1;}
else if (gamerattack[3]==1 && sensorVal13 == HIGH){Serial.print('G');gamerattack[3]=0;}
}
沒有留言:
張貼留言