JS MVC游戏动态对象?

时间:2012-12-07 02:18:10

标签: javascript jquery oop model-view-controller

我无法绕过如何在浏览器屏幕上将类/对象表示为图像或div的问题。 div将具有属性和方法。假设我正在制作一个游戏,其中敌人的宇宙飞船随机出现,四处移动。

我是否JQuery.append为每个实例创建一个div标签?如何将div连接/绑定到类? 或者是否有更高效的MVC框架?

感谢。

1 个答案:

答案 0 :(得分:0)

首先,MVC不一定非常适合游戏,但理解它可以帮助你更好地处理OOP,类似的东西也很有意义。

假设CSS适当地设置背景图像,使.spaceObject元素绝对和默认为0,0并使body成为实际的设置宽度/高度框等...

JS没有课程。它使用函数构造函数。我不建议尝试模拟类。构造函数没有任何问题,当你深入了解原型等时,它们实际上有一些很好的优势。

function BuildSpaceDiv(divID){
    var $_spaceDiv = $('<div id="'+divID+'" class="spaceObject" />').appendTo('body');

    this.move = function(x,y){
        $_spaceDiv.animate({ top:x, left:y });
    }
}

不使用new关键字就像一个函数一样。您使用new关键字来创建一个对象/实例(不是类/对象,它的图和构建的东西,对象和实例是可互换的术语)。

var deathSun = new BuildSpaceDiv('death_sun');

您可以根据需要制作多个或添加新的参数来设置起始坐标等等...我喜欢在JS构造函数中使用选项对象。请注意,它仍然像函数一样触发,因此构建实例可能会产生副作用,并且$ _spaceDiv var对每个实例都是唯一的并且是持久的。