अरे मुझे पता है कि इसके बारे में पहले से ही कुछ पोस्ट हैं - फिर भी मुझे अभी भी समस्या के लिए पर्याप्त उत्तर नहीं मिल रहा है।टाइमस्टैम्प और स्वाइप की गणना
कोको और आईओएस के लिए बस नया, मैं अपना पहला आईओएस गेम विकसित करने के बीच में हूं। इस खेल में मैं उपयोगकर्ता के स्वाइप की गति की गणना करने में सक्षम होना चाहता हूं। मैं कड़ी चोट गति में लगातार स्पर्श के बीच की दूरी को खोजने में कोई परेशानी हो रही है, लेकिन समय के touchesMoved:
में
छूता के बीच गुजरे का निर्धारण करने में कठिनाई हो रही हूँ मैं वर्तमान स्पर्श के साथ गणना करने के साथ-साथ का ट्रैक रखने एक UITouch
touchesEnded:
मेंके रूप में पिछले पहले से रिकॉर्ड स्पर्श मैं अब कड़ी चोट की गति की गणना करना चाहते हैं, लेकिन जब मैं की तरह कुछ कार्य करें:
डबल timeDelay = event.timestamp - self.previousTouch.timestamp;
यह हमेशा 0.
हालांकि देता है, जीसीसी का उपयोग कर रहा है कि दो timestamps वास्तव में ही नहीं हैं देखने के लिए सक्षम हूँ। इसके अतिरिक्त, निरीक्षण के बाद मैंने देखा कि इन घटनाओं के लिए एनएसटीइम अंतराल मूल्य ~ 10^(- 300) की परिमाण पर थे। यह अजीब लगता है क्योंकि एक एनएसटीइमइंटरवाल को सिस्टम शुरू होने के बाद सेकंड की रिपोर्ट करना चाहिए?
मैंने पिछले स्पर्श के एनएसडीएटी का ट्रैक रखने का प्रयास किया है और इसे [NSDate timeIntervalSinceNow] के साथ संयोजन के साथ उपयोग किया है। इससे भी अजनबी परिणाम सामने आए, हर बार 6 के आसपास मूल्य लौटा। दोबारा, चूंकि टाइमर इंटरवलसेंस नाउ NSTimeInterval
लौटाता है, यह मान बहुत अजीब है।
मुझे टाइमस्टैम्प के बारे में क्या समझ नहीं रहा है? आयोजन? इस पर किसी भी मदद की सराहना की जाएगी! अपने समय के लिए धन्यवाद
कुछ समर्थन कोड:
sampleController.h में:
@property(nonatomic) UITouch* previousTouch
@property(nonatomic) UITouch* currentTouch
sampleController.m में:
@synthesize previousTouch = _previousTouch, currentTouch = _currentTouch;
...
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self.currentTouch = [[event allTouches] anyObject];
// do stuff with currentTouch
}
...
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
self.previousTouch = self.currentTouch;
self.currentTouch = [[event allTouches] anyObject];
// do stuff with currentTouch
}
...
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
float distanceMoved = [self.touch locationInView:self.playView].x -
[self.touch previousLocationInView:self.playView].x;
// attempt 1
double timeElapsed = self.currentTouch.timestamp - self.previousTouch.timestamp;
// attempt 2
double timeElapsed = event.timestamp - self.previousTouch.timestamp;
// do stuff with distanceMoved and timeDelay
}
iOS5 के लिए इस है 'UIGestureRecognizer' में अंतर्निहित कार्यक्षमता। –