import processing.serial.*;
Serial myPort;
void draw() {
background(imgBG);
ser();
image(Elf, EX, EY);
touchGhost();
if(dir!=0){
image(ghostr, redx, redy);
ghost();
}
if(dirp!=0){
image(ghostp, pinkx, pinky);
ghostp();
}
if(dirg!=0){
image(ghostg, greenx, greeny);
ghostg();
}
}
void ser(){
if(myPort.available()>0){
int value=myPort.read();
int leftEX=EX, leftEY=EY, rightEX=EX+15, rightEY=EY+15;
if (table[leftEX][leftEY]<0)
{
if(value==82)
EY+=5;
if(value==76)
EX-=5;
}
if (table[rightEX][rightEY]<0)
{
if(value==85)
EX+=5;
if(value==68)
EY-=5;
}
println(value);
}
}
void mouseMoved() {
println(mouseX, mouseY);
}
void keyPressed()
{
int leftEX=EX, leftEY=EY, rightEX=EX+15, rightEY=EY+15;
if (table[leftEX][leftEY]<0)
{
if (keyCode == UP)
EY-=5;
if (keyCode == LEFT)
EX-=5;
}
if (table[rightEX][rightEY]<0)
{
if (keyCode == RIGHT)
EX+=5;
if (keyCode == DOWN)
EY+=5;
}
/* if (table[rightEX][rightEY]<0) println("safe");
else println("ac");*/
}
int dir= 1;
void ghost() {
float r = random(1, 5);
//if(table[redx][redy]==0)
//println("dir:"+dir+"*");
switch(dir) {
case 1:
{
if (table[redx+25][redy]<0)
{
redx+=2;
break;
}
else {
r = random(1, 5);
dir = int(r);
break;
}
}
case 2:
{
if (table[redx][redy+25]<0) {
redy+=2;
break;
}
else {
r = random(1, 5);
dir = int(r);
break;
}
}
case 3:
{
if (table[redx-5][redy]<0) {
redx-=2;
break;
}
else {
r = random(1, 5);
dir = int(r);
break;
}
}
case 4:
{
if (table[redx][redy-5]<0) {
redy-=2;
break;
}
else {
r = random(1, 5);
dir = int(r);
break;
}
}
}
println("rgb:"+table[redx][redy]);
}
int dirp= 2;
void ghostp() {
float r = random(1, 5);
//if(table[redx][redy]==0)
//println("dir:"+dir+"*");
switch(dirp) {
case 1:
{
if (table[pinkx+25][pinky]<0)
{
pinkx+=2;
break;
}
else {
r = random(1, 5);
dirp = int(r);
break;
}
}
case 2:
{
if (table[pinkx][pinky+25]<0) {
pinky+=2;
break;
}
else {
r = random(1, 5);
dirp = int(r);
break;
}
}
case 3:
{
if (table[pinkx-5][pinky]<0) {
pinkx-=2;
break;
}
else {
r = random(1, 5);
dirp = int(r);
break;
}
}
case 4:
{
if (table[pinkx][pinky-5]<0) {
pinky-=2;
break;
}
else {
r = random(1, 5);
dirp = int(r);
break;
}
}
}
}
int dirg= 3;
void ghostg() {
float r = random(1, 5);
//if(table[redx][redy]==0)
//println("dir:"+dir+"*");
switch(dirg) {
case 1:
{
if (table[greenx+25][greeny]<0)
{
greenx+=2;
break;
}
else {
r = random(1, 5);
dirg = int(r);
break;
}
}
case 2:
{
if (table[greenx][greeny+25]<0) {
greeny+=2;
break;
}
else {
r = random(1, 5);
dirg = int(r);
break;
}
}
case 3:
{
if (table[greenx-5][greeny]<0) {
greenx-=2;
break;
}
else {
r = random(1, 5);
dirg = int(r);
break;
}
}
case 4:
{
if (table[greenx][greeny-5]<0) {
greeny-=2;
break;
}
else {
r = random(1, 5);
dirg = int(r);
break;
}
}
}
}
void touchGhost()
{
println("EX"+EX+",EY"+EY+",PX"+pinkx+",PY"+pinky);
if(abs(pinkx-EX)<=10 && abs(pinky-EY)<=10)
{
dirp=0;
}
if(abs(redx-EX)<=10 && abs(redy-EY)<=10)
{
dir=0;
}
if(abs(greenx-EX)<=10 && abs(greeny-EY)<=10)
{
dirg=0;
}
if(dir==0 && dirp==0 && dirg==0)
println("YOU WIN");
}
沒有留言:
張貼留言