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

안드로이드를위한 프로그래밍 게임 32: 박스 2D 및 2D 장면 2 부

42 동영상

238 의사록

주의 사항 : 우리는 PlayerEntity에게 배우를 설립했다. 우리는 지금 여러 가지로 설정해야합니다. 첫째, 당신은 그것을 그립니다. 나는 우리가 여기에 문제가 있었 말했다, Box2D의 및 Scene2D는 다른 차원에서 작동하기 때문이다. Box2D의 미터에서 작동하고, 픽셀 Scene2D. 나는이 그림과 함께 설명합니다. 우리는 우리의 작은 화면을 가지고있다. 우리가 Scene2D에 대해 이야기 할 때 나는 화면 픽셀의 높이를 가지고 있어야 함을 말했다. 예를 들어, 360하십시오.

난은 Skitch를 삭제하는 방법을 기억할 수 없다. 나는 높은 360 픽셀을 말할 것이다. 우리는 Box2D의에 대해 얘기 할 때 그리고, 나는 높이가 미터에 있어야했다, 예를 들어 4 미터 화면. 그래서 내가 그리는 경우 상자 1m × 1 미터는이 위대한처럼 볼 ...하지만 하나의 측정기를 차지 상상해야합니다. 문제는이 360 픽셀이어야하는이 충분해야한다는 것입니다. 화면이 4m 360 픽셀을 모두 측정해야한다.

즉 등가 그래서이 작업을 수행 할 수있는 유일한 방법은, 4m = 360 픽셀을 만드는 것입니다. 무엇이 우리를 강요하는 것은 사이의 변환을 설정하려면 미터 픽셀. 이 용이하고 분할에 의해 해결된다 : 4 미터 360 픽셀 인 경우 1 미터 ... X 픽셀 수 있습니다. = 90 따라서 관계가 확립 4분의 360, 은 1 미터 90 픽셀 것입니다. 우리가 그것을 그릴, Box2D의 픽셀 Scene2D에 미터를 변환해야하기 때문에 우리는 이것을 알아야합니다.

그것이 우리가 설정하는 것이 자연의 규칙을 존중하지 않을 정도로 큰 개체 것 때문에 우리가, 배 90 (90)의 몸을 만들 수 없습니다 기억하십시오. 그러나 우리는 선수 1 픽셀 크기를 만들 수는 없지만, 우리는, 그래서 우리는 픽셀 미터로 변환이 동등한를 사용하지 않기 때문에, 또는 미터 픽셀. 내 동치 관계를 만들려면, 내가 PIXELS_IN_METER라는 변수를 생성 상수라는 클래스를 생성

일m 90 픽셀이 있음을 나타냅니다. 당신이 위치 또는 배우의 크기를 조정해야 할 때마다 그리고 지금, 나는 Box2D의 읽기 미터를 변경해야합니다 이 상수에 의해 화소에 전달합니다. 예를 들어, 나는 배우로 크기를 전달할 수 있습니다. 상자가 1m 인 경우, 명확하다 픽셀 크기 그것은 1 *의 Constants.PIXELS_IN_METER 될 것입니다. 당신은 * 1을 넣을 수 있지만, 필요하지 않는 것 같습니다. 사실 나는이 상수를 사용하는 정적 가져 오기를 할거야.

이제 상자가 90 X 90 픽셀입니다. 우리가 화면에 우리의 질감을 그려 갈 때 우리가 여기서 알 수 있도록처럼, 우리는 위치를 업데이트해야 그것은이 순간 몸에서 그려야합니다. 다음은 동일합니다. 나는 그의 위치가 body.getPosition 될 것이라고합니다 (). X, Y body.getPosition (). Y.은하지 마십시오 우리는 변환 계수를 곱한 때문에 우리 관심사 인 픽셀에 전달합니다. 그리고 지금 우리는 모든 것을 가지고,

우리는 실제로 전통적인 그리기 방법, 화면에 그릴 수 있습니다. 우리는 전등을 제거하기 위해 필요로의이 마지막 방법을 만들어 보자 우리가 만들었지 만 기억 때문에 몸, 즉 제거해야합니다. 우리는 우리가 세계에서 개체를 해제하는 것을 나타 내기 위해서 (때문에), 분리라는 방법을 만들 것입니다. 그리고이 방법은 주소 모두 몸을 파괴로기구를 파괴 할 것이다. 우리가 게임 종료시 수명을 호출하는 것이 중요

사라합니다. 지금 내가하는 일은 인스턴스화 ... 우리는 내가 조용하고, 거기에 넣어 무엇을 볼하는 PlayerEntity을 만드는 것입니다. 나는 무대에 내가 (쇼에 할 ... 뭔가를) 추가 사실, 항상 수행한다. 숨기기 ()에서 전 세계를 해제해야합니다. 나는 또한 배우의 무대를 제거하는 ()를 제거 호출합니다. 그리고이 모든 것입니다. 어떻게 할 수 남아? 나는 Y의 위치에, X 1m와 2m 위치를 원하기 때문에이 될 것입니다, 세계, 텍스처 및 초기 위치를 보내

내가 텍스처를로드 할 수있는 방법 나는 여전히 ... 질감을 청구? 우리가 본대로 빌더, 텍스처를로드하는 쉬운 방법이 있습니다. 때마다 내가 인스턴스화 할 텍스처를로드하기 때문에 그러나 그것은 거의 사용할 수 있습니다. 이 작업을 수행 할 수있는 더 좋은 방법이 아닌가? 예있다. 우리는 자원 부하를 중앙 AssetManagers를 사용할 수 있습니다.

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

저자에 관하여

foto de jotajotavm
José Javier Villena

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