谁能解释为什么(事实上,如果)在使用像 Kinetic 这样的东西时最好将 Canvas 游戏的主要部分抽象到不同的层?
当然感觉你应该,到目前为止我一直是:一层用于背景,一层用于玩家角色,等等。
然后我遇到了这样一种情况,我需要一层的形状位于另一层的形状后面 - 但是将整个层移动到另一层后面不是一个选项,所以我不情愿地重新编码所以整个游戏位于一层。
不过,令我惊讶的是,我仍然可以做我需要做的一切。我仍然可以为单个形状或组设置动画或处理事件。
简而言之:显式分层带来什么优势?单层方法可能会遇到哪些陷阱?
最佳答案
实际上,层通常会带来巨大的优势。但是,有时它们不是必需的。只是给出一个想法 - 比较 PhotoShop(图层)和 MS Paint(无图层)。如果这给了你想法,那就是它!
如果不是:层是一个组织概念。它使您可以分段处理数据。他们允许:
- 对整个层应用某些转换。
- 自动按层对对象进行分类,这样您就可以 一个层的所有对象并很容易地使用它们。
- 将一个层中发生的任何事情与其他层中发生的事情隔离开来。
- 禁用/启用整个图层。
- 还有很多!
如您所见,层通常允许在内容组织级别上实现诸如封装 和某种程度上的多态性 之类的抽象。单层方法带来的陷阱就是 - 太紧的耦合 - 一个来自永久混沌世界的野兽,封装和多态为之奋斗永恒。纳夫说!
关于html - Canvas (Kinetic.JS): multiple layers vs single layer approach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12166848/