コード例 #1
0
        private void handleMovement(float deltaTime)
        {
            if (currentDirection.Y < 0)
            {
                if (moveDownTime >= totalMoveDownTime)
                {
                    currentDirection.Y       = 0.0f;
                    moveDownTime             = 0.0f;
                    movementDirectionChanged = true;
                }

                moveDownTime += deltaTime;
            }

            if (!movementDirectionChanged)
            {
                return;
            }

            foreach (Entity invader in invaders)
            {
                var move = MoveEvent.Start(invader.ID, currentDirection);
                EventManager.Queue(move);


                if (invader[SpatialBehavior.Key_MovementSpeed] < 400.0f)
                {
                    invader[SpatialBehavior.Key_MovementSpeed] *= 1 + speedIncreasePerDownTurn;
                }
            }
            if (totalMoveDownTime > 0.1f)
            {
                totalMoveDownTime /= 1 + speedIncreasePerDownTurn;
            }
            movementDirectionChanged = false;
        }