2013-04-06 2 views
2

나는 플레이어가 아이템을 수집하고 소행성을 피하기 위해 우주선을 끌고 다니는 Windows phone 용 간단한 게임을 가지고있다. 항목을 수집 할 때마다 화면 상단의 점수 카운터가 1 씩 증가합니다.xna 리더 보드 만드는 법?

플레이어의 우주선이 소행성과 충돌하면 게임을 리더 보드로 전환하고 싶습니다. 어떻게 움직이는 지 알 수 없습니다.

나는 스코어 값을 저장하는 정수를 가지고 있지만 일단 플레이어가 소행성과 충돌하면 재설정 된 정수의 값 (물론)입니다.

사망 전 선수 점수의 최종 값을 별도의 정수로 저장하고 리더 보드 화면에 표시하려면 어떻게해야합니까? gamestate 관리에 대해 설명 할 필요가 없습니다. 이미 그 문제를 해결하는 방법을 알고 있습니다.

+0

"리더 보드"를 의미하는 것은 로컬 하나, 하나는 웹 서비스에 연결된 사람, 다른 하나는 제 3자를 의미합니다. – Haedrian

+0

예,이 앱과 관련된 모든 것을 오프라인 상태로 유지하고 싶습니다. –

답변

1

좋습니다. 충돌이 감지되면 변수 점수를 0으로 재설정하기 전에 키를 프로필 이름으로 사용하여 격리 된 저장소 설정에 점수를 저장하십시오. 이미 존재하는 키 값이 작은 경우에만 저장하거나 키 값을 찾지 못하면 바로 저장하는 등의 추가 작업을 할 수 있습니다.

2

먼저 소행성 충돌시 발생하는 문제를 처리하는 코드에서 점수를 먼저 저장 한 다음 다시 설정해야합니다. 표시 할 때 일련 번호가 지정된 파일에서 리더 보드를로드해야합니다.

내가 basicly 내가 당신에게 말할 것입니다 무슨 설명하는 사이트 발견하기 때문에 내가 자세히 다루지 않을거야

: http://xnaessentials.com/tutorials/highscores.aspx

는 당연히이 조금 수정하고 높은 점수를 주문하는 방법을 추가해야합니다을 , 그러나 나는 이것이 당신을 시작하도록해야한다고 생각합니다.

0

게임 종료 후 최고 점수를 유지하는 가장 간단한 방법은 int를 static으로 설정하고 게임이 종료 될 때가 아니라 새로운 게임 시작시 0으로 재설정하는 것입니다.

그래서 MyGame 클래스에서 : 내부 정적 int 점수 = 0;

새로운 게임을 시작하는 함수는 무엇이든간에 : MyGame.Score = 0;

그리고 리더 보드 화면 : List highScores = new List();

...

(highScores.Count == 0이 MyGame.Score> 최고 기록 [highScores.Count-1] ||) { // 점수가 정렬 된 목록 리더 (당신이해야 한 경우

약간의 최대 점수로 제한) }