如何旋转精灵和移动

Posted

技术标签:

【中文标题】如何旋转精灵和移动【英文标题】:How to rotate sprite and move 【发布时间】:2015-12-26 04:46:46 【问题描述】:

如何移动精灵的正面方向。我已经和引擎 gles 2。我尝试添加精灵,我给了速度,但精灵只是左边,顶部,底部和右边我想要精灵可以交叉方向。即当我旋转精灵的前面时,移动那个方向。怎么能把我的精灵放在前面的位置?所以,如果精灵的前面看底部精灵必须移动底部方向,如果左上精灵的精灵前面方向必须移动左上角。喜欢这张图。。

http://i.stack.imgur.com/muoSg.png

我的代码...

@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
        float pTouchAreaLocalX, float pTouchAreaLocalY) 

    if (pSceneTouchEvent.isActionDown()) 

        //Rotate left button
        if(id==0) 

       shipSprite.setRotation(-10);           

//速度按钮

        if(id==1)
  shipSprite.mPhysicsHandler.setVelocityY(-400);

    return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);

不会交叉(即精灵的前面)...只是在 Y 方向..

【问题讨论】:

欢迎来到 SO!请显示您尝试过的代码,指出您的问题所在。 “给我写代码”问题很可能会被关闭 首先感谢您的回复,我添加了我的代码。我希望有人可以帮助我:/ @MarioTrucco 嗨,你在 andEngine 中没有像精灵前面那样的东西。但是,您可以像 user2413972 的答案中所示那样计算。此外,在使用 box2d 物理时,您不应该单独旋转精灵。而是旋转身体,精灵将跟随旋转。 【参考方案1】:

我不知道和引擎。并且在“andengine move sprite forward”上没有找到任何东西。但我可以提供数学意义:

a - 你的轮换。 不要忘记对向量进行归一化。祝你好运!

shipSprite.mPhysicsHandler.setVelocityX(f.x);
shipSprite.mPhysicsHandler.setVelocityY(f.y);

【讨论】:

以上是关于如何旋转精灵和移动的主要内容,如果未能解决你的问题,请参考以下文章

无法强制我的精灵顺利移动/旋转

使用 SKY SpriteKit 和 Swift 4 移动和旋转精灵

如何使二维精灵在按键方向上以平滑的宽弧移动?

如何在精灵套件中旋转精灵节点?

如何在 Unity 4.3 中旋转精灵?

WebGL—点精灵PointSprite详解: 纹理映射,旋转,缩放,移动