旋转不必对角,几乎反光?

时间:2011-03-12 22:22:41

标签: actionscript-3 rotation game-physics

所以我得到了这个bulletContainer类,可以拍摄所有这些子弹,并且可以当我把这个课程放在一个动作片中添加到舞台上时,拍得非常好。我不能在电影剪辑中拥有它,因为当我调用bulletClass的函数时,它会向我发出一个错误,说它存在。现在,我的问题是当我将addChild(bulletClass)放到舞台上时,它将完全按照其编程方式工作,除了运动/动画。子弹移动很好,除非我以相反的方式拍摄它,而不是相反的方式它向左侧射出一点点(如果我直接向上指向左侧),那么如果我指向完全正确它将会旋转拍摄我的权利。所以它基本上是低音 - 在各方面,就像我说的那样,只有当我用一个类(扩展Movieclip)的addChild()时。我不知道为什么我会给你我的代码,因为它会让你更加困惑,一切都会检查出来;我认为这是一个转换,比如扩展Movieclip的类可能与Library MovieClip的方向不同?

此代码位于bulletAdder()函数中,它是bulletContainer中唯一创建项目符号的项目

var localPlayer = Object(root).localSurvivor;

//Select what movieclip should go into the bullet
var newBullet;
    newBullet = new bullet1;

//Create a local movieclip for this
var newBulletMC:MovieClip = new MovieClip;
    newBulletMC.addChild(newBullet);
    newBulletMC.x = setX;
    newBulletMC.y = setY;
    //trace(localPlayer.rotation);

//Create the newBullet class for movement
var localPlayerRotation = Object(root).localSurvivor.rotation;
trace(localPlayerRotation);
var newBulletClass:bulletClass = new bulletClass(localPlayerRotation, bulletLifetime);

//Add bulletMC to the bulletClass
    newBulletClass.addChild(newBulletMC);

//Add to array
    bulletArray.push(newBulletClass);

//Add to stage
    localStage.addChild(newBulletClass);

这是bulletClass,在屏幕上移动的子弹

package  com{
        import flash.display.*
        import flash.utils.*

    public class bulletClass extends MovieClip{
            public var lifetime = 0;
            public var dir = 0;
                    var animationInt;
        public function bulletClass(playerRotation, bLifetime:Number = 1){
            dir = playerRotation
            //Start life
            animationInt = setInterval(animateBullet, 40);

        }

        private function animateBullet(){
            this.x += 10 * Math.sin(dir * (Math.PI / 180));
            this.y += 10 * Math.cos(dir * (Math.PI / 180));
        }

    }

}

1 个答案:

答案 0 :(得分:1)

看起来你把它分类了吗?

我会建议一件事 - 当你做这样的事情时,使用显示列表并不总是有意义的。如果你在舞台上发生了很多事情,那么它将会变慢,性能会变得粗略。

如果您正在构建游戏,我强烈建议您至少查看一个或两个大型Flash游戏框架。他们在幕后为您做了很多优化,甚至大部分游戏逻辑都被抽象出来。例如,查看Flixel - 超级易于快速启动和运行,以及许多教程。

只是我的两分钱,希望它有所帮助!