我只是想知道这是否可行。我作为网络开发人员已经使用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有关。但是,它可能与处理有关。
答案 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时应该感觉宾至如归,同时仍然使用大多数处理好的东西。