Ejemplo n.º 1
0
 public void Fire(Vector2 theStartPosition, Vector2 theSpeed, Vector2 theDirection)
 {
     currentYFrame = FRAME_HEIGHT;
     if (theDirection.X == -1) //Moving left
         currentXFrame = 0;
     else
         currentXFrame = FRAME_WIDTH;
     source = new Rectangle(currentXFrame, currentYFrame, FRAME_WIDTH, FRAME_HEIGHT);
     mPosition = theStartPosition;
     startPosition = theStartPosition;
     speed = theSpeed;
     direction = theDirection;
     visible = true;
     mCurrentState = rocketState.Traveling;
 }
Ejemplo n.º 2
0
    /*
     * public void RunQ9()
     * {
     *  currentTime += Time.deltaTime;
     *  if (currentTime >= 1.0f) { second += 1; }
     *  if (second >= 60) { minute += 1; second = 0; }
     *  if (minute >= 60) { hour += 1; minute = 0; }
     *  if (hour >= 24) { day += 1; hour = 0; }
     *  if (day >= 30) { month += 1; day = 0; }
     *  if (month >= 12) { year += 1; month = 0; }
     *
     *  if (currentTime > 3.0f)
     *  {
     *
     *      Debug.Log("年:" + year + "月:" + month + "日:" + day + "小时:" + hour + "分钟:" + minute + "秒:" second);
     *
     *  }
     *
     *
     * }
     */


    public void RunQ10()
    {
        switch (currentStaterocket)
        {
        case rocketState.rocketState_countdown:
        {
            currentTime += Time.deltaTime;
            if (currentTime >= 1.0f && countDown > 0)
            {
                countDown  -= 1;
                currentTime = 0.0f;
                Debug.Log("倒计时" + countDown);
            }

            if (countDown == 0.0f)
            {
                currentStaterocket = rocketState.rocketState_onfire;
                currentTime        = 0.0f;
                Debug.Log("开始点火");
            }
        }
        break;

        case rocketState.rocketState_onfire:
        {
            currentTime += Time.deltaTime;
            if (currentTime >= 2.0f)
            {
                currentStaterocket = rocketState.rocketState_fly;
                currentTime        = 0.0f;
                Debug.Log("点火完毕,准备起飞");
            }
        }
        break;

        case rocketState.rocketState_fly:
        {
            currentTime += Time.deltaTime;
            if (currentTime >= 5.0f)
            {
                currentStaterocket = rocketState.reocketState_disappear;
                currentTime        = 0.0f;
                Debug.Log("离开大气层");
            }
        }
        break;
        }
    }
Ejemplo n.º 3
0
        public void Update(GameTime gameTime)
        {
            if (visible && mCurrentState == rocketState.Traveling
                && Vector2.Distance(startPosition, mPosition) > MAX_DISTANCE)
            {
                mCurrentState = rocketState.Exploding;
                currentYFrame = 0;
                currentXFrame = 0;
            }

            if (visible && mCurrentState == rocketState.Traveling)
            {
                base.Update(gameTime, speed, direction);
            }
            else if (mCurrentState == rocketState.Exploding)
            {
                explodeRocket(gameTime);
            }
        }
Ejemplo n.º 4
0
 public void Fire(Vector2 theStartPosition, Vector2 theSpeed, Vector2 theDirection)
 {
     currentYFrame = FRAME_HEIGHT;
     if (theDirection.X == MOVE_LEFT)
     {
         currentXFrame = 0;
     }
     else
     {
         currentXFrame = FRAME_WIDTH;
     }
     source        = new Rectangle(currentXFrame, currentYFrame, FRAME_WIDTH, FRAME_HEIGHT);
     mPosition     = theStartPosition;
     startPosition = theStartPosition;
     speed         = theSpeed;
     direction     = theDirection;
     visible       = true;
     mCurrentState = rocketState.Traveling;
 }
Ejemplo n.º 5
0
        public void Update(GameTime gameTime)
        {
            if (visible && mCurrentState == rocketState.Traveling &&
                Vector2.Distance(startPosition, mPosition) > MAX_DISTANCE)
            {
                mCurrentState = rocketState.Exploding;
                currentYFrame = 0;
                currentXFrame = 0;
            }

            if (visible && mCurrentState == rocketState.Traveling)
            {
                base.Update(gameTime, speed, direction);
            }
            else if (mCurrentState == rocketState.Exploding)
            {
                explodeRocket(gameTime);
            }
        }
Ejemplo n.º 6
0
        private void explodeRocket(GameTime gameTime)
        {
            frameTimeElapsed += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (frameTimeElapsed > FRAME_TIME_TO_UPDATE)
            {
                frameTimeElapsed -= FRAME_TIME_TO_UPDATE;
                //Jump to the next frame
                if (currentXFrame < MAX_FRAME_WIDTH)
                {
                    currentXFrame += FRAME_WIDTH;
                }
                else
                {
                    mCurrentState = rocketState.Traveling;
                    visible       = false;
                }
                source = new Rectangle(currentXFrame, currentYFrame, FRAME_WIDTH, FRAME_HEIGHT);
            }
        }
Ejemplo n.º 7
0
        private void explodeRocket(GameTime gameTime)
        {
            frameTimeElapsed += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (frameTimeElapsed > FRAME_TIME_TO_UPDATE)
            {
                frameTimeElapsed -= FRAME_TIME_TO_UPDATE;
                //Jump to the next frame
                if (currentXFrame < MAX_FRAME_WIDTH)
                {
                    currentXFrame += FRAME_WIDTH;
                }
                else
                {
                    mCurrentState = rocketState.Traveling;
                    visible = false;
                }
                source = new Rectangle(currentXFrame, currentYFrame, FRAME_WIDTH, FRAME_HEIGHT);
            }
        }