정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

방법: XNA Framework 응용프로그램에 레벨 추가

2012-02-09

이 항목에서는 이 시리즈에서 구현 중인 XNA Framework 응용프로그램에 레벨을 추가하는 방법을 보여 줍니다. 현재 응용프로그램은 화면에서 움직이는 사각형 그래픽 개체로 구성됩니다. 앞의 단원에서는 사용자가 사각형을 탭할 때 이를 검색하는 기능을 추가했습니다. 이러한 적중 또는 충돌 횟수를 사용자 점수로 기록합니다. 체험을 위해 게임에 여러 레벨을 추가할 것입니다. 이후 항목에서 설명하는 시험판 환경에서는 게임의 라이선스(체험 또는 정식)에 따라 사용자가 플레이할 수 있는 레벨 수를 제한할 수 있습니다. 이 항목에서 설명하는 레벨 구현은 화면에서 움직이는 사각형에 대한 각 레벨의 속도를 정의합니다. 레벨이 증가할 때마다 화면에서 튀어오르는 사각형이 더 빨리 이동합니다.

이 단계를 계속하기 전에 다음 항목을 완료해야 합니다.

  1. 방법: XNA Framework 응용프로그램 만들기

  2. 방법: XNA Framework 응용프로그램에 충돌 검색 추가

참고참고:

다음 절차의 단계는 Windows Phone용 Visual Studio 2010 Express에 적용됩니다. Visual Studio 2010 Professional 또는 Visual Studio 2010 Ultimate용 추가 기능을 사용하는 경우에는 메뉴 명령이나 창 레이아웃에서 일부 소규모 변형이 나타날 수 있습니다.

시험판 환경을 위해 게임에 레벨을 추가합니다. 플레이어가 한 레벨을 완료하면 게임의 다음 레벨로 이동합니다. 이 항목에서는 게임이 레벨 단위로 변경되어 그래픽 개체가 화면에서 튀어오르는 속도가 증가합니다.

게임에 레벨을 추가하려면

  1. Game1 클래스의 맨 위에 다음 변수를 추가합니다. 각 레벨의 속도를 List<Vector2>에 저장합니다. 사용자가 플레이 중인 현재 레벨은 currentLevel 변수에 저장됩니다.

    
            // Each level in the game changes the speed of the sprite moving across the screen.
            // Store the speed per level in a List<Vector2>
            List<Vector2> levels;
    
            // The current level that the user is playing
            int currentLevel;
    
    
  2. Initialize 메서드에서 spriteSpeed를 설정하는 줄을 다음 코드 줄로 바꿉니다. 이 코드는 화면에서 움직이는 그래픽 개체의 속도를 나타내는 Vector2 개체를 각각 정의하는 세 개의 게임 레벨이 있는 게임을 초기화합니다. currentLevel은 1로 초기화되고 spriteSpeed는 여기서 정의한 레벨 목록에서 검색된 첫 번째 레벨의 속도로 초기화됩니다.

    
                // Initialize the list of level speeds.
                levels = new List<Vector2>();
                levels.Add(new Vector2(50.0f, 50.0f));
                levels.Add(new Vector2(100.0f, 100.0f));
                levels.Add(new Vector2(200.0f, 200.0f));
    
                // Start the game at level one.
                currentLevel = 1;
    
                // Set the initial speed of the sprite.
                spriteSpeed = levels[currentLevel - 1];
    
    
  3. Game1 클래스에서 다음 메서드를 추가합니다. GoToNextLevel은 최대 레벨 수인 levels.Count와 비교하여 currentLevel을 확인합니다. 사용자가 최대 레벨에 도달하지 않은 경우 currentLevel이 증가하고 그래픽 개체의 속도가 이 새로운 레벨의 속도로 설정되며 게임 카운터가 원래대로 설정됩니다. 이 예제에는 게임 끝 환경이 없습니다. 사용자가 최대 레벨 수에 도달하면 해당 레벨이 다시 플레이됩니다.

    
            private void GoToNextLevel()
            {
                // Are all levels completed
                if (currentLevel == levels.Count)
                {
                    // game over
                    ResetGameCounters();
                }
                else
                {
                    currentLevel++;
                    spriteSpeed = levels[currentLevel - 1];
                    ResetGameCounters();
                }
    
            }
    
            private void ResetGameCounters()
            {
                collisionCount = 0;
                spritePosition.X = 0;
                spritePosition.Y = 0;
            }
    
    
  4. 빌드 | 솔루션 빌드 메뉴 명령을 선택하여 솔루션을 빌드합니다. 프로젝트가 오류 없이 빌드되어야 합니다. 오류 목록 창이 열려 있지 않은 경우 보기 | 오류 목록 메뉴 명령을 선택하여 창을 열 수 있습니다. 오류가 있는 경우 위 단계를 검토하고 오류를 수정한 다음 솔루션을 다시 빌드합니다.

  5. 표준 도구 모음에서 응용프로그램의 배포 대상을 Windows Phone 에뮬레이터로 설정합니다.

    에뮬레이터를 선택하는 표준 도구 모음의 대상

  6. 디버그 | 디버깅 시작 메뉴 명령을 선택하여 응용프로그램을 실행합니다. 에뮬레이터 창이 열리고 응용프로그램이 시작됩니다. 그래픽이 화면에서 튀어오르는 것을 볼 수 있습니다.

  7. 에뮬레이터가 시간 초과되어 잠금 화면으로 전환되면 화면 맨 아래를 클릭하고 위로 밀어 잠금을 해제할 수 있습니다.

  8. 원하는 코드 줄에 커서를 놓고 디버그 | 중단점 설정/해제 메뉴 명령을 선택하여 코드에 디버그 중단점을 설정할 수 있습니다.

  9. 디버깅을 중지하려면 디버그 | 디버깅 중지 메뉴 명령을 선택합니다.

이 시리즈의 다음 항목에서는 사용자가 게임을 플레이할 때 현재 점수와 현재 레벨을 화면에 표시하는 방법을 보여 줍니다. 이 시점에는 사용자 점수를 추적할 수 있는 단순한 게임입니다. 또한 게임에 세 개의 레벨을 빌드했습니다. 스코어보드를 추가하면 항상 현재 점수와 현재 레벨을 확인할 수 있습니다.

방법: XNA Framework 응용프로그램의 스코어보드 표시

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft. All rights reserved.