이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장

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

2012-02-09

이 항목에서는 XNA Framework 응용프로그램의 화면에 텍스트를 쓰는 방법을 보여 줍니다. 이 시리즈의 이전 항목에서는 게임 인프라와 논리를 만들었습니다. 화면에서 튀어오르는 사각형을 탭하는 사용자 검색도 구현되었습니다. 이 적중 또는 충돌 횟수가 사용자 점수입니다. 또한 게임에 여러 레벨을 추가했습니다. 이제 이러한 부분이 모두 구현되었으므로 게임의 스코어보드를 표시하는 기능을 추가합니다. 스코어보드는 현재 점수와 현재 레벨을 화면에 표시하는 데 사용됩니다.

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

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

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

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

참고참고:

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

게임 진행률을 표시하려면 현재 점수와 플레이 중인 현재 레벨을 화면에 표시할 스코어보드를 게임에 추가합니다.

게임의 스코어보드를 표시하려면

  1. 프로젝트 | 클래스 추가 메뉴 명령을 선택하여 WindowsPhoneGame1 프로젝트에 새 클래스를 추가합니다. 새 항목 추가 창이 표시됩니다. 추가할 항목 목록에서 클래스를 선택하고 이름 필드에 Scoreboard.cs를 입력합니다. 추가를 클릭하여 프로젝트에 클래스를 추가합니다. 이제 Scoreboard.cs라는 새 클래스가 프로젝트에 추가되었습니다.

  2. Scoreboard.cs 파일을 열고 파일의 맨 위에 다음 using 지시문을 추가합니다.

    
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Graphics;
    
    
  3. Scoreboard 클래스의 본문에 다음 코드를 삽입합니다. 이 코드는 각각 현재 점수와 현재 레벨에 사용되는 두 개의 텍스트 필드로 구성된 스코어보드를 정의합니다. 화면에서 두 필드의 위치는 다음 코드에 정의된 scorePoslevelPos 벡터를 사용하여 정의됩니다. _font 변수는 화면에 텍스트를 렌더링하는 데 사용할 글꼴을 저장하도록 정의됩니다. 이 클래스에는 게임의 점수와 레벨을 설정하기 위한 두 속성 ScoreLevel이 포함되어 있습니다. 텍스트 렌더링에 사용되는 글꼴은 Scoreboard 생성자의 클래스에 전달됩니다. 최종적으로, 스코어보드 클래스에는 화면의 정의된 위치에 현재 점수와 레벨을 렌더링할 고유한 Draw 메서드가 있습니다.

    
            private Vector2 scorePos = new Vector2(20, 40);
            private Vector2 levelPos = new Vector2(20, 60);
    
            private SpriteFont _font;
    
            public int Score { get; set; }
            public int Level { get; set; }
    
            public Scoreboard(SpriteFont font)
            {
                _font = font;
            }
    
            public void Draw(SpriteBatch spriteBatch)
            {
                spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
                spriteBatch.DrawString(_font, "Score:" + Score.ToString(), scorePos, Color.Black);
                spriteBatch.DrawString(_font, "Level:" + Level.ToString(), levelPos, Color.Black);
                spriteBatch.End();
            }
    
    

    이제 화면에 점수 기록을 관리하도록 클래스가 정의되었으므로 다음 단계에서는 이 클래스를 기본 Game1 클래스에서 호출합니다.

  4. 솔루션 탐색기에서 콘텐츠 노드(이 예제에서는 WindowsPhoneGame1Content(콘텐츠))를 마우스 오른쪽 버튼으로 클릭하고 추가 | 새 항목을 선택합니다. 새 항목 추가 창에서 스프라이트 글꼴을 선택하고 추가를 클릭합니다. SpriteFont1.spritefont라는 새 글꼴 개체가 프로젝트에 추가됩니다.

  5. Game1.cs에서 클래스의 맨 위에 다음 변수를 추가합니다. 이 변수는 게임에서 사용할 Scoreboard 클래스 인스턴스를 저장하는 데 사용됩니다.

    
    // Display the score and the level on the screen.
    Scoreboard scoreBoard;
    
    
  6. Game1 클래스의 LoadContent 메서드 끝에 다음 코드를 추가합니다. 이 코드는 Scoreboard 인스턴스를 생성하고 ScoreLevel 속성을 초기화합니다. Scoreboard 생성자에 전달된 SpriteFont는 이전 단계에서 추가한 글꼴의 이름입니다.

    
    // Create the scoreboard and set the initial level and score values.
    scoreBoard = new Scoreboard(Content.Load<SpriteFont>("SpriteFont1"));
    scoreBoard.Level = currentLevel;
    scoreBoard.Score = collisionCount;
    
    
  7. CheckForTouchCollision 메서드에서 collisionCount가 증가되는 줄 아래에 다음 코드 줄을 추가합니다.

    
    scoreBoard.Score = collisionCount;
    
    
  8. 앞에서 정의한 ResetGameCounters 메서드에 다음 코드 줄을 추가합니다. ScoreLevel 속성이 다시 설정됩니다.

    
    scoreBoard.Score = 0;
    scoreBoard.Level = currentLevel;
    
    
  9. Game1 클래스의 Draw 메서드에서 base.Draw(gametime) 호출 바로 앞에 다음 줄을 추가합니다. 게임이 그려질 때 스코어보드가 업데이트됩니다.

    
    // Call the Draw method on the scoreBoard object to update the scoreboard.
    scoreBoard.Draw(spriteBatch);
    
    
  10. 빌드 | 솔루션 빌드 메뉴 명령을 선택하여 솔루션을 빌드합니다. 프로젝트가 오류 없이 빌드되어야 합니다. 오류 목록 창이 열려 있지 않은 경우 보기 | 오류 목록 메뉴 명령을 선택하여 창을 열 수 있습니다. 오류가 있는 경우 위 단계를 검토하고 오류를 수정한 다음 솔루션을 다시 빌드합니다.

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

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

  12. 디버그 | 디버깅 시작 메뉴 명령을 선택하여 응용프로그램을 실행합니다. 에뮬레이터 창이 열리고 응용프로그램이 시작됩니다. 그래픽이 화면에서 튀어오르는 것을 볼 수 있습니다. 또한 화면 구석에 스코어보드가 표시됩니다. 움직이는 사각형을 탭하면 점수가 증가합니다. 점수 5에 도달할 때마다 레벨이 변경됩니다. 그러면 사각형이 더 빨리 이동합니다. 게임에는 세 개의 레벨이 있습니다. 레벨 3에 도달하면 레벨 3을 반복할 수 있습니다.

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

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

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

이 시점에는 게임에 여러 레벨과 스코어보드가 있으며 게임 중 언제든지 플레이어의 점수와 레벨을 쉽게 확인할 수 있습니다. 이 시리즈의 다음 항목에서는 게임에 평가판 라이선스가 있는 경우 사용자가 레벨 1만 플레이할 수 있게 제한되도록 이 게임에 시험판 환경을 추가하는 방법에 대해 설명합니다.

방법: XNA Framework 응용프로그램에 시험판 환경 추가

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft