2013-01-24 10 views
6

मेरी स्कूल प्रोजेक्ट के कारण मुझे केवल विंडोज फॉर्म का उपयोग करके एक गेम बनाना होगा ..सी # विंडोज फॉर्म का उपयोग कर चिकनी एनीमेशन कैसे बनाएं?

मैंने 2 डी रेसिंग गेम बनाने का निर्णय लिया है। तो अब मुझे कार छवि को स्थानांतरित करने की आवश्यकता है। इसे स्थानांतरित करने के लिए मैंने कुंजीडाउन ईवेंट के साथ कार को एनिमेट करने का प्रयास किया, हालांकि एनीमेशन वास्तव में विफल रहा है .. तो क्या एनीमेशन बनाने का कोई और तरीका है? या किसी भी तरह से इसे खत्म करना संभव है? (कार के लिए मैं एक पिक्चरबॉक्स का उपयोग करता हूं जो फॉर्म में डॉक किया गया है और इसकी पेंट इवेंट में कार को दाएं विंडो की स्थिति में फिर से खींचा जा रहा है।)

+0

मेरा सुझाव है कि आप डबल बफरिंग पर पढ़ लें। – lahsrah

+0

काफी बड़ा विषय। यह धागा कुछ पॉइंटर्स प्रदान कर सकता है: http://stackoverflow.com/questions/188349/simple-animation-using-c-windows-forms –

+0

जो आपने अभी तक किया है पोस्ट करें। –

उत्तर

5

इस पोस्ट में अपने मुद्दों को हल करना चाहिए: simple-animation-using-c-windows-forms

वह विवरण कैसे वह चारों ओर एक खिड़कियों के रूप में एनीमेशन कोडिंग चला गया और आपके कुछ प्रश्नों को शामिल किया गया।

यदि यह हल नहीं होता है, तो कुछ एक्सएनए पुस्तकालयों का उपयोग करके फ्रीमैन ने कहा।

2

आपके द्वारा प्रदान किए गए विवरण से, मैं यह कह सकता हूं, अगर आप बनाना चाहते हैं एक मिनी-गेम मैं आपको कुछ एक्सएनए लाइब्रेरीज़ के साथ डब्ल्यूपीएफ का उपयोग करने की सलाह दूंगा, क्योंकि WinForms वास्तव में एक बहुत ही प्रभावशाली ग्राफिक अनुभव को सक्षम करने के लिए नहीं हटाया जाता है, बल्कि यह सृजन सरल जीयूआई उपकरण का समर्थन करता है। कभी-कभी डबल बफरिंग भी ज्यादा मदद नहीं करता है।

+0

इसके लिए SCHool प्रोजेक्ट के लिए ... मैं किसी भी अन्य तरीके का उपयोग नहीं कर सकता .. –

+0

कुछ XNA पुस्तकालयों का भी उस मामले में विंडोज़ फॉर्मों के साथ उपयोग किया जा सकता है, और इन पुस्तकालयों को विशेष रूप से प्रबंधित रनटाइम के लिए ग्राफिक्स के प्रतिपादन को अनुकूलित करने के लिए डिज़ाइन किया गया है। – Freeman

0

अच्छी तरह से आप एक आंदोलन-एनीमेशन प्रणाली

 int x = pictureBox1.Location.X; 
     int y = pictureBox1.Location.Y; 
     if (e.KeyCode == Keys.Right) x += 1; 
     else if (e.KeyCode == Keys.Left) x -= 1; 
     pictureBox1.Location = new Point(x, y); 

यह तेजी से बदल x + = 1 x- = 1 और y बनाने के लिए कर सकते हैं + = 1 y- = 1; वाई x- = 3 जैसी बड़ी संख्या में; इसलिए इस कोड में आप तीर कुंजियां हैं लेकिन केवल दाएं और बाएं हैं क्योंकि आप बार-बार चल रहे हैं ताकि आप केवल दाएं स्थानांतरित हो जाएं और

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