বর্তমানে প্রদত্ত যে কোনও পদ্ধতির সাথে আমার উদ্বেগটি হ'ল তারা উভয়ই 'পরিবর্তনশীল গতি' জ্বলজ্বলে বাড়ে, যা কেবল খেলোয়াড়দের জন্যই বিভ্রান্তিকর হতে পারে না তবে কোনও বস্তুটি বিলুপ্ত হওয়ার আগে ঠিক কতক্ষণ চলে গেছে তা অনুমান করাও কঠিন করে তোলে । পরিবর্তে, আপনার পরামিতি কোথাও (কিনা তারা রেন্ডারার জন্য অথবা একটি প্রতি-বস্তুর ভিত্তিতে বৈশ্বিক হতে) আমি চার ধ্রুবক প্রয়োগ করা হবে: slowBlinkTime
, slowBlinkRate
, fastBlinkTime
এবং fastBlinkRate
। রেন্ডারিংয়ের সময়, যদি আপনার অবজেক্টের অবশিষ্ট জীবন কম হয় fastBlinkTime
, তবে এটিকে ঝাপটান fastBlinkRate
; অন্যথায় যদি এটি এর চেয়ে কম হয় তবে এটিকে slowBlinkTime
ঝাপটান slowBlinkRate
। আপনি যদি আরও একধাপ এগিয়ে যেতে চান তবে আপনার আলাদা আলাদা অ্যারে থাকতে পারে blinkTime
এবংblinkRate
গুলি এবং সেগুলি একে একে পরীক্ষা করে দেখুন, তবে বাস্তবে এটি অতিরিক্ত ওভারকিল হওয়ার সম্ভাবনা রয়েছে এবং কেবলমাত্র 'সতর্কতা' এবং 'সমালোচনামূলক' রাষ্ট্র থাকা যথেষ্ট। কোডটি এরকম কিছু দেখাচ্ছে:
float blinkCycle;
if ( entity.timeLeft < fastBlinkTime ) {
blinkCycle = entity.timeLeft/fastBlinkRate;
} else if ( entity.timeLeft < slowBlinkTime ) {
blinkCycle = entity.timeLeft/slowBlinkRate;
}
blinkCycle = blinkCycle - floor(blinkCycle); // find blinkCycle 'mod 1'
if ( (entity.timeLeft < slowBlinkTime) && (blinkCycle < 0.5f) ) {
renderBlinked(entity); // this should be the 'blinked' state, whether flashed or missing
} else {
renderNormal(entity); // the normal render for the entity
}
নোট করুন যে এই কোডটি অর্ধ-অন, অর্ধ-অফ জ্বলজ্বল চক্র (যা 0.5f
টেস্টে উপস্থাপিত তা বোঝায়), তবে কেবল যথাযথ ধ্রুবকটিকে টিকিয়ে রেখে এক-তৃতীয়াংশের মতো সহজেই দুই-তৃতীয়াংশের মতো কিছু জন্য খুব সহজেই চিহ্নিত করা যেতে পারে। এটি দ্রুত এবং ধীর অবস্থার মধ্যে জ্বলজ্বলে 'সিঙ্ক্রোনাইজ' করার জন্য কিছু করে না, তবে এটি তুলনামূলকভাবে সরল।
এটি প্লাগ ইন করা সহজবোধ্য হওয়া উচিত, এবং এতে আইএমএইচওর যথেষ্ট সুবিধা হবে যে খেলোয়াড়রা 'স্লো' থেকে 'দ্রুত' জ্বলজ্বল করতে স্যুইচটি দেখতে সক্ষম হবে এবং ঠিক কতক্ষণ বাকি আছে তা জানতে পারবে। আমি প্যারামিটার মানগুলি দিয়ে 5s slowBlinkTime
এবং 0.5 এর জন্য slowBlinkRate
এবং 2s / 0.25 এর জন্য fastBlinkTime
এবং সেগুলি fastBlinkRate
দিয়ে শুরু করব, তবে এটি অবশ্যই আপনার নির্দিষ্ট গেমের উপর নির্ভরশীল।