js游戏小引擎 (4)—— 容器

demo地址:http://www.adanghome.com/js_demo/12/4/

舞台有两个儿子:黑色方块和金币mc,黑色方块有一个儿子:绿色方块,绿色方块有一个儿子:爆炸mc。按上下左键控制黑色广场移动,按wasd控制绿色方块移动,按回车键控制黑色方块旋转,按空格键控制爆炸mc旋转。移动时子孙节点会跟着一起移动。红色的方块为多边形的边界顶点,蓝色方块表示旋转基点,可在css中更改方块的样式。

=======================================

实现容器最大的难点在于更新父容器位置时,同时更新子节点的位置。这里用到了递归来遍历所有的子节点,更新位置时要考虑父容器是否已经旋转过,位置更新的那个函数着实让我费了不少脑细胞。

ps : 最痛苦的是一个很低级的bug让我找了一晚上加一上午才发现,中间那个痛苦啊。bug出在一个递归的函数中,然后又是object对像传址,又是js语言的奇怪现象,让我各种纠结 @_@,本以为是不是js语言哪儿的一个奇怪的坑让我给遇上了,最后无意中发现原来是一个低级错误 T_T。。。 还我周末!

原文地址:https://www.cnblogs.com/cly84920/p/4426510.html