の速度値で背景をスクロールします。背景float speed = 50;
上のスプライトの角度に応じてこの速度値を変更したいので、コーナーを曲がるときにスプライトが遅くなるように見えます。すべてのアクセサーとミューテーターがセットアップされましたが、スプライトの角速度に応じてバックグラウンド速度を変更する式を見つけることができません。
これが私のミューテーターです。値を与えるために使用する式は、次のように更新メソッドのすべてのティックから削除されます。
-(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 で初期化するのではなく、プレーヤーのスプライトの回転によって生成される式で背景の速度値を完全に決定することだと思います。