【发布时间】:2014-10-15 07:35:25
【问题描述】:
在尝试了几个不同的 HTML5 框架之后,我一直发现纯 JS 最吸引人。但是,我不确定我的结构方式。
目前,我一直将不同的对象声明为全局变量:
var titlescreen = new Titlescreen();
var fps = new FPSTracker();
var input = new Input();
var background = new Background();
var shops = new Shops();
var chunkhandler = new ChunkHandler();
var explosionhandler = new ExplosionHandler();
var ui = new UI();
var world = new World();
var player = new Player();
var joystick = new Joystick();
我的主要问题是我如何让他们相互交流。例如,Player 类只需使用其名称 (world.functionINeedToUse();) 即可访问 world 的一些函数。来自 Java 背景,这给我一种非常糟糕的感觉,因为它取决于这个具有特定名称的全局变量的声明。虽然我发现 JS 是一种更宽容的语言,但这仍然感觉不对。到目前为止,我还没有发现任何问题。
有没有更有效的方法来构建游戏?玩家/世界有什么问题?
【问题讨论】:
-
你知道构造函数和原型吗?您可以使用与 Java 中相同的结构。
-
我想你已经回答了你自己的问题 :) 你说明的依赖是不可避免的,并且在 JS 中是非常好的编码实践。
-
中介者模式可以作为对象发出其他人可能会听到的事件。关于 JavaScript 中构造函数和原型的使用,你可以阅读这个答案:stackoverflow.com/questions/16063394/…
标签: javascript html canvas data-structures