2009-06-29 5 views
0

플래시의 공간 환경 (플렉스 빌더 3을 사용하는 액션 스크립트 3)에서 2D 멀티 플레이어 게임을 만들고 있습니다. 플레이어의 캐릭터 (우주선)는 항상 중앙에 위치합니다. 우주선이 움직이는 것처럼 보일 필요가 있기 때문에 실제로는 항상 중심에 있지만 배경과 모든 환경 물체는 반대 방향으로 움직여야합니다.2D actionscript/flex 3 (플래시) 게임에서지도 스크롤을 만드는 방법은 무엇입니까?

이 작업을 수행하는 방법에 대한 내 생각은 환경의 모든 개체에 대한 참조가있는 배열을 만드는 것입니다. 이것들은 반복되고 그들의 위치는 선박의 움직임의 반대 방향으로 바뀔 것입니다.

그러나 이것이 부드럽지 않거나 너무 느릴 까봐 두렵습니다. 그것은 아마 "말더듬"을 일으킬 것입니까? 그렇기 때문에 그러한 시스템을 개발하기 전에 더 나은 옵션이 있는지 또는 내가 원하는 것을 경험 한 사람이 있는지 알고 싶습니다.

미리 감사드립니다.

답변

2

아니요, 가장 효율적인 접근 방법입니다 ... 성능을 위해 화면에 표시되지 않는 모든 항목을 숨 깁니다. 더 나은 성능을 위해 flash.display.DisplayObject::cacheAsBitmap을 고려해야하는 것보다 해당 개체 만 이동하는 경우 ...

대안은 모든 항목을 하나의 스프라이트에 넣고 마스크를 적용한 다음 스프라이트 주위를 이동하는 것입니다. 이는 세계가 제한되어있는 경우에만 제대로 작동하며 ... 작은 ... 그래서 난 greetz

...가 더 옵션이 없습니다,

back2dos 추측

+0

docAsia.com에서 인용문 : "cacheAsBitmap 속성은 대부분 정적 콘텐츠가 있고 확장 및 자주 회전하지 않는 무비 클립에 가장 잘 사용됩니다." - 불행히도, 내 물건을 많이 회전합니다. – Tom

0

글쎄, 당신은 모든 개체를 추적해야합니다,하지만 당신은 실제로 주어진 시간에 작은 금액에 대해 실제로 걱정해야합니다.

이 작업을 수행하는 간단한 방법 중 하나는 게임 영역을 사분면 격자로 나누는 것입니다 (사용하는 것으로 끝내는 사람이 당신에게 달려 있음). 단일 사분면에는 여러 다른 디스플레이 요소가 포함될 수 있습니다. 그러면 우주선이 어느 정사각형에 있는지 알아 내야합니다. 우주선 주위를 훑어 보면서 스캔해야하는 사분면의 최소 수를 알아낼 수 있습니다.

요소가 재생 영역 주위를 이동할 때마다 요소가 어떤 사분면 안에 있는지 지속적으로 업데이트해야합니다.

0

멀티 플레이어 게임 인 Branden Hall의 접근 방식은 플레이어 주변에있는 다른 배의 존재를 쉽게 알릴 수 있기 때문에 사용자의 요구에 훨씬 더 적합합니다 (사용자에게 다음과 같은 정보를 제공하는 것보다 낫습니다). 그 주변에있는 모든 비 - 화면 구성 요소) 뷰포트의 크기에 따라 화면의 사분면 수가 달라질 수 있으므로 항상 현재 사분면의 경계를 확인하여 사분면이 표시되는지 확인해야합니다. 뷰포트.

관련 문제