2010-03-30 13 views
135

मैं रूबी के साथ एक स्क्रिप्ट बना रहा हूं जिसे प्रति फ्रेम 24 फ्रेम पर फ्रेम प्रस्तुत करना होगा, लेकिन मुझे आदेश भेजने के बीच एक सेकंड के 1/24 वें इंतजार करना होगा। एक सेकंड से भी कम समय के लिए सोने का सबसे अच्छा तरीका क्या है?रूबी नींद या एक सेकंड से भी कम देरी?

+5

की तरह मुझे लगता है कि अपने सामान्य रूप से सबसे अच्छा एक जवाब के साथ सवाल को अद्यतन नहीं करने के लिए? क्या यह उपयोगकर्ताओं को वास्तविक उत्तरों को पढ़ने से हतोत्साहित नहीं करता है? –

+0

आप सही हैं, मेरे अपडेट को हटा दिया गया है। –

उत्तर

184
sleep(1.0/24.0) 

अपने अनुवर्ती अप सवाल यह है कि अगर सबसे अच्छा तरीका है करने के लिए के रूप में: नहीं, आप नहीं-तो-चिकनी फ़्रेमदर मिल सकता है क्योंकि प्रत्येक फ्रेम के प्रतिपादन उतना ही समय नहीं लग सकता है।

आप इन समाधानों में से एक कोशिश कर सकते:

  • एक टाइमर जो 24 बार एक दूसरे आग ड्राइंग कोड के साथ प्रयोग करें।
  • जितना संभव हो सके उतने फ्रेम बनाएं, प्रति फ्रेम के अनुसार पारित समय के आधार पर गति बनाएं।
+14

@Funkodebat मुझे यकीन है कि हर बुनियादी रूबी रनटाइम आपके लिए यह करता है। –

+1

रूबी उस सही याद करेंगे? –

+2

@ जोसेफ सिल्वाशी: मुझे रूबी दुभाषिया में कोई अंतर्दृष्टि नहीं है, लेकिन रूबी मिरी डिफ़ॉल्ट रूप से ज्ञापन नहीं करती है। लेकिन मुझे उम्मीद है कि स्रोत कोड को बाइट कोड में परिवर्तित करते समय यह इस प्रकार का अनुकूलन करता है। –

86

सोने के लिए पास नाव, sleep 0.1

संबंधित मुद्दे