import processing.serial.*;
Serial serial;
void setup(){
size(1024,1024);
serial = new Serial(this, "COM5", 9600);
}
int x=512,y=512;
int x1=512,y1=512;
void draw(){
background(255);
if(serial.available()>0){
String now=serial.readString();
String[] xy=splitTokens(now);
x=int(xy[0]); y=int(xy[1]);
x1=int(xy[2]); y1=int(xy[3]);
}
fill(255,0,0);
ellipse(x,y, 100,100);
fill(0,0,255);
ellipse(x1,y1, 100,100);
println(x,y,x1,y1);
}
2.
void setup() {
Serial.begin(9600);
}
void loop() {
int x =analogRead(A0);
int y =analogRead(A1);
int x1 =analogRead(A2);
int y1 =analogRead(A3);
Serial.print(x);
Serial.print(" ");
Serial.print(y);
Serial.println();
Serial.print(x1);
Serial.print(" ");
Serial.print(y1);
Serial.println();
delay(100);
}
0.
import processing.serial.*;
Serial serial;
PVector ball, bV, RUC, LUC, RV, LV;
int bc=10, t1=0, t2=0;//bc=球變色,t1:t2=分數
//int RUCx=750, RUCy=300;//RIGHT USER CONTROLLER 右邊使用者控制
//int LUCx=50, LUCy=300;//左邊使用控制
void setup() {
size(800, 600);
frameRate(60);
ball= new PVector(400, 300);
bV= new PVector(-2, -2);
RUC= new PVector(750, 300);
LUC= new PVector(50, 300);
RV=new PVector(1, 0);
LV=new PVector(0, 0);
serial = new Serial(this,"COM5",9600);//COM4可能會改
}
void draw() {
ground();//背景
ball();//球
rebound();//反彈
//這要設條件,是哪個操控桿,可能要插A0~A3,所以讀入要切四循環.A0+A1,證明自己是A0+A1的數值. A2+A3,證明自己是A2+A3的數值.
RUC();
LUC();
Range();
}
void RUC() {
if(serial.available()>0){
String now=serial.readString();
String[] Rxy=splitTokens(now);
RUC.x=int(Rxy[0]); RUC.y=int(Rxy[0]);
}
fill(0, 0, 255);
ellipse(RUC.x, RUC.y, 50, 50);
RUC.add(RV);
//print(RUC.y+"\n");
}
void Range() {
if (RUC.x<=420) RUC.x=420;
if (RUC.x>=750) RUC.x=750;
if (RUC.y>=505) RUC.y=505;
if (RUC.y<=95) RUC.y=95;
if (LUC.x<=50) LUC.x=50;
if (LUC.x>=370) LUC.x=370;
if (LUC.y>=505) LUC.y=505;
if (LUC.y<=95) LUC.y=95;
}
void keyPressed() {
if (keyCode == RIGHT) {
RV.x++;
}
if (keyCode == LEFT) {
RV.x--;
}
if (keyCode == UP) {
RV.y--;
}
if (keyCode == DOWN) {
RV.y++;
}
if (key == 'A'||key == 'a') {
LUC.x--;
}
if (key == 'D'||key == 'd') {
LUC.x++;
}
if (key == 'W'||key == 'w') {
LUC.y--;
}
if (key == 'S'||key == 's') {
LUC.y++;
}
}
void LUC() {
fill(0, 0, 255);
ellipse(LUC.x, LUC.y, 50, 50);
//print(LUC.x+"\n");
}
void ball() {
fill(10);
ellipse(ball.x, ball.y, 40, 40);
fill(bc);
ellipse(ball.x, ball.y, 15, 15);
ball.add(bV);
}
void rebound() {//反彈
if (ball.y>530-20 || ball.y<45+45) {
bV.y*=-1;
bc=255;
}
if (ball.x>800-45) {
bV.x*=-1;
bc=10;
}
if (ball.x<25+20) {
bV.x*=-1;
bc=10;
}
}
void ground() {//背景
background(#09E34C);
fill(0);
rect(0, 0, 800, 50);
rect(0, 550, 800, 50);
textSize(45);
fill(255);
text(t1, 450, 40);
text(t2, 300, 40);
noStroke();
fill(250);
rect(400-5, 0, 10, 600);
ellipse(400, 300, 150, 150);
fill(#FFBC00);
rect(0, 20+25, 800, 25);
rect(0, 530, 800, 25);
rect(0, 0, 25, 220);
rect(0, 380, 25, 220);
rect(800-25, 0, 25, 220);
rect(800-25, 380, 25, 220);
fill(#09E34C);
ellipse(400, 300, 120, 120);
}
沒有留言:
張貼留言