为什么object.variable在主类和其他类中工作?

时间:2018-04-12 18:57:42

标签: processing

我目前正在处理Space Invaders in Processing,我不完全理解为什么会这样,很难解释,所以这里是游戏的所有代码: SpaceInvaders.pde:

/* Jordan Green
April 11th, 2018
This is the main class for the game
Space Invaders.
This is what sets up the game.
*/
//My objects declared.
Alien aliens;
Player player;
Score score;
PImage img;
//sets up the variables and gives them values.
void setup() {
  aliens = new Alien();
  player = new Player();
  score = new Score();
  size (600, 600);
  img = loadImage("Space Background.jpg");
}

//draws out the program.
void draw() {
  background(0);
  image(img, 0, 0, height, width);
  player.show();
  player.move();
  player.playerLives();
  player.alienDie();
  aliens.show();
  aliens.move();
  score.show();
  if (player.playerLife == 0) {

  }
}

void keyPressed() {
  if (key == ' ') {
    player.shoot();
  }
}

我的问题是为什么object.variable对Processing有效?这是我不明白的事情。

约旦

1 个答案:

答案 0 :(得分:0)

为什么它不起作用?

这是Java中对象的基本功能,其中Processing是建立在它之上的。如果您有一个包含变量或函数的类,则可以使用class MyClass{ int x = 42; void sayHello(){ println("hello"); } } MyClass myInstanceOfMyClass = new MyClass(); println(myInstanceOfMyClass.x); myInstanceOfMyClass.sayHello(); 点运算符引用这些变量或函数。

以下是一个例子:

private

在Java中,您可以将变量和函数标记为if (window.pageYOffset >= sticky) { header.classList.add("sticky"); mobileheader.classList.add("sticky"); } else { header.classList.remove("sticky"); mobileheader.classList.remove("sticky"); } 以限制访问,但这在处理中不太常见。

您可以在the referencethis tutorial中了解有关课程的更多信息。