Day25. 发动魔法卡,融合 - Composite (下)

今天是 Composite 单元的最後一篇,既前两篇看了基本属性、建构方法後,最後一篇要来看 Composite 模组到底有哪些方法,让我们能够用来操控或获取 Composite 相关资讯。

方法依据 API 文件总共有 14个。

我们用用途来分可以分成以下几个用途:

  • Composite 组成内容创建与修改
  • Composite 本身资讯获取
  • Composite 整体群组操作
  • 建议留给函式库操作就好

Composite 组成内容创建与修改

  • Create
  • Add
  • Clear
  • Move
  • Remove

这类的组成内容是指 Composite 里面建构用的物体。

Create 我们第一天有讲过,Add 也有提过,一个是创建,一个就是单纯在组合体里增加新的物体(参考Day23)

剩下的 Clear / Move / Remove 其实也很单纯

Clear 是清掉整个 Composite 里面的内容,Move 跟 Remove 就是对 Composite 里面单一的内容作操作,向是我们弹珠台第四天(Day15)把钉子移掉,就有用过 Remove 来把钉子从 engine.World 里面移除。

Composite 本身资讯获取

  • AllBodies
  • AllComposites
  • AllConstraints
  • Bounds

这几个比较像本身属性的揭露,提供一个不要直接读取本身属性的方式,包了一层函式来控制逻辑。

Bounds 就是拿取现在这个组合体的边界。
这边的AllBodies,就算你的层级是

compositeA -> bodyA
           -> bodyA2
           -> constraintA
           -> compositeB -> bodyB
                         -> bodyB2

呼叫 Composite.allBodies(compositeA) 则会回传 bodyA, bodyA2, bodyB, bodyB2,是回传所有的物体,不管是不是被归在其他子 Composite 底下。

Composite 整体群组操作

  • Rotate
  • Scale
  • Translate

Rotate 是旋转,Scale 是变大变小, Translate 是位移,我们可以对整个组合体操作,比如说之前的 twitter Icon,他就会是透过这些方法来操控,方法本身参数都跟 Body 模组中的大同小异,这边就不特别多提。

建议留给函式库操作就好

  • Rebase
  • SetModified

Rebase 是用来重新分配 Composite 里面的 Id, SetModified 是用来操控 isModified 这个 flag 的,这两个属性前面都有提过,一般情况下交给函式库操作就好,除非你已经要去覆写某些机制。

今天比较没有 Demo,但大概带大家走过了一次所有方法,Demo的部分如果之後想到比较好的展示手段会再补进这篇。其实这些方法本身也没有太多难以理解的地方,希望今天的内容能帮助大家快速的了解相关的所有函式,有需要使用的话再细部去了解就可以了,那我们的 Composite 模组到这边,也就告一个段落了。


<<:  #26 初探 Electron

>>:  [Day 25] SQL DISTINCT

IOS 菜菜菜鸟30天挑战 Day-30 结语+转图小技巧

我实在没想到我能坚持连续30天不间断发文,对我来说真的是一大挑战,因为我不是一个经得起坚持的人,这次...

[ JS个人笔记 ] 资料型别—DAY1

资料型别 为何需判断型别,其因为电脑在执行时,需先判断资料是何种型别,才可采取运算方式。例如数字12...

Day19. 手牵手,我的朋友,物体永远在你左右 - Constraint

今天是弹珠台完成後的第一篇,我们依然会带大家看一些还没提到的模组,最後再来做一个小实作,实作题目先卖...

[Day2] 何谓 LHS、RHS 错误?

今天来了解 JavaScrip 的 LHS 错误、RHS 错误,两者皆与取值、赋值有关,首先先来了解...

[Android Studio 30天自我挑战] Switch 元件介绍

这篇的Switch button与前几篇的ToggleButton很类似, 但ToggleButto...