android – Andengine中的旋转图像

android – Andengine中的旋转图像,第1张

概述我们假设外面有漏洞进入屏幕.为此,我们需要有4个坐标(StartX,StartY,TargetX,TargetY).如何将错误旋转到适当的方向?几个小时以来我一直在搞乱这个问题,而且一直无法弄清楚这一部分.所以bug会进入屏幕,但它没有面向正确的方向. (四个坐标是随机数). 我正在学习在学校学到的线条的渐变: int deltaY = TargetY - StartY;int deltaX = 我们假设外面有漏洞进入屏幕.为此,我们需要有4个坐标(StartX,StartY,TargetX,TargetY).如何将错误旋转到适当的方向?几个小时以来我一直在搞乱这个问题,而且一直无法弄清楚这一部分.所以BUG会进入屏幕,但它没有面向正确的方向. (四个坐标是随机数).

我正在学习在学校学到的线条的渐变:

int deltaY = TargetY - StartY;int deltaX = TargetX - StartX;float gradIEnt = (float)deltaY / (float)deltaX;

然后旋转BUG的角度:

float angle = (float) (Math.atan(gradIEnt) * 180 / PI);

然后这里是旋转和移动修改器:

registerEntityModifIEr(new RotationModifIEr(0.3f,angle) {    @OverrIDe    protected voID onModifIErFinished(IEntity pItem) {        super.onModifIErFinished(pItem);        registerEntityModifIEr(new MoveModifIEr(0.8f,StartX,TargetY) {            @OverrIDe            protected voID onModifIErFinished(IEntity pItem) {                super.onModifIErFinished(pItem);            }        });    }});

解决方案更复杂,因为在某个梯度的线上,BUG可以来自两个方向,因此它可以面向两个方向.
我知道1/2的梯度意味着26.56度,而在AndEngine坐标系中它意味着-26.56或-206.56度,这取决于BUG来自哪一侧.

解决方法 尝试这样的事情:

float BUGAngle = 180 + (float) Math.todegrees(Math.atan2((targetY - BUGSprite.getRotationCenterY() - startY),(targetX - BUGSprite.getRotationCenterX() - startX)));BUGSprite.setRotation(BUGAngle);

请原谅长线死亡.

总结

以上是内存溢出为你收集整理的android – Andengine中的旋转图像全部内容,希望文章能够帮你解决android – Andengine中的旋转图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127210.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存