घर
Top.Mail.Ru Yandeks.Metrika
मंच: "खेल";
वर्तमान संग्रह: 2003.07.03;
डाउनलोड करें: [xml.tar.bz2];

नीचे

मदद कृपया इसी तरह की शाखाएँ खोजें


Катя   (2002-12-02 16:09) [0]

उन्होंने मुझे यूनी के लिए एक कार्यक्रम (खेल) लिखा। बात यह है कि आपको डेल्फीएक्सएनयूएमएक्स घटकों के एक मानक सेट का उपयोग करने की आवश्यकता है, अर्थात, डेल्फी काम नहीं करेगा;)। इसलिए, मैंने एक आदिम खेल (जैसा कि अनुरोध किया गया है) लिखा है, जिसमें प्रत्येक टाइमर टिक के साथ form5.canvas पर सब कुछ तैयार किया गया है। जैसी कि उम्मीद थी, ग्राफिक्स चमक रहे हैं। कहीं न कहीं मैंने देखा कि इसे कैसे पार किया जाए, लेकिन यह वह जगह है --- मुझे याद नहीं है। :(

शायद किसी को पता है और मदद करेगा?



MBo   (2002-12-02 16:12) [1]

बिटमैप पर आकर्षित करें, फिर इसे कैनवास पर बिटब्लेट करें



Катя   (2002-12-02 16:17) [2]

> MBo:
मुझे यह समझ में नहीं आया कि आपने क्या सलाह दी ... मैं आपसे और अधिक विस्तार से पूछता हूं?



Mirovodin   (2002-12-02 16:23) [3]

हम बफर (टीबीटैम्प) का आयोजन करते हैं;

सभी अच्छे लग रहे हैं का निरीक्षण करने की प्रक्रिया इस प्रकार है:

प्रक्रिया TFrom1.UpdateFrame;
शुरू करना
...
बिटब्ल्ट (बफ़र.कैनवास.हैंडल, ...); // बफ़र के लिए आवश्यक सब कुछ ड्रा करें
...
बिटब्ल्ट (बफ़र.कैनवास.हैंडल, ...);
...
बिटब्ल्ट (स्व.कैनवास.हैंडल, ...., बफ़र.कैनवास.हैंडल, .., एसआरसीओसीओपी);
अंत;

सभी Bitblt अदृश्य बफर बफर पर करते हैं और फिर इसे कैनवस फॉर्म पर फेंक देते हैं।



Axis_of_Evil   (2002-12-02 16:24) [4]

TTNread के रूप में 1) टाइमर
2) देखें "BitBlt" मदद

एमबीओ सुनो वह स्मार्ट है

अपना मेल यहां डालें, एक उदाहरण भेजें



MBo   (2002-12-02 16:28) [5]

यदि, मिरोवोडिन उदाहरण के बावजूद, WinAPI BitBlt फ़ंक्शन का उपयोग करने में कठिनाइयाँ हैं, तो आप Canvas.Draw विधि (0,0, Bitmap) का उपयोग कर सकते हैं



Катя   (2002-12-02 16:32) [6]

मेरा ई-मेल: KAT9I@mail.ru



Катя   (2002-12-02 16:34) [7]

वैसे, यह ठीक है कि मैं ग्राफिक्स कैसे प्रदर्शित करता हूं (Canvas.Draw (x, y, Bitmap)), यह अभी भी चमकता है



Катя   (2002-12-02 16:58) [8]

शायद कोई एक उदाहरण भेजेगा;) मुझे बहुत खुशी होगी ...

मेरा ई-मेल: KAT9I@mail.ru



MBo   (2002-12-02 17:15) [9]

डबलबफ़र: = एक फ़ॉर्म इंस्टॉल करने के लिए अभी भी सही है, लेकिन यहां यह शायद ही प्रभावित करेगा।
क्या आपने पकड़ा है कि आपको सभी को एक बिटमैप पर आकर्षित करने की आवश्यकता है, फिर इसे फ़ॉर्म पर कॉपी करें?



Катя   (2002-12-02 17:50) [10]

मैंने पकड़ा :)
यही नहीं पकड़ा भी गया

प्रक्रिया TFrom1.UpdateFrame; शुरू करना ... बिटब्ल्ट (बफ़र.कैनवास.हैंडल, ...); // बफ़र के लिए आवश्यक सब कुछ ड्रा करें ... बिटब्ल्ट (बफ़र.कैनवास.हैंडल, ...); ... बिटब्ल्ट (स्व.कैनवास.हैंडल, ...., बफ़र.कैनवास.हैंडल, .., एसआरसीओसीओपी); अंत;



MBo   (2002-12-02 17:54) [11]

यह उस मामले के लिए एक उदाहरण है जब आपको बफर को अन्य बिटमैप के बफर टुकड़ों के साथ भरने की आवश्यकता होती है। क्या वास्तव में अस्पष्ट है?
कार्य को थोड़ा और विस्तार से बताएं कि आप क्या और कैसे आकर्षित करते हैं।



Катя   (2002-12-02 18:05) [12]

यहाँ उदाहरण के लिए ...

इकाई Simpe_game; इंटरफ़ेस का उपयोग करता है । । । वर bt: TBitmap; । । । प्रक्रिया TForm1.FormCreate (प्रेषक: TObject); शुरू करना द्विगुणित: = सत्य; bt: = TBitmap.Create; bt.TransparentColor: = rgb ($ FF, $ FF, $ FF); bt.Transparent: = true; bt.LoadFromFile (extractfiledir (Application.exename) + "\ _ fon.bmp"); अंत; प्रक्रिया TForm1.Timer1Timer (प्रेषक: TObject); शुरू करना form1.Canvas के साथ शुरू करते हैं ड्रा (0,380, bt) अंत;

जैसे ... बीटी - पलक



MBo   (2002-12-02 18:48) [13]

मैं इस कोड के साथ ब्लिंक नहीं करता



Катя   (2002-12-02 20:33) [14]

अजीब: (((



Ev_genus   (2002-12-03 14:29) [15]

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

गुड लक।



Shadow   (2002-12-03 15:25) [16]

डेस्कटॉप पर सही आकर्षित करने का प्रयास करें।



Катя   (2002-12-03 17:17) [17]

2 छाया, कि आप हास्यास्पद बेवकूफ ...



Владимир Васильев   (2002-12-03 17:18) [18]

यदि आप पूरे फॉर्म को खुद खींचते हैं और खेल की पृष्ठभूमि पूरी तरह से फॉर्म भरती है - तो आप आसानी से फॉर्म की पृष्ठभूमि खींच सकते हैं

प्रक्रिया TForm1.FormCreate (प्रेषक: TObject);

....

brush.Style:=bsClear;

.....



Катя   (2002-12-03 17:30) [19]

नहीं, यह काम नहीं करता है .... यह वैसे भी चमकता है ...



Владимир Васильев   (2002-12-03 17:35) [20]

और टाइमर अंतराल क्या है?



Катя   (2002-12-03 20:03) [21]

60 ... लेकिन अगर आप 20 या यहां तक ​​कि 1 डालते हैं, तो यह अभी भी चमकता है;)

थ्रेड किसने लिखा उदाहरण plz .... मेरे लिए साबुन पर ... :)

KAT9I@mail.ru




Док   (2002-12-04 11:22) [22]

मैंने प्रोग ..... में निमिष भी किया था। डायग्नोस: एक धीमी गति या बड़ी संख्या में ऑब्जेक्ट।



Mirovodin   (2002-12-04 11:35) [23]

निदान सही नहीं है :) एक सामान्य TImageList और ~ 400x400 सतह का उपयोग करते समय - IntelNNUMX पर किसी भी ब्लिंकिंग के बिना 70-80fps। लेख में काम का उदाहरण:

http://delphigfx.mastak.ru/2d/004/2d_4.htm



Док   (2002-12-04 12:41) [24]

2 मिरोवोडिन:

अच्छा ... हाँ वास्तव में, TImageList का उपयोग काम को गति दे रहा है। लेकिन अगर यह बस इस्तेमाल नहीं किया जा सकता है? यदि समान वस्तुओं के 40 पर कोई व्यक्ति उड़ान भरता है तो क्या होगा? पलक होगी ...



Mirovodin   (2002-12-04 12:47) [25]

यदि आपको Transparen की आवश्यकता नहीं है, तो आप बिना ImageList के कर सकते हैं।
उचित रूप से टीबीटैम्प और बिटब्ल्ट का उपयोग करें - कोई भी झपकी नहीं होगी, यहां तक ​​कि बड़ी संख्या में वस्तुओं के साथ, मैंने एक से अधिक बार जांच की है। आपको हमेशा एक बफर का उपयोग करना होगा और सब कुछ ठीक होगा। मेरा उदाहरण ~ 10x10 = 100 शीर्षक + स्प्राइट + कर्सर (स्प्राइट) था। यह सब बफर में एक पास में तैयार किया गया था, और फिर फॉर्म पर। कोई पलक नहीं।

बेशक, यदि आप आकार में TImage को स्थानांतरित करते हैं, तो निमिष अपरिहार्य है :)



Катя   (2002-12-04 14:44) [26]

plz sorsy ...: ((



Mirovodin   (2002-12-04 15:01) [27]

http://delphigfx.mastak.ru/2d/001/2d_1.htm
http://delphigfx.mastak.ru/2d/004/2d_4.htm



a3m   (2002-12-12 17:51) [28]

पूरी तरह से Ev_genus से सहमत हैं। यह सब फॉर्म के रंग में भरने के कारण आंशिक रूप से झपकी लेता है। आपको WM_EraseBkgnd संदेश को इंटरसेप्ट करके इससे लड़ना होगा:

फॉर्म क्लास में, हम एक ऐसी प्रक्रिया की घोषणा करते हैं जो पेंटिंग के बारे में संदेश पकड़ेगी:

प्रक्रिया NULL (var संदेश: TMessage); संदेश WM_EraseBkgnd;

और:

प्रक्रिया TForm1.NULL;
शुरू करना
अंत;

फिर फार्म पर एक स्पष्ट विवेक के साथ।



zavdim   (2002-12-13 07:15) [29]

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



farhad   (2003-01-14 11:20) [30]

तो मेरा प्रिय आपको यह प्रश्न:
मैं डेल्फीएक्सएनयूएमएक्स में गेम क्यों नहीं लिख सकता और डेल्फीएक्स का उपयोग कर सकता हूं?
यदि आप विशेष रूप से कर सकते हैं ...।



M4   (2003-01-22 07:57) [31]

मुझे लगता है कि अपडेट (रिड्रॉइंग) एक टाइमर पर नहीं किया जाना चाहिए, लेकिन जब WM_PAINT संदेश आता है। कोशिश करो, लेकिन मैं कुछ भी नहीं वादा =)



पन्ने: 1 पूरी शाखा

मंच: "खेल";
वर्तमान संग्रह: 2003.07.03;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.64 एमबी
समय: 0.039 c
1-7423
मीरामैक्स
2003-06-20 12:58
2003.07.03
PopupMenu


1-7397
मैक्सिम Pshevlotsky
2003-06-23 04:53
2003.07.03
माउस कर्सर के साथ फ़ॉर्म को खींचना


9-7282
एलियन अज़
2003-01-16 05:06
2003.07.03
GLscene के पेशेवरों और विपक्ष


1-7380
anatolyk
2003-06-22 19:51
2003.07.03
फॉर्म कॉल


7-7735
DeadMeat
2003-04-21 17:28
2003.07.03
मेरा कंप्यूटर





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский