右クリックで進行方向が変わるようにします。
走行中の方向転換は良くないので、出力値が10以下のときだけ機能するようにしました。
import processing.serial.*;
Serial myPort;
void setup(){
size (400,200);
myPort=new Serial(this,"COM3",9600);
}
int fw=1;
void draw(){
background(0);
ellipse (mouseX,100,20,20);
int mx=mouseX/3;
if (mousePressed == true){
if (mouseButton==RIGHT && mx<10){
fw=fw*-1;
if (fw==1){ myPort.write(201);}
if (fw==-1){ myPort.write(203);}
delay(10);
}
}
myPort.write(mx);
delay(50);
}
|
マウスが押された場合、
if (mouseButton==RIGHT && mx<10){ 右クリックが押されていてなおかつ出力が10以下だった場合、
fw=fw*-1; 進行方向を反転させ、
if (fw==1){ myPort.write(201);} それぞれの向きに合わせて方向転換の信号を発信します。
if (fw==-1){ myPort.write(203);}
これだけでも十分コントローラーとして機能しますが、背景に絵を貼り付けてメーターを動かしたり、音を鳴らしたりと、マイコンだけでは難しそうなことが簡単にできてしまうのがProcessingの良いところです。
|