【发布时间】:2022-01-14 10:55:59
【问题描述】:
所以在我的课堂上,我们让对象根据 x 和 y 坐标变量移动,这很简单。但是,如果我在单独的静态类中声明 x 和 y 变量,我似乎只能让我的工作,而教师示例代码似乎没有这样做。我一直在看老师的示例代码,它为什么会这样工作是有道理的,但是当我尝试将类似的方法应用于我的代码时,它似乎不起作用,我无法找出我的'我做错了。
教师代码:
// A Bug that moves from left to right and vibrates up and down randomly in the output window
class Bug {
// The x- and y-coordinates as well as the speed a Bug is moving
int x;
int y;
int speed;
// The color of the Bug
int red;
int green;
int blue;
// Initialize the x- and y-coordinates, the speed and the RGB colors
Bug() {
x = -80;
y = (int) random(10, height - 10);
speed = (int) random(1, 5);
red = (int) random(255);
green = (int) random(255);
blue = (int) random(255);
}
// Set the fill color and ellipseMode
// Create a for loop that draw “bugs” as six consecutive attached circles
void displayBug() {
fill(red, green, blue, 175);
ellipseMode(CENTER);
for (int ctr = 0; ctr < 90; ctr += 15) {
circle(x + ctr, y, 20);
}
}
// Add the speed instance variable to the x-coordinate
// Add a random value between -2 and 2 to the y-coordinate
void moveBug() {
x += speed;
y += (int) random(-2, 2);
}
// Constrain the y-coordinate between 10 and the height of the output window minus 10
void boundaries() {
y = constrain(y, 10, height - 10);
}
// If the x-coordinate is greater than width of the output window, reset the x-coordinate to
-80
void resetBug() {
if (x > width) {
x = -80;
}
}
}
我尝试在没有静态类的情况下移动圆圈的示例:
class Test{
int x;
int y;
int speed;
Test(){
x = 1;
y =(int) random(0,400);
speed = 1;
}
void drawThing(){
circle(x,y,10);
}
void moveThing(){
x += speed;
}
}
【问题讨论】:
-
那应该怎么读?
-
我们可以看看你是如何在你的代码中使用这个类的吗?正如它所写的那样,它应该从左到右移动......如果你正确使用你的方法。
标签: java class processing