しのさんが書いてくれてたprocessingのコードを実行すると
最後の部分の
void resetBall(){
//put the ball back in center
xPos = width/2;
yPos = height/2;
}
というコードがunexpected tokenというエラーになってしまいます。
他人のコピペではなく自分でやれということでしょうか。
そしてArduinoの方も高確率で読み込み中に固まります。
そんな感じで今日は休講にもかかわらず学校へ来たのに
何もできず踏んだり蹴ったりでございました。
3 件のコメント:
がんばれ!
私もUnexpected tokenになったよwなぜ?
私のソースも乗っけとくから、コピペしてみて。
import processing.serial.*;
//myPort(任意名)というオブジェクトを用意
Serial myPort;
int linefeed = 10;
float leftPaddle, rightPaddle;
int resetButton, serveButton;
int leftPaddleX, rightPaddleX;
int paddleHeight = 50;
int paddleWidth = 10;
float leftMinimum = 200;//ここは自分のセンサーの値にする
float rightMinimum = 250;
float leftMaximum = 450;
float rightMaximum = 600;
int ballSize = 10;
int xDirection = 1;
int yDirection = 1;
int xPos, yPos;
boolean ballInMotion = false;
int leftScore = 0;
int rightScore = 0;
PFont myFont;
int fontSize = 36;
void setup(){
size(640, 480);
xPos = width/2;
yPos = height/2;
println(Serial.list());
myPort = new Serial(this, Serial.list()[0], 9600);
myPort.bufferUntil(linefeed);
leftPaddle = height/2;
rightPaddle = height/2;
resetButton = 0;
serveButton = 0;
leftPaddleX = 50;
rightPaddleX = width - 50;
noStroke();
PFont myFont = createFont(PFont.list()[2], fontSize);
textFont(myFont);
}
void draw(){
background(0);
rect(leftPaddleX, leftPaddle, paddleWidth, paddleHeight);
rect(rightPaddleX, rightPaddle, paddleWidth, paddleHeight);
if (ballInMotion == true){
animateBall();
}
if (serveButton == 1){
ballInMotion = true;
}
if (resetButton == 1){
leftScore = 0;
rightScore =0;
ballInMotion = true;
}
text(leftScore, fontSize, fontSize);
text(rightScore, width-fontSize, fontSize);
}
void serialEvent(Serial myPort){
String myString = myPort.readStringUntil(linefeed);
if (myString != null){
myString = trim(myString);
int sensors[] = int (split(myString, ','));
if(sensors.length ==4){
float leftRange = leftMaximum - leftMinimum;
float rightRange = rightMaximum - rightMinimum;
leftPaddle = height * (sensors[0] - leftMinimum)/leftRange;
rightPaddle = height * (sensors[1] - rightMinimum)/rightRange;
resetButton = sensors[2];
serveButton = sensors[3];
print("left:"+leftPaddle + "\tright:"+rightPaddle);
println("\treset:"+resetButton+"\tserve:"+serveButton);
}
}
}
void animateBall(){
if (xDirection < 0){
if ((xPos <= leftPaddleX)){
if((leftPaddle - (paddleHeight/2) <= yPos)&&
(yPos <= leftPaddle + (paddleHeight/2))){
xDirection =-xDirection;
}
}
}
else {
if ((xPos >= (rightPaddleX + ballSize/2))){
if((rightPaddle - (paddleHeight/2) <=yPos)&&
(yPos <= rightPaddle + (paddleHeight/2))){
xDirection =-xDirection;
}
}
}
if (xPos <0){
rightScore++;
resetBall();
}
if (xPos > width){
leftScore++;
resetBall();
}
if ((yPos - ballSize/2 <= 0) || (yPos +ballSize/2 >= height)){
yDirection = -yDirection;
}
xPos = xPos + xDirection;
yPos = yPos + yDirection;
rect(xPos,yPos, ballSize, ballSize);
}
void resetBall(){
xPos = width/2;
yPos = height/2;
}
なぜだろね。微妙に全角スペースとかどっか入っちゃったのかしらね。すまぬぅ。
全角スペースでダメって結構面倒だなぁ。
ミスが起こりやすい点として注意しとくと良いね。
コメントを投稿