cocos2d で簡単な物理ゲームを作成しており、スワイプの速度でパーティクルを発射したいと考えています。速度を取得するには、2 回タッチして (位置の差)/(タイムスタンプの差) を求める必要があります。私の問題は、2回タッチできないことです。いくつかの方法を試しましたが、どれもうまくいきません。
ファーストタッチを保存してみた
@property (nonatomic, strong) UITouch *firstTouch;
...
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
[self setFirstTouch:touch];
NSLog(@"first touch time 1: %f", self.firstTouch.timestamp);
}
-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
NSLog(@"touch ended");
NSLog(@"first touch time 2: %f", self.firstTouch.timestamp);
NSLog(@"end of touch time: %f", touch.timestamp);
}
しかし、これにより毎回タイムスタンプの差が0になります。firstTouch を最新のタッチに置き換えるようです
これが置き換えられたポインターに何か問題がありますか?
おそらく、ccTouchesMoved から最後の 2 つのタッチを取得できますか?