2016-12-04 1 views
0

현재 저는 Libgdx를 사용하여 Java로 트레이딩 카드 게임을 개발하는 중입니다. 각 플레이어는 다양한 능력과 속성을 가진 다수의 카드를 가지고 있습니다. 각 카드 클래스는 Actor 클래스를 확장하지만이 액터에 텍스트를 그릴 수있는 방법이 있는지 궁금합니다. 카드가 이동할 때 이동합니다.Libgdx Actor Text

예를 들어, 각 카드에는 설정 한 체력이 있으며, 카드의 데미지에 따라 다릅니다. 나는이 카드들을 카드에 넣는 가장 좋은 방법이 무엇인지 궁금해했다. 그래서 카드가 움직이면, 그 카드들과 함께 히트 포인트가 움직일 것이다. 때로는 카드가 겹쳐 지거나 겹쳐 지기도합니다.이 경우 카드 하단의 카드 텍스트가 겹쳐지기보다는 상단의 카드에 숨겨지기를 바랍니다.

모든 안내가 크게 감사하겠습니다.

답변

0

libGDX가 제공하는 상속 덕분에 쉽게 솔루션을 얻을 수 있습니다. Group으로

는 (의사 코드)

public class Card extends Group { 

    final private static TextureAtlas ATLAS; 

    static { 

    ATLAS = AssetManager.get("game.pack", TextureAtlas.class); 
    } 

    public enum Type { 

    type1, type2, type3 
    } 

    private Type type; 
    private Image card; 
    private Label text; 
    private int hitPoints; 

    public Card(Type type) { 

    this.type = type; 

    card = new Image(ATLAS.get(type)); 
    text = new Label("HP: " + hitPoints); 

    addActor(card); 
    addActor(text); 
    } 
} 

이것은 당신이 당신의 텍스처 아틀라스의 식별자와 관련된 카드 형식의 열거가 가정 ... 당신이 쉽게 할 수있는 배우이다; 텍스쳐 아틀라스를 사용하지 않는다면 그렇게하는 것이 좋습니다.

게임 로직 클래스에서 나는 Screen 클래스의 확장 일 것이라고 간단히 추측 할 수 있습니다. 등의 사용 사례에 경우 특정 배우 물론 위치의

private Card card; 

@override 
public void show() { 

    card = new Card(Card.Type.type1); 
    stage.addActor(card); 

    // This is an example - as the card and text reside within a group they can be moved as a sole entity relative to their parent 
    card.addAction(moveBy(100, 100, 2, Interpolation.Linear)); 
} 

... 질문은 :

요청