0
I 수 없습니다 얻을 액션을 (내가 이미지 텍스처에 대한 작업을 추가하고 수행하기에 아무런 문제가 없음) .This 내 Card.class 코드 수행하기 위해 내 카드 배우 :LibGDX 배우가 작업을 수행하지 않습니다
public class Card extends Actor {
final float CARD_WIDTH = 500 * cardScale;
final float CARD_HEIGHT = 726 * cardScale;
String face, suit;
public Texture cardFace = new Texture("CardTextures/" + face + suit + ".png");
Vector2 position = new Vector2(0, 0);
public Card(String face, String suit, Vector2 position) {
this.face = face;
this.suit = suit;
this.position = position;
setBounds(position.x, position.y, CARD_WIDTH, CARD_HEIGHT);
}
public Card(String face, String suit) {
this.face = face;
this.suit = suit;
this.position = position;
setBounds(position.x, position.y, CARD_WIDTH, CARD_HEIGHT);
}
@Override
public void act(float delta) {
super.act(delta);
}
@Override
public void draw(Batch batch, float alpha) {
batch.draw(cardFace, position.x, position.y, cardFace.getWidth() * cardScale, cardFace.getHeight() * cardScale);
}
public String getFace() {
return face;
}
public String getSuit() {
return suit;
}
public void setCardPosition(Vector2 position) {
this.position = position;
}
public void setCardFaceTexture() {
cardFace = new Texture(("CardTextures/" + this.getFace() + this.getSuit() + ".png"));
}
}
카드 액터로 동작을 시도 할 때마다 동작하지 않습니다. Create() 메서드에서 작업을 배치 할 때도 작동하지 않습니다. 나는이 시도 :
moveAction = new MoveToAction();
moveAction.setPosition(300f, 0f);
moveAction.setDuration(10f);
Card card = new Card("two", "spades");
card.addAction(moveAction);
이 내 렌더링 방법 : 귀하의 Card
가 자신의 위치 Vector2 position
을 사용
@Override
public void render() {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
updateActorBounds();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
font.draw(batch, "FPS:" + Gdx.graphics.getFramesPerSecond(), TABLE_WIDTH/2 - 65, TABLE_HEIGHT/2 - 10);
batch.end();
}
당신이 무대에 카드를 추가 않았다
귀하의 그리기 방법은 모양을? –
나는 무대 위에서 그려지고 터치 입력을받으며 터치 입력에 따라 위치를 변경할 수 있지만 액션으로 움직일 수는 없다. (나는 그것이 부드럽게 움직이기를 원했다) – SlavenIvanov
어디에서 카드 위치 변수? super.act() 메서드를 호출하는 act를 호출하고 오버라이드 된 draw 메서드에서 batch.draw (cardFace, position.x, position.y, cardFace.getWidth() ...)를 사용하지만 position.x와 .y는 액션이 액터의 위치에서 작동 할 때 업데이트됩니다 (차이가 있는지 알아보기 위해 오버라이드 된 draw에 getX() 및 getY() 메서드를 넣으십시오) –