我以速度值滚动我的背景,float speed = 50;
我想根据我的精灵在背景上的角度来改变这个速度值,所以看起来精灵在转弯时正在减速。我所有的访问器和修改器都设置好了,我只是无法计算出根据精灵角速度改变背景速度的公式。
这是我的 mutator,无论我使用什么公式来赋予我价值,它都会在我的更新方法中的每个刻度中被删除,如下所示:
-(void) setSpeed:(float) value
{
Speed -= value;
}
然后要真正让背景移动,我使用:
-(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,对公式有什么想法吗?