2017-08-02 428 views
4

的焦點我寫了下面的代碼:如何四個精靈旋轉到這些精靈

int a=0, b=0, c=0, d=0; 
sprite[number[0]].setPosition(160, 600); 
     sprite[number[1]].setPosition(560, 600); 
     sprite[number[2]].setPosition(360, 400); 
     sprite[number[3]].setPosition(360, 800); 
     seiten[number[4]].setPosition(-35, 0); 
     seiten1[number[4]].setPosition(825, 0); 
     sprite[number[0]].setOrigin(200,0); 
     sprite[number[1]].setOrigin(-200,0); 
     sprite[number[2]].setOrigin(0,-200); 
     sprite[number[3]].setOrigin(0,-200); 
     sprite[number[0]].setRotation(a++); 
     sprite[number[1]].setRotation(b++); 
     sprite[number[2]].setRotation(c++); 
     sprite[number[3]].setRotation(d++); 

我想旋轉精靈一樣:爲了這個目的enter image description here 不幸的是,這段代碼doesn't工作。我如何改進我的代碼?

編輯:

爲了更好地理解: 我有十個精靈用不同的顏色,他們四人被顯示在遊戲畫面上。巧合決定了哪個精靈將被顯示,但是他們的每個精靈都有不同的顏色。現在我想旋轉圖像中顯示的通道中的四個精靈。這四個精靈應該打開粉紅​​色的精靈,這實際上並不存在於我的代碼中。這個粉色精靈只是旋轉中心的一個符號(P(360 | 600))。四個精靈在同一條車道上旋轉。
使用我的代碼,四個精靈旋轉,但不在圖像中顯示的相同車道上。我希望我的問題現在更清楚。

回答

0

我猜你可以使用sprite.rotate()並將sprite.setorigin()設置爲你想旋轉的點。

+0

不,那是行不通的。 – user8340536

0

試試這個:

Sprite sprites[],centralSprite; 
float centerX=200,centerY=200,radius=100; 
SpriteBatch spriteBatch; 

@Override 
public void create() { 

    spriteBatch=new SpriteBatch(); 

    Texture badlogic=new Texture("badlogic.jpg"); 
    centralSprite=new Sprite(badlogic); 
    centralSprite.setSize(50,50); 
    centralSprite.setPosition(centerX,centerY); 
    centralSprite.setOriginCenter(); 

    sprites=new Sprite[4]; 

    for (int i=0;i<sprites.length;i++) { 
     sprites[i] = new Sprite(badlogic); 
     sprites[i].setSize(50,50); 
     sprites[i].setRotation(90 * i); 
     sprites[i].setPosition(centerX + radius * MathUtils.cosDeg(sprites[i].getRotation()), 
           centerY + radius * MathUtils.sinDeg(sprites[i].getRotation())); 
     sprites[i].setOriginCenter(); 
    } 

} 

@Override 
public void render() { 

    Gdx.gl.glClearColor(1,0,1,1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    spriteBatch.begin(); 

    for (int i=0;i<sprites.length;i++) { 
     sprites[i].rotate(1); 
     sprites[i].setPosition(centerX + radius * MathUtils.cosDeg(sprites[i].getRotation()), 
           centerY + radius * MathUtils.sinDeg(sprites[i].getRotation())); 
     sprites[i].draw(spriteBatch); 
    } 

    centralSprite.draw(spriteBatch); 
    spriteBatch.end(); 
} 
+0

是否也可以改變setOrigin中的數字來讓小精靈按我的意願旋轉?我嘗試了很多數字,但沒有成功。 – user8340536

+0

我的解決方案是否不符合您的要求? – Aryan

+0

不,不幸的是,這個解決方案不起作用,特別是不適合我的目的。 – user8340536