2013-12-23 3 views
0

XNA 4 게임을 만들고 있는데 무대의 특정 영역에 대한 체크 포인트를 만들고 싶습니다. 플레이어가 체크 포인트에 도달 할 때마다 생성되는 플레이어 개체의 "유령"개체를 만들 수 있다고 생각했습니다. 그리고 그 체크 포인트를 다시로드하기를 원할 때, 그 유령 플레이어가 어디에 있는지 시작할 것입니다. 지금 당장이 방법을 사용하는 것이 쉬운 방법이라고 생각합니다. (XML이 더 나은 해결책 일지 모르나 사용 방법에 대해서는 아직 알지 못합니다.) 하지만 선수는 너무 많은 변수 (건강, 체력, 탄약, 출혈 타이머, 은색 열쇠, 황금 열쇠, 동전, 감염, 위치, 속도, 각, 상태 [염증, 감염, 출혈, 화상, 피로 함 등을 포함] 그냥 "continuep1 = p1;"같은 statemets (둘 다 같은 객체의 인스턴스)는 다른 클래스에 포함 된 값으로 모든 변수를 다시 할당 할 것이라고 생각했지만 "p1 = continuep1"을 다시로드하려고 시도했을 때XNA에서 체크 포인트 만들기

그래서 모든 변수를 하나씩 다시 할당해야합니까? 아니면 XML을 사용해야할까요? 아니면 XML을 사용해야합니까? 하나씩 하나씩 할 필요없이 모든 변수를 할당 하시겠습니까? (마지막 질문이 없으면 코드를 묻지 않습니다)

+0

'continuep1 = p1;'은 참조 지정이므로 동일한 객체가되므로 작동하지 않습니다. 손으로 모든 필드를 복사하는 것 이외에, 리플렉션 또는 직렬화를 사용하여 객체를 복제 할 수 있습니다. 얕은 사본에 리플렉션을 사용하는 간단한 짧은 예제는 http://stackoverflow.com/a/8181736/1020861 – neeKo

답변

1

내 의견으로는 s, xml 사용을 시작하십시오. xml을 사용하는 것에 대해 걱정하지 마십시오. XML을 사용하면 걱정할 필요가 없습니다. xml 형식으로 표시되는 문자 정보를 보는 것이 가장 좋은 방법입니다.

가장 이상적인 옵션은 게임을 직렬화하는 것이라고 생각합니다. 따라서 캐릭터의 상태, 위치, 방향 (현재 텍스처가로드되어 있음) 및 통계 (상태, 상태, 출혈 등)를 저장하는 작업이 포함됩니다.

이렇게하면 플레이어가 사망하거나 게임을 다음에 재생할 때 마지막 저장에서 게임을 다시로드 할 수 있습니다. 이것은 두 경우 모두를 해결할 것입니다.

Xna 4에서 하향식 RPG 게임을 만드는 방법에 관한이 튜토리얼은 제 의견으로는 매우 훌륭하고 잘 설명되어 있습니다. 이 튜토리얼의 많은 기술은이 장르와 스타일 이상의 게임에 적용됩니다.

http://xnagpa.net/xna4rpg.php

제 11A (게임 편집기) 자신의 게임에 대한 편집기를 만드는 독자를 안내 튜토리얼의 첫 번째 부분입니다. 이 Winforms 프로젝트 항목을 사용하여 클래스, 퀘스트 등을 게임에 추가하고 XML 파일로 저장할 수 있습니다. 6 페이지 하단과 7 페이지와 8 페이지에는 게임을 직렬화 및 비 직렬화하는 방법이 요약되어 있습니다.

11C (게임 편집기)에서, 특히 9 페이지와 10 페이지 아래쪽에 있습니다. 게임을 직렬화하는 저장 방법이 소개됩니다. 또한 새로운 게임을보고 게임 방법을 열 수도 있습니다.

이 메서드는 Dictionary에 항목, 클래스 등을 저장하는 DataManager 클래스에서 작동합니다. 이것은 게임 정보를 모델링하는 방법 일 수 있습니다.이 가이드의 코드가 솔루션과 함께 작동하도록 변경되지 않는 경우가 있습니다.

나는이 주제에 대해 배우기 위해 근원을 제공하는 것이 가장 좋다고 생각했다. 필자가 지적한 페이지뿐만 아니라이 문제를 읽는 것이 좋습니다. 또한 나중에 튜토리얼에서 직렬화가 한 걸음 더 나아가고 파일은 .xnb에 저장됩니다.이 정보는 정보를 저장하는 훨씬 안전한 방법입니다.

나는 이것이 도움이되었고, 답을 얻는 것의 반대 방향으로 올바른 방향으로 가이드를 이해하기를 바랍니다. 게다가, 이것은 어쨌든 하나의 방법으로 해결 될 과제가 아닙니다.

어떻게 지내시는지 알려 주시면 더 기꺼이 도와 드리겠습니다.

+0

아아에서 확인할 수 있습니다. 한 곳을 확인하고 .txt 파일을 사용하여 내지도를 만들고, 나는 당신이 묘사 한 모든 것이 훨씬 더 좋을 것이라고 생각합니다. 이 코드를 다시 정렬하는 작업이 필요하다고 생각하십니까? 그렇다면 지금 당장이 게임을 마무리하고 새로운 방법으로 새로 시작할 것입니다. 하지만 고마워! 거기에 많은 유용한 정보를 찾을 수있을 것이라고 확신합니다! : D – Roman

+0

기꺼이 도와 드리겠습니다. 정말 좋은 튜토리얼입니다. 나는 당신이 그것을 빨리 읽고 그것에서 부품을 가져갈 수 있다고 생각합니다. 이전에 그래픽/게임 프로그래밍을 해본 것처럼 완전히 따라갔습니다. XNA로는 해본 적이 없었습니다. 또한,이 가이드의 프로젝트에는 일반적인 RPG 엔진 클래스가 있으며 다음 게임에 유용합니다! – tjheslin1