2012-04-07 5 views
1

간단한 응용 프로그램을 만들려고 노력하고 있습니다. 정말 간단합니다.C# XNA 동작이 작동하지 않고 이유를 알 수 없습니다.

이유는 모르겠지만 왼쪽 화살표 나 오른쪽 화살표를 클릭하면 텍스처가 위치를 변경하지 않습니다.

나는 무엇인가 놓치고 있고, 무엇이 어리석은 지 알 수 없다고 확신한다.

주요 파일 : http://paste.ubuntu.com/919662/

Character.cs : http://paste.ubuntu.com/919664/

Position.cs : http://paste.ubuntu.com/919665/

고마워요.

답변

3

UPDATED ANSWER :

진짜 원인은 :

KeyboardState 키보드 = 새로운 KeyboardState();

변수 이름으로 '키보드'를 사용할 수 없습니다. 그것은 XNA의 수업입니다! 당신은 그것을 재 선언하고 있습니다. 따라서 귀하의 키 누름이 더 이상 감지되지 않습니다! 대신를 사용

KeyboardState keyb = Keyboard.GetState(); 

을 그리고

이 답변은 참조 업데이트 다소 유효 : 당신은 문자에게 당신이 당신의 업데이트() 메소드에서 다음

 C = new Character(100, 100, new Position(200, 200)); 

하지만를 초기화하는

:

 spriteBatch.Draw(myTexture, myVector, Color.White); 

Character 클래스의 Pos 값을 올바르게 수정하고 있지만 myTexture와 관련이 없습니다. 사실, 당신은 심지어 화면에 "캐릭터"를 그리지 않습니다.

TL : 캐릭터 클래스를 수정했지만 myTexture를 그리는 중입니다. Character가 아닌 myTexture가있는 객체의 좌표를 수정합니다.

또한 "문자"를 화면에 그리려면 가장 좋은 방법은 자신의 Pos 클래스 대신 Vector2D를 사용하는 것입니다.

한 가지 더 :

LoadContent에서

당신이

 myVector = new Vector2(C.Pos.Col, C.Pos.Row); 

을하고 있습니다 그러나 문서가 명확하게 상태 : LoadContent은 게임 당 일단 을 불러 를로드 할 수있는 장소입니다됩니다 /// /// 귀하의 모든 콘텐츠.

이렇게하면 문제를 해결할 수 있습니다. 여전히 질문이 있으시면 제 대답 아래에 의견을 게시하십시오.

+0

도움을 주셔서 감사합니다. 현재 작동합니다. 방금 개념을 배우면서 XNA로 시작했습니다. 다시 한번 고마워요. – Novak

관련 문제