2016-09-18 2 views
0

나는 여러 장의 카드가있는 카드 게임을 쓰고 있는데,이 카드는 사용하지 않은 데크와 플레이어의 손에 겹쳐 쌓일 것입니다.LibGDX - 액터가 서로 겹쳐서 그려지 지 않습니다.

현재 시작시 화면에 100 명의 카드 액터를 모두 추가하여 필요한 경우 추가를 관리 할 필요가 없습니다. 그들은 모두 서로의 위에서 시작하고 일부는 카드 더미 일 뿐인 플레이어의 손으로 처리됩니다. 이론적으로 5 인 게임의 경우 6 개의 카드 만 보입니다. 데크와 각 플레이어의 손 위로 가기.

다른 누군가가 영리한 방법을 사용하여 6 개의 그리기 방법 만 표시되는 배우에게 표시되도록하거나 또는이 모든 것을 직접 관리해야한다고 생각하길 원하십니까?

내가 할 경우 배우가 필요할 때만 추가하거나 보이지 않게 추가 한 다음 필요할 때 볼을 설정하도록 제안 하시겠습니까?

또는 다른 방법?

+1

필요에 따라 표시/비 표시로 설정했습니다. 나는 그것이 가장 쉬울 것이라고 생각한다. – Tenfour04

+0

그래서 사전에 모두 추가 하시겠습니까? 실제로 보이지 않거나 작동하지 않는 영리한 방법이 없습니까? –

+0

더 많은 일을하고 CPU를 많이 사용하는 무차별적인 힘. 카드가 완벽하게 직사각형이 아닌 경우 (둥근 모서리 없음). 그런 다음 다시 정면으로 정렬하고 깊이 테스트를하여 그릴 수 있습니다. 그것은 과잉을 제거 할 것입니다. – Tenfour04

답변

1

많은 계산을 절약하기 위해 카드 이미지를 6 번 렌더링 할 수 있습니다. 카드가 처리중인 경우 화면 전체를 가로 질러 7 번만 렌더링됩니다. 이렇게하면 많은 수의 객체를 그리는 메서드를 호출하지 않아도됩니다.

+0

그래, 내가해야할 일이야. 그냥 조금 clunky 느낀다 –

+0

이것은 결국 내가 한 일이다. 내 SO 역사를 정리해 줘서 고마워. –

0

각 더미에 하나의 카드 만 보이는 경우 스택을 사용할 수 있습니다. 스택은 한쪽 끝에서 한 번에 하나씩 요소에 액세스하는 배열과 같습니다. 그런 다음 스택의 맨 위 카드에서만 그리기 메서드를 호출합니다 (peek). 그런 다음 상단 카드를 버리고 다음 카드를 상단 (팝)으로 만듭니다.

일부 자습서 및 예 :

tutorialspoint.com

princeton.edu

또는 그냥 "자바 스택을"구글 그것의 사용이 매우 간단합니다.

+0

나는 이런 식으로 생각하고 있었다. (실제로 스택 클래스가 있다는 것은 몰랐지만, 나는 arraylist를 사용하려고했다.) LibGDX에는 자동으로 오버 드로를 처리하는 기능이 있기를 바라면서 이것이 제 생각에 최후의 수단이라고 생각합니다. –

+0

Libgdx 자동 핸들링에 대해 어딘가에서 (지금은 페이지를 잃어 버렸습니다.) 뒤에서 뭔가를 그리는 중이었고, 뒤에서 다른 것이 있더라도 맨 앞의 액터 만 그립니다. 어쨌든 자동으로 그렇게됩니까? –

+0

스택의 맨 위 카드에서만 그리기 방법을 호출하면 오버 드래그 할 가능성이 없습니다. – IronMonkey

관련 문제