毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

Flash CS4三维游戏设计(赛车)(13)

时间:2016-11-25 19:00来源:毕业论文
if(this.xthis.stage.stageWidth-80) this.x= this.stage.stageWidth-80; } public function CollideWith(object:CarBase):Boolean { if(this.x-40object.x+40 this.x+40object.x-40 this.z-20object.z+20 this.z+20


            if(this.x>this.stage.stageWidth-80)
                this.x= this.stage.stageWidth-80;
        }
        public function CollideWith(object:CarBase):Boolean
        {
            if(this.x-40<object.x+40&&
                this.x+40>object.x-40&&
                this.z-20<object.z+20&&
                this.z+20>object.z-20)
                return true;
            return false;
        }
    }
}
(2)    ComCar类的代码
ComCar类代码是用于管理计算机赛车的,该类派生于CarBase,是一个特殊的赛车类,计算机赛车这类代码设计时需要考虑的是:
A    计算机赛车需要自动思考下一步的行为动作;
B    游戏中,玩家的观察视角被固定在玩家赛车的后面,所以玩家赛车的Z轴坐标其实是不会改变的。这就需要不断地调整计算机赛车的Z轴坐标,以保持赛车之间的相对位置不改变。
ComCar类的代码如下所示:
package classes
{
    import flash.display.MovieClip;
    public class ComCar extends CarBase
    {
        private var m_nThinkingTime;
        public function ComCar()
        {
            m_nSpeedZ=25;
            m_nThinkingTime=5;
        }
        public function Thinking(object:CarBase)
        {
            m_nThinkingTime--;
            if(m_nThinkingTime>0)
                return;
            m_nThinkingTime=5;
            var R:int=(Math.random()*21)-10;
            if(R<-9)
                m_nSpeedX=-8;
            else if(R>9)
                m_nSpeedX=8;
            else
                m_nSpeedX=0;
            m_nSpeedZ=24+int(Math.random()*20)-10;
            if(this.z>object.z+200)
                m_nSpeedZ=20;
            if(this.z<object.z-200)
                m_nSpeedZ=30;
        }
        override public function Logic()
        {
            super.Logic(); Flash CS4三维游戏设计(赛车)(13):http://www.youerw.com/jisuanji/lunwen_294.html
------分隔线----------------------------
推荐内容