1.अगर आप कुछ चाहते हैं जो आपके मॉकअप के करीब है तो मैं कणों का उपयोग करूंगा (यह पूरी तरह से उड़ाया गया कण प्रणाली नहीं है)।
एक RenderTexture पर बहुभुज के रूप में अपने कणों को रेंडर करें। कणों पर योगात्मक सम्मिश्रण का उपयोग करना सुनिश्चित करें। बहुभुज के अंदर के कण आसानी से एक दूसरे में मिलेंगे, जबकि बाहर के कण आपको मनचाहा किनारा देंगे। (प्रभाव का एक उदाहरण इस यूट्यूब वीडियो में देखा जा सकता है: एडिटिव पार्टिकल्स वीडियो
अब आपकी मुख्य स्क्रीन पर रेंडरटेक्स्चर को प्रस्तुत करता है और आप कर रहे हैं। रेंडरटेक्स्चर आवश्यक है ताकि कण आपकी पृष्ठभूमि के साथ मिश्रण न करें।
आप सीधे कण बनावट पर त्रिकोण लगाने की कोशिश कर सकते हैं और देखें कि यह कैसे काम करता है। अन्यथा उन्हें अपने "कण सूप" के ऊपर एक अलग परत के रूप में प्रस्तुत करें।
एक अपडेटेड jsfiddle में एक त्वरित मॉकअप बनाया गया जो इस तरह दिखता है
आप यहां अपडेट किए गए डेमो पा सकते हैं
2. प्रत्येक कण में एक वेग और एक मूल होता है। जब आपका खिलाड़ी बहुभुज को छूता है, तो आप प्रत्येक कण वेग को खिलाड़ियों के वेग के अनुपात में बदल देते हैं। एक कण आपके खिलाड़ी से दूर है, खिलाड़ियों के वेग से यह कम प्रभावित होता है।
कणों के वेग की गणना करने का सूत्र कुछ इस प्रकार होगा:
//player.velocity and particle.velocity are vectors
//k is a factor to enhance or weaken the influence of players velocity
var distanceToPlayer = (player.position - particle.position).length();
particle.velocity = particle.velocity + ((k * player.velocity) + particle.velocity) * (1/distanceToPlayer);
कण की स्थिति की गणना करने के लिए आप इसे अपनी अपडेट विधि में रखें:
var speedY = -(springConstant * (particle.position.y - particle.origin.y)) - (dampingFactor * particle.velocity.y);
var speedX = -(springConstant * (particle.position.x - particle.origin.x)) - (dampingFactor * particle.velocity.x);
particle.position.y = particle.position.y + speedY;
particle.position.x = particle.position.x + speedX;
particle.velocity.x = particle.velocity.x + speedX;
particle.velocity.y = particle.velocity.y + speedY;
यह आपको एक "तरल पदार्थ" देना चाहिए, जहां प्रत्येक कण अपने मूल के चारों ओर घूमता है जब खिलाड़ी तरल पदार्थ को हिलाता है। स्प्रिंगकॉन्स्टैंट बदलता है कि एक कण अपने मूल से कितना दूर चला जाता है और डंपिंगफैक्टर कितना तेजी से कण को आराम देता है। आपको कोड को ट्विस्ट करना पड़ सकता है क्योंकि इसके 1 डी सिमुलेशन का संशोधित संस्करण जो मैं अपने गेम में उपयोग करता हूं।
अब एक डेमो के साथ: डेमो
जस्ट शीर्ष पर 3 स्थिरांक को मोड़ देता है जब तक कि द्रव ऐसा व्यवहार नहीं करता है जैसे आप इसे चाहते हैं।