动作脚本 3 - 如何在不移动任何 AS3 的情况下实现相机



我正在使用physInjector,因此无法移动包含我的对象的剪辑:物理引擎因此无法正常工作。

我考虑实现一些东西,例如在自身上绘制舞台的选定部分的位图。怎么能做到呢?我已经阅读了尝试使用BitmapData捕获舞台区域的文章,但是作者从舞台复制其数据,而我需要舞台之外的区域。

此外,不是有更少的资源消耗解决方案吗?

首先,你可能想使用全局精灵来放置你的剪辑,比如:

var a:Sprite = new Sprite();
a.addChild(myClip1);
a.addChild(myClip2);
...

然后,您应该能够移动a .

如果您不这样做,并且您的物理引擎依赖于 Stage 来工作,您可能应该尝试修复它,或者更好地了解它的工作原理,以便您可以移动影片剪辑。

重绘位图数据 每一帧都需要大量的 CPU 资源,并且您将无法与剪辑进行交互。这真的不是最好的办法。

x=-(player.mc.x-stage.stageWidth/2);
y=-(player.mc.y-stage.stageHeight/2);
if(canvas)
    removeChild(canvas);
var bd:BitmapData=new BitmapData(stage.stageWidth,stage.stageHeight,false,0xFFFFFF);
bd.draw(stage);
trace(bd);
canvas=new Bitmap(bd);
addChild(canvas);
x=0;
y=0;

在PC上,它工作正常。不知道它是否适合手机。

我也没有测试过 blue112 建议的方法,因为在 physinjector 开发人员的推特上,有人抱怨父剪辑 (https://twitter.com/reyco1/status/327107695670853632) 的任何移动,并且很难与我现有的架构相结合。

更改 globalOffsetX 和 globalOffsetY 属性也无济于事

最新更新