如何使用LibGDX順時針旋轉圖像?我看的是一個圖像加載時,假設一個星星,我需要旋轉它從屏幕開始水平結束,與星旋轉,我怎麼能在libgdx中做到這一點?使用LibGDX順時針旋轉圖像
回答
當您使用SpriteBatch繪製紋理時,可以使用其中一個包含旋轉的繪製函數。這Javadoc開始所有的抽獎功能:SpriteBatch
你可以把一個變量的位置和旋轉,並在每次渲染,使其旋轉,同時水平移動時提高位置的旋轉和x分量。
您還可以使用Scene2D操作。我在這裏有一個例子,小行星類的東西掉在屏幕上並旋轉。
http://www.netthreads.co.uk/2012/02/09/libgdx-scene2d-demo-with-scene-transitions/
以下是實現轉動的任何精靈
batch.draw(sprite,(Gdx.graphics.getWidth() - sprite.getRegionWidth())/2.0f,(Gdx.graphics.getHeight() - sprite.getRegionHeight())/2.0f,sprite.getRegionWidth()/2.0f,sprite.getRegionHeight()/2.0f, sprite.getRegionWidth(), sprite.getRegionHeight(), 1f, 1f,count, false);
if(count < 0.0f)
count = 360.0f;
else
count --;
最初計數器設置爲
private float count =360.0f;
你也一樣可以做到這樣的:在您創建
方法
sprite.setOrigin(sprite.getWitdh() /2f, sprite.getHeight() /2f);
sprite.setPosition(0, 200); //200 it's a example
上渲染(浮動三角洲)
sprite.setX(sprite.getX() + delta).setRotation(sprite.getRotation() + delta);
逆時針旋轉和水平.. 創建textureRegion 然後
Sprite sprite = new Sprite(textureRegion, 0, 0, 128, 128);
sprite.setPosition(++mX, 0);
angle++;
sprite.setRotation(angle);
sprite.draw(batcher);
Libgdx給你做的更多,其中一個方法: 您可以使用Scene2D
並將Image
添加到您的Stage
。 Image
是Actor
子類,所以你可以添加Action
s到它:
Image myImage = new Image(myTexture);
myImage.addAction(Actions.parallel(Actions.moveTo(endX, endY, duration), Actions.rotateBy(degrees, duration)));
myImage.setPosition(startX, startY);
myImage.setOrigin(sizeX/2, sizeY/2);
stage.add(myImage);
在render
,你可以調用stage.act()
,其更新的位置,旋轉,縮放......所有Actor
S的,然後調用stage.draw()
這將爲您所有的Actor
s調用draw()
。 圖像已經處理了draw()
,所以你不需要再關心它了。
你也可以不用scene2d
,自己更新的一切:
可以存儲在度int rotationSpeed
/秒
可以存儲int moveSpeed
在單位/秒(也許像素,但我會建議用相機或視口並使用您自己的設備,這在所有設備上都相同)
存儲float angle
,這是Texture
的當前旋轉並存儲Vector2 position
,其中包含您的Texture
的x和y位置。
如果你想要在x和y方向移動,你還可以存儲一個Vector2 direction
,這是一個規範化的Vector
,它給出了x和y方向的移動百分比,但那是一個不同的故事。
然後在你的更新的一切:
angle+=delta*rotationSpeed;
angl%=360; // Limits the angle to be <= 360
while (angle < 0) // Unfortunally the "modulo" in java gives negative result for negativ values.
angle+=360;
position.x+=direction.x*moveSpeed*delta;
position.y+=direction.y*movSpeed*delta;
spriteBatch.draw(yourTextureRegion, position.x, position.y, sizeX/2, sizeY/2, sizeX, sizeY, scaleX, scaleY, angle);
順時針旋轉只需使用一個負rotationSpeed
或angle-=
更換angle+=
。
希望它有幫助。
這是一個簡單的在libgdx中旋轉actor。首先,你需要設置的由來:
img.setOrigin(getWidth/2,getHeight/2);
然後你就可以順時針旋轉和逆時針根據您的需要:
img.rotate(2f); or img.rotate(-2f);
所以下面的示例爲我工作(無限旋轉)
方法1:(推薦)
loadingActor.addAction(Actions.repeat(RepeatAction.FOREVER, Actions.rotateBy(360, 1)));
方法2:
Image loadingActor = new Image(AssetsController.getInstance().getLoading());
loadingActor.setOrigin(Align.center);
final SequenceAction infiniteRotate = Actions.sequence();
infiniteRotate.addAction(Actions.rotateTo(0 , 0f));
infiniteRotate.addAction(Actions.rotateTo(360 , 1f));
loadingActor.addAction(Actions.forever(infiniteRotate));
- 1. 順時針/逆時針旋轉圖像
- 2. 順時針旋轉90度的圖像
- 3. 如何順時針旋轉圖像?
- 4. Kineticjs - 順時針旋轉圖像90度
- 5. jQuery:以90度增量順時針/逆時針旋轉圖像?
- 6. 如何在android中順時針和逆時針旋轉圖像?
- 7. 順時針和逆時針方向旋轉圖像
- 8. 使用javascript在div內順時針或逆時針旋轉圖像
- 9. 使用c中的平移變換順時針和逆時針旋轉圖像#
- 10. 順時針旋轉線
- 11. 旋轉陣列順時針
- 12. 旋轉陣列順時針
- 13. 順時針旋轉UIImageView
- 14. 順時針旋轉圖標360度angularjs
- 15. CSS3 - 順時針旋轉比逆時針
- 16. JQuery-順時針旋轉div並逆時針旋轉
- 17. 用動畫順時針旋轉NSButton
- 18. 如何在jQuery中滾動/順時針和逆時針旋轉圖像?
- 19. 如何順時針或逆時針旋轉圖像,以較短者爲準?
- 20. 如何在android中(在指尖旋轉)順時針和逆時針旋轉圖像?
- 21. Excel旋轉(不轉置)表順時針旋轉90度
- 22. 如何順時針旋轉90度(swift3)
- 23. 旋轉SVG元素順時針
- 24. 2D中的順時針旋轉角度?
- 25. 如何順時針旋轉對象?
- 26. 順時針旋轉鏈接列表
- 27. 順時針旋轉2d向量90度
- 28. 順時針方向旋轉2d形狀
- 29. android libgdx並按順序旋轉動作
- 30. 使用matlab順時針旋轉和追加矩陣
你的問題不是很清楚。你在旋轉紋理,精靈還是圖像?通過「從屏幕開始到屏幕水平結束旋轉,星形旋轉」,你是否想要恆星在旋轉時水平移動? – 2012-02-25 14:57:01
@RahatAhmed:對不起,我有一個紋理,是的,我需要它旋轉,而水平移動 – 2012-02-25 14:58:28