如何在动作脚本3中显示动画片段的舞台边界

时间:2012-10-15 13:53:32

标签: actionscript-3 flash

我目前正在使用闪光灯开发游戏:

  1. 英雄在空中投掷一根棍子,然后长途跋涉,击中各种物体。
  2. 当棍子飞行时,英雄的狗追赶它,击中各种物体等......
  3. 我的问题:我希望将屏幕水平分割,然后按照屏幕上方的按键,然后按照屏幕下方的狗进行操作。

    现在我已经实施了棒子运动。从技术上讲,只有当它的坐标位于舞台中心时,摇杆才会移动到舞台的中心,所有其他物体都会根据摇杆的x和y速度移动。

    现在我的问题是:如何管理狗的显示?我希望我能找到一些创建一种视口的类,允许我显示超出舞台范围的对象,但到目前为止我找不到我需要的东西。

    我能想到的唯一解决方案是在每个动画片段添加到舞台时创建每个动画片段的2个实例,并将副本作为另一个movieClip的子片添加,转换为x和y坐标)但是我必须做两件事(例如:如果棍子破坏某些东西,它的副本也必须被销毁)。

    如果不折磨我的玩家的处理器(并且危及我自己的理智),我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

问题的一个可能解决方案是 blitting ,它从DisplayObject中绘制像素,类似于您看到的here

另一个(从长远来看可能很好地为你服务而且不需要与第一个相互排斥),是使整个事物数据驱动。您只需构建两个不同的视图,这些视图可以获取相同的数据或不同的数据子集,然后根据自己的规则表示数据。

当一个对象从数据中消失时,它的表示会同时从两个视图中消失。从技术上讲,你可能仍然在做两次工作,但如果你对你编写类的方式很聪明,这并不一定意味着额外的代码。

最后,您可能需要考虑使用scrollRect

答案 1 :(得分:0)

最终我找到了这个问题的答案,所以我想我会分享我的所作所为。

解决方案是使用transform.matrix属性

实现虚拟相机

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html

这是一个如何实现这一目标的教程。

http://www.youtube.com/watch?v=yuhJkEWAbq8