【发布时间】:2014-05-30 22:51:09
【问题描述】:
我正在尝试使用 RequireJS 模块在 Javascript 中实现经典继承,以使用 HTML5 构建游戏引擎。我试过使用 John Resig 的Class.js,但它似乎不像我预期的那样工作。这是我的项目Github rep,如果您下载文件并在客户端文件夹中打开 index.html,该应用程序可以在没有服务器的情况下运行。
在应用程序中,我创建了一个名为 Entity 的基类。实体是游戏中所有对象的基类,并由许多其他类扩展。 sprite 类扩展了实体类并包含动画方法。播放器类扩展了精灵类。
当我创建一个名为 Image 的类来扩展 Entity 类时,问题出现了。 Player 和 Image 类都扩展了实体(玩家去 entity->sprite->player),但是当 Player 设置速度时,它也会影响图像的实例?我添加了一个 console.log,它在 Image 的 think 函数(游戏循环刻度)中打印对象速度。如果您按箭头键让玩家四处走动,您将看到玩家的速度来自图像思考打印。
它们不应该是具有单独属性的独立对象吗?这就是我想要的。关于我做错了什么或完成正确继承的链接/模式的任何想法?
【问题讨论】:
标签: javascript class inheritance requirejs