2015-01-13 138 views
1

我需要的是與運營商一起旋轉飛船,我要解釋,我從一開始就開始有這樣的:在矢量如何隨着精靈旋轉矢量?

Step 1

點A爲原點,並與一致宇宙飛船的精靈。 現在,我的問題是,當航天器旋轉時,飛船頭部的紅點(這是另一個精靈)必須留在頭上。

enter image description here

如果我與觸摸屏旋轉飛船,我可以用紅點停留B點定期。

這是因爲我不得不餵食太空船,所以我可以比較船舶的起點和紅點的位置,以獲得它必須繼續的方向。

我是新來的libgdx。 我希望我很清楚。

謝謝

提取我的代碼:

sprite.setPosition(Gdx.graphics.getWidth()/2 - sprite.getWidth()/2, Gdx.graphics.getHeight()/2 - sprite.getHeight()/2); 
    point.setPosition(sprite.getX() + (sprite.getWidth()/2 - point.getWidth()/2), sprite.getY() + (sprite.getHeight()/2 + point.getHeight()/2)); 

    if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)){ 

     if(Gdx.input.getX() < Gdx.graphics.getWidth()/2) 
     { 
      //System.out.println("x: " + Gdx.input.getX() + " - y: " + Gdx.input.getY()); 
      sprite.setRotation(rotation++); 
      point.setPosition(sprite.getX() + (sprite.getWidth()/2 - point.getWidth()/2), sprite.getY() + (sprite.getHeight()/2 + point.getHeight()/2)); 
     } 
     else 
     { 
      //System.out.println("x: " + Gdx.input.getX() + " - y: " + Gdx.input.getY()); 
      sprite.setRotation(rotation--); 
      point.setPosition(sprite.getX() + (sprite.getWidth()/2 - point.getWidth()/2), sprite.getY() + (sprite.getHeight()/2 + point.getHeight()/2)); 
     } 
    } 

編輯答案 後,我已經添加了代碼演員

public class MyActor extends Actor { 
    Sprite sprite; 

    public MyActor() { 
     sprite = new Sprite(); 
     sprite.setTexture(new Texture("rocket.png")); 

     setWidth(sprite.getWidth()); 
     setHeight(sprite.getHeight()); 
     setBounds(0, 0, getWidth(), getHeight()); 
     setTouchable(Touchable.enabled); 
     setX(200); 
     setY(100); 
    } 

    @Override 
    public void draw(Batch batch, float parentAlpha) { 
     Color color = getColor(); 
     batch.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
     batch.draw(sprite, getX(), getY()); 
    } 
} 

,但我不知道的實施...你能給我一些建議嗎?

回答

0

我建議你使用Actor而不是Sprite

您將可以訪問許多不可用於精靈的高級功能。

你甚至可以按照你的意願對演員進行分組。

參考:Scene2D

希望這有助於。
祝你好運。

+0

謝謝你,我編輯了問題 –

1

只需旋轉紅點即可旋轉飛船。只是偏移紅點的旋轉中心,使其處於飛船旋轉點的相同位置。因此,不要在飛船中心周圍圍繞飛船中心旋轉紅點。

+0

好的解決方案!謝謝 –