首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据角速度改变速度

根据角速度改变速度
EN

Stack Overflow用户
提问于 2012-07-04 04:57:50
回答 1查看 510关注 0票数 0

我滚动我的背景的速度值为float speed = 50;我想改变这个速度值取决于我的精灵在背景上的角度,所以它看起来像是当它转弯时精灵减速。我所有的存取器和变更器都设置好了,我只是不能计算出根据精灵的角速度来改变背景速度的公式。

这是我的赋值函数,无论我用什么公式给我赋值,它都会从我的update方法中的每个刻度中去掉,如下所示:

代码语言:javascript
复制
-(void) setSpeed:(float) value
{
    Speed -= value;
}

然后,为了让背景真正移动,我使用:

代码语言:javascript
复制
-(void) update:(ccTime)delta
{
    if (background.position.y < background2.position.y)
    {
        background.position = ccp(background.contentSize.width / 2, background.position.y - speed * delta);
        background2.position = ccp(background.contentSize.width / 2, background.position.y + background.contentSize.height);
    }
    else
    {
        background2.position = ccp(background2.contentSize.width / 2, background2.position.y - speed * delta);
        background.position = ccp(background2.contentSize.width / 2, background2.position.y + background.contentSize.height);
    }

    //reset
    if (background.position.y <-background.contentSize.height / 2)
    {
        background.position = ccp(background.contentSize.width / 2 ,background2.position.y + background2.contentSize.height);
    } 
    else if (background2.position.y < -background2.contentSize.height / 2)
    {
        background2.position = ccp(background2.contentSize.width / 2, background.position.y + background.contentSize.height);
    }
}

有什么想法吗?

编辑:

我想一个更好的方法是让背景的速度值完全由玩家精灵旋转产生的公式决定,而不是我将速度初始化为50。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-04 07:37:31

数学时间!:D

你想要的是找到旋转后的向量的y分量。矢量的大小等于你的速度(也就是速度)。

老提醒:所以-!

我们将使用CAH: Cosine(angleInRadians) =相邻/斜边...在这种情况下,角度是已知的(精灵旋转),斜边是已知的(精灵的模拟速度),相邻的是背景在y方向上的未知速度。所以,我们求解“相邻”..。

关于代码:

代码语言:javascript
复制
float spriteSpeed = 50.0;
...
float radians = -CC_DEGREES_TO_RADIANS(yourSprite.rotation);
float backgroundYSpeed = cosf(radians) * spriteSpeed;

您还可以同时使用Sine来水平移动背景:

代码语言:javascript
复制
float backgroundXSpeed = sinf(radians) * spriteSpeed;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11319073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档