我是Java的新手,并且想使用Phaser 3进行简单的游戏,我发现Java似乎与其他OOP语言(如C ++或Java)有些不同。我在官方网站和其他一些教程页面上查看了该教程,大部分代码如下:
var config = {
...
scene: {
preload: preload,
create: create,
update: update
}
}
var game = new Phaser.Game(config)
function preload(){
this.load.img(...)
}
我的问题是"this"
中的 preload()
是什么意思?这是否意味着我们之前定义的"game"
?
以及如何在控制台中检查对象的类? typeof()
只告诉"object"
。
答案 0 :(得分:2)
this
是Phaser.Scene
而非Phaser.Game
的实例。
其他答案不正确。该代码正在运行浏览器。
要查看Scene
的文档,可以查看here
答案 1 :(得分:1)
在代码中,this
是指向游戏实例的指针,这就是为什么您可以调用Phaser方法加载资产,调整摄像机等的原因。
在配置中,您要设置在游戏的预加载步骤中调用哪个函数。当Phaser运行时,它将调用您的函数(恰好也被命名为preload
)并将this
的范围设置为游戏实例。
答案 2 :(得分:0)
this
的值取决于function
的范围。在这种情况下,假设该代码正在浏览器中运行,则this
等于window
对象。
this
应该等于该代码拥有的值。
阅读