【问题标题】:JS MVC game dynamic objects?JS MVC 游戏动态对象?
【发布时间】:2012-11-25 05:04:51
【问题描述】:

我不知道如何在浏览器屏幕上将类/对象表示为图像或 div。 div 将具有属性和方法。假设我正在制作一款敌方飞船随机出现并四处移动的游戏。

那么我是否在 JQuery.append 每次创建实例时都添加一个 div 标签?如何将 div 连接/绑定到类? 还是有更高效的 MVC 框架?

谢谢。

【问题讨论】:

    标签: javascript jquery oop model-view-controller


    【解决方案1】:

    首先,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 变量对于每个实例都是唯一的并且是持久的。

    【讨论】:

    • 谢谢!我有一种感觉,那就是它的样子。
    • 下次您认为您已经了解它的工作原理时,只需打开 Chrome 开发工具并在控制台中尝试一下。这就是学习像 JS 这样的语言的美妙之处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多