안드로이드를위한 프로그래밍 게임

안드로이드를위한 프로그래밍 게임 17: 배우 그리기

42 동영상

238 의사록

우리의 배우 행동의 어떤 종류가없는 또는 작업이 그려지는 방법을 정의한다면, 아무리 우리가, 배우를 추가 우리는 화면에 아무것도 표시되지 않습니다. 당신이 게임을 실행할 때 플레이어가 준비 무승부 시나리오를 요구 한 것은 사실이다 무슨 일이 시나리오를 그릴 것입니다,하지만 아무것도 화면에 그려지지 않기 때문에 우리는 아무것도 볼 수 없습니다. 우리는 배우가 그려진 것을 관심이 있습니다. 첫 번째 문제는 :

I 화면에 화상​​을 표시해야하고 어떤 점에서 충전해야 ... 어떻게 전하? 최고 일 필요는 없습니다 최초의 솔루션. ActorJugador 항상 클래스 인스턴스의 표시 (), 우리가 가정 될 때, 즉 그 libgdx 시작된다. 우리는에 시도 할 수 질감 ActorJugador 내에서 필드 유형을 작성, 우리는 텍스처를로드 생성자에 넣어 것입니다. 예를 들어, 플레이어 = 새로운 텍스처 ( 'minijoe.png').

이것으로 우리는 내 텍스처가 충전 있고, 예를 들어 batch.draw (플레이어)에 대해, '작동'말할 수 있습니다. 어디 그리기습니까? 그것은 어디에 배치됩니다. 자루 좌표는 어떻게? getX (), 형제 setX () 메소드와 getY () ()로, 형제 setY () 메소드. 나는 이것을 실행 분명히 경우, 그래이 표시됩니다 내 텍스처 플레이어. 사람이 잊어 버린이 처분 방법을 정의하고, 나는이를 닫을 때 지금 우리는 MiniJoe이 :하지만 우리는 문제가

내가 상상 않기 때문에 문제가되는 ... 나가 수없는 컴퓨터 그래픽 카드에 잠겨 질감과 문자의 많은. 동일은 우리가 모바일 비디오 메모리 조금 더러운두고 있기 때문에 리소스를 다운로드하는 가장 좋은 방법이 아닙니다. 한편이 또 다른 단점을 갖는다. 그 텍스처의 이름을 변경하거나 두 번째 또는 세 번째 Minijoe을 소개하는 날을 제공 상상해보십시오. 어떻게 그려해야 ActorJugador을 말할까요

하나 또는 다른 질감? 내가 스파이크와 동일 할 여러 번에게 배우를 표시 할 경우 또는 pinchos, 각 인스턴스에 대해 나는 텍스처를 인스턴스화해야합니다. 나는 10 꼬치를 충전하면, 나는 질감 10 번을로드 할 수 있고, 그 여전히 낭비. 그런 다음, 같은 Actor 클래스 자신의 주소 부하 자원은 옳지 않다. 여기에 흥미로운 패턴 대신 질감을 사용하는 당신은 매개 변수로 전달할려고하고 있다는 것입니다. 당신이 여기에서하는 것은 단순히이다,

this.setJugador는 = 선수. 그리고, 당신이 이제까지있는 경우 텍스처 또는 상황을 타개 할 수 있도록 나, MainGameScreen의 패스 외부 텍스처하자 난 당신이 나에게 초기화되지 않은 코드를 보자 실패 할 수 있습니다 특히 있기 때문에, 각 플레이어를 검토하는 배우를 이동하지 않고 같은 코드를 집중하고있다. 내 텍스처를로드 할 것이며, 매개 변수로 전달합니다. 나는 이름을 변경,하지만 ...하지만 여전히 필요하기 때문에이 모든 문제가 해결되지 않습니다

처분 호출합니다. 무엇 내가 할 것이 경우에, 마지막으로 통화 texturaJugador.dispose 숨기기를 평소와 같이, 필드를 만들고, (). 우리는 클래스가 있지만 있기 때문에, 같은 최적이 아닐 수 있지만,이 경우 적어도 우리는 비디오 메모리를 오염되지 이미 BaseScreen 전화, 스크린이라는 인터페이스, 화면하지만 폐기 ()라는 메소드를 가지고, 우리는 지속적으로 () 메소드를 폐기 요구하고있다.

우리는 ()보다 효율적인 솔루션을 필요로하고, 예 texturaJugador.dispose 호출 들면, 폐기 (방법 그 자체)를 사용하여 전달 이것은 당신이 새로운 텍스처가 지금 충전 화면을 입력 할 때마다 전에 말했듯이 있기 때문에 문제를 소개합니다 있지만. 손실 된 오래 된 텍스처 변수 전원이 disposear없이 손실 된 할당합니다. 이 경우 내가 실현 내가 MainGameScreen 클래스를 만들 때,

나는 그것의 생성자에서, 여기에 코드를 생성 할 수 있습니다. 당신은 libgdx 때문에 빌더 플레이어에서 코드를 인스턴스화 할 수있는 것처럼 그것은 이미이고 텍스쳐 I 화면은 화면을 제거시 페이드 충전시에로드된다. 이것은 최적 아니다 우리는 또한 우리의 화면을하지 않아도하지만 지금 나는 당신에게 Scene2D에 대한 자세한 내용을 말할 것이다 당신은 assetManager라는 클래스에 대해 이야기 한 후

새로운 텍스처의 빌더 가득하지만 그들과 거래를 할 수있는 중앙 집중식 클래스가있을 수 있습니다. 그러나이와 잠시 동안 우리는 나타냅니다.

새로운 코스를 찾으려면 가입. 아무 스팸 없을 것, 약속 :)

저자에 관하여

foto de jotajotavm
José Javier Villena

전기 : 다른 언어 분석 - 프로그래머. 교사 PREMIUM 플랫폼은 CodigoFacilito으로 세계적으로 인정. 에디터 Cristalab 기사. 내 YouTube 채널은 아나야와 LaTostadora 출판사가 후원한다. 나는 상세히 설명하고 의심의 소지를 없애기위한 몇 가지 예를주는 것을 좋아합니다.