我正在 cocos2d 中制作一个简单的物理游戏,并希望在滑动时以滑动的速度发射一个粒子。为了获得速度,我需要进行两次触摸并确定(位置差异)/(时间戳差异)。我的问题是我无法进行两次触摸。我尝试了几种方法,但都没有奏效。
我尝试存储第一次触摸
@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 获得最后两次触摸?