前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
processingのfisicaという物理シミュレーションのライブラリでパチンコのようなものを作る予定です。
fisicaについては特に初心者なのでできるだけわかりやすくお願いしたいです。
発生している問題・エラーメッセージ
エラーについてというよりは、ballとboxFloorの2つが接触したときに反応するようにしたいです。
エラーメッセージ
ball cannot be resolved to a variable
該当のソースコード
ソースコード
import fisica.;
FWorld world;
FBox cageRight, cageLeft, cageFloor, cageCeiling, Obs, ItemObs, boxRight, boxLeft, boxFloor;
FPoly triangle;
int flagBall=0;
int rx=0;
int flagC=0;
void setup()
{
size(1400, 600);
smooth();
Fisica.init(this);
world=new FWorld();
FBox cageRight=new FBox(30, 400);
FBox cageLeft=new FBox(30, 400);
FBox cageFloor=new FBox(440, 30);
FBox cageCeling=new FBox(460, 30);
FBox ItemObs=new FBox(10, 10);
FBox boxRight=new FBox(10, 40);
FBox boxLeft=new FBox(10, 40);
FBox boxFloor=new FBox(100, 10);
cageRight.setPosition(900, 300);
cageRight.setFill(0);
cageRight.setStatic(true);
world.add(cageRight);
cageLeft.setPosition(470, 300);
cageLeft.setStatic(true);
cageLeft.setFill(0);
world.add(cageLeft);
cageFloor.setPosition(680, 485);
cageFloor.setStatic(true);
cageFloor.setFill(0);
cageFloor.setRestitution(-20);
world.add(cageFloor);
cageCeling.setPosition(685, 85);
cageCeling.setStatic(true);
cageCeling.setFill(0);
world.add(cageCeling);
boxRight.setPosition(630, 450);
boxRight.setFill(0);
boxRight.setStatic(true);
world.add(boxRight);
boxLeft.setPosition(525, 450);
boxLeft.setFill(0);
boxLeft.setStatic(true);
world.add(boxLeft);
boxFloor.setPosition(575, 470);
boxFloor.setStatic(true);
boxFloor.setName("bf");
boxFloor.setFill(0);
world.add(boxFloor);
world.add(ItemObs);
}
void draw()
{
Fisica();
triangle=new FPoly();
triangle.vertex(30, 30);
triangle.vertex(-30, 30);
triangle.vertex(0, -30);
triangle.setStatic(true);
triangle.setFill(255, 0, 0);
triangle.setNoStroke();
triangle.setPosition(820, 150);
triangle.setRotation(radians(3rx));
world.add(triangle);
world.draw();
world.step();
}
void Fisica() {
rx++;
fill(255);
noStroke();
rect(240, 40, 920, 518);
fill(255, 0, 0);
rect(1000, 285, 50, 30);
FCircle ball=new FCircle(20);
ball.setVelocity(-200, -1100);
ball.setFill(0);
ball.setRestitution(1);
ball.setStatic(false);
ball.setPosition(850, 450);
ball.setName("ba");
if (flagBall==1)
{
world.add(ball);
}
flagBall=0;
world.remove(triangle);
}
void mousePressed()
{
flagBall=1;
}
void contactStarted(FContact c)
{
if (c.contains(ball, boxFloor))//ballがエラーです
{
ball.setFill(255, 0, 0);//ballがエラーです
}
}
試したこと
ここに問題に対して試したことを記載してください。
色々調べたのですが3つ以上の中から特定の2つが接触したときに反応するようにする方法がわからずあまり試すことができなかったです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。