Java Processing,使用匿名函数

时间:2016-10-22 02:55:59

标签: javascript java processing invoke

我只是想知道这是否可行。我作为网络开发人员已经使用Javascript 4年了,所以我非常习惯在我的代码中使用匿名函数。现在测试Processing,我想看看我如何能够完成我通常用Javascript做的所有事情。

在Javascript中,我使用如下函数:

fn.call(instance,arg1, arg2);

fn.apply(instance,args);

...但是,我无法在Processing中执行类似的操作。

我试图打电话给#34;匿名功能"并在实例的命名空间中运行该函数:

public void resetHealth(){
    this.health = 10;
}

class Player{
    public int health;
    Player(){
        super();
        this.health = 10;
    }
}

Player p = new Player();

//where it gets prickly:

resetHealth.invoke(p);

预期结果:print p.health; //returns 0

我想知道我所做的事情是否与Java有关。但是,它可能与处理有关。

1 个答案:

答案 0 :(得分:0)

从长远来看,我建议您查看Daniel Shiffman's OOP Tutorial

你应该在Player类中移动resetHealth()函数, 然后使用点表示法(例如p.resetHealth()

来调用它
class Player {
  public int health;
  Player() {
    super();
    this.health = 10;
  }
  public void resetHealth() {
    this.health = 10;
  }
}

void setup() {
  Player p = new Player();

  //test, set lower health
  p.health = 3;
  println("lowed health to", p.health);

  //test, call reset health
  p.resetHealth();
  println("reset health to", p.health);
}

如果您已经习惯使用JavaScript,那么使用p5.js时应该感觉宾至如归,同时仍然使用大多数处理好的东西。