我是编程和处理的新手。在Processing中,我很难从另一个类的一个类中访问变量。在处理中使用另一个类中的一个类的变量
我有两个类“球”类和碰撞类。
class ball {
float xBall;
float yBall;
int balldiameter = 20;
float oldxball, oldyball;
boolean linehit;
color ballcolor = color(100, 200, 100);
float r;
float x;
float speedx, speedy;
float speed = 6;
ball() {
xBall = 200;
yBall = 300;
r = 2.8;
boolean linehit;
} // ball()
void ballUpdate() {
float px = xBall + cos(r)*(speed);
float py = yBall + sin(r)*(speed);
speedx = px - xBall;
speedy = py - yBall;
oldxball = xBall;
oldyball = yBall;
xBall += speedx;
yBall += speedy;
// display ball
stroke(0);
fill(ballcolor);
ellipse (xBall, yBall, balldiameter, balldiameter);
} //void ballUpdate()
} // class ball
碰撞类:
class collision {
ball bl;
collision() {
} // collision()
void collisionUpdate() {
bl = new ball();
println(bl.r);
println(bl.xBall);
println(bl.yBall);
println(bl.x);
在这里,我尝试访问xBall,并从球类碰撞类中其他变量的代码运行,但如果语句是不正确的。变量保持不变。
if (bl.xBall < 0 || bl.xBall > width) { // side wall
bl.x = PI - bl.r;
bl.r = bl.x;
println("if 1");
}
if (bl.yBall < 0 || bl.yBall > height) { // top & bottom
bl.x = TWO_PI - bl.r;
bl.r = bl.x;
println("if 2");
}
} // void collisionUpdate()
} // class collision
我试着将球类中的xBall,YBall,r和x变量连接到碰撞类,使球在墙上反弹。 主要是这样的:
ball bl;
collision cl;
void setup() {
size(600, 600);
bl = new ball();
cl = new collision();
}
void draw() {
background(255);
bl.ballUpdate();
cl.collisionUpdate();
遗憾的noob问题,但我是个初学者
您可以发布的[MCVE(HTTP:/ /stackoverflow.com/help/mcve)而不是这些断开连接的片段? – 2014-08-27 16:57:04