পিগামের ফ্রেম রেটটি দ্রুত তৈরি করুন


10

আমার গেমটি প্রোফাইল দিয়ে, আমি দেখতে পাচ্ছি যে আমার শখের গেমটি কার্যকর করার সময়টির বেশিরভাগ অংশটি ব্লিট এবং ফ্লিপ কলগুলির মধ্যে। বর্তমানে, এটি কেবল 13fps এ চলছে। আমার ভিডিও কার্ডটি মোটামুটি শালীন, সুতরাং আমার অনুমান যে পাইগাম এটি ব্যবহার করছে না।

এটিকে দ্রুত করার জন্য পিগেমে আমার সেট করা দরকার এমন কোনও গ্রাফিক্স / ডিসপ্লে বিকল্প সম্পর্কে কি কেউ জানেন? বা আমি কেবল পাইগেমটি বেছে নেওয়ার পর থেকে এটিই আমার সাথে থাকতে হবে?

উত্তর:


12

আপনি যদি পূর্ণ-স্ক্রিন মোডে চলছেন, আপনি pygame.HWSURFACEযখন হার্ডওয়ার পৃষ্ঠ ব্যবহার করার চেষ্টা করার জন্য পাইগামকে জানানোর জন্য প্রদর্শনটি শুরু করবেন তখন আপনি পতাকাটি ব্যবহার করতে পারেন । আমি বিশ্বাস করি যে যদি কোনও হার্ডওয়্যার পৃষ্ঠ ব্যবহার করা না যায় তবে পাইগাম নীরবে একটি সফ্টওয়্যার পৃষ্ঠ ব্যবহার করবে।

আপনি যদি কোনও হার্ডওয়্যার পৃষ্ঠ ব্যবহার pygame.display.update(rectangle)না করে থাকেন তবে তার চেয়ে ব্যবহারের কথা বিবেচনা করুন pygame.display.flip()। এটি কেবল পুরো প্রদর্শনটির পরিবর্তে প্রদত্ত আয়তক্ষেত্রটি আপডেট করবে, যা আপনার গেমটি পুরো ডিসপ্লে আপডেট করার প্রয়োজন না হলে আপনার পারফরম্যান্সকে কিছুটা বাড়িয়ে তুলতে পারে।

আপনি যদি কোনও হার্ডওয়্যার বা ওপেনগিএল পৃষ্ঠ ব্যবহার করে থাকেন তবে সেখানে pygame.DOUBLEBUFহার্ডওয়্যার ডাবল বাফারিং ব্যবহার করা হয় যার অর্থ আপনার অঙ্কন ফাংশন দুটি বাফারের মধ্যে একটিতে আঁকবে এবং flip()কোন বাফারটি দৃশ্যমান তা অদলবদল করবে।


5

পাইগামের একটি বাধা হ'ল ফন্ট রেন্ডারিং। আপনি একবারে একই পাঠ্য (একই ফন্ট / রঙের সাথে) রেন্ডার করবেন না বরং একবার পৃষ্ঠায়িত পৃষ্ঠগুলিকে ক্যাশে করুন এবং সেগুলি পুনরায় ব্যবহার করুন। আপনি যদি খুব বেশি ফন্ট.রেন্ডার () ব্যবহার করেন তবে এটিকে একাউন্টে নিয়ে যান।


4

টেলজোশের জবাব ছাড়াও, আমি আরও কয়েকটি পরামর্শ দিতে চাই:

আপনি যেখানেই পারেন সেখানে ঘোরানো এবং স্কেলিং এড়িয়ে চলুন। এই ধরনের অপারেশনগুলি সিপিইউতে খাঁটিভাবে সম্পন্ন হয় এবং খুব, খুব ধীর হয়ে থাকে।

আপনি যদি সরাসরি পিক্সেল পড়েন / পরিবর্তন করছেন তবে Surface.get_buffer()পদ্ধতিটি ব্যবহার না করে পদ্ধতিটি ব্যবহার করুন এবং সেটির সাথে কাজ করুন Surface.set_at()/get_at()


2

আপনার যে কোনও পরীক্ষার কনসোল আউটপুট মন্তব্য করুন। এটি ফ্রেমরেটকে মারাত্মকভাবে হ্রাস করতে পারে, বিশেষত যদি আপনি ঘূর্ণন এবং স্কেলিংয়ের মধ্যে আউটপুট তুলছেন, যেমন কোডি উপরে বলেছিল।


2

এটি সঠিক যে পাইগাম আপনার ভিডিও কার্ডের 3 ডি এক্সিলারেশন ক্ষমতা ব্যবহার করে না। এটি কারণ এটি এসডিএল উপর ভিত্তি করে যার একই সীমাবদ্ধতা রয়েছে। এক বিকল্প মত একটি সিস্টেমের মধ্যে আপনার খেলা পুনর্লিখন হয় pyglet যা নেই নেটিভ সমর্থন যেমন OpenGL ত্বরিত sprites, শুধুমাত্র গ্রাফিক্স জন্য একটি অনুরূপ গ্রন্থাগার এটি, অথবা এই জন্য যেমন OpenGL নিজেকে কোড লিখতে।


পিগলেট দুর্দান্ত।
কম্যুনিস্ট হাঁস

1

অবিশ্বাস্যরকম একটি সহজ কাজ হ'ল সাইকো ব্যবহার । আমি জানি না এটি কতটা সাহায্য করবে, তবে যেহেতু এটির জন্য প্রয়োজনীয় সমস্ত প্রয়োজন

 import psyco
 psyco.full()

দৌড়াতে শুরু করতে, আপনি পাশাপাশি চেষ্টাও করতে পারেন।


সাইকো সত্যই আধুনিক আইডেমোমেটিক পাইথন কোডটিতে খুব বেশি সাহায্য করবে না। আপনি একটি জেআইটি চাইলে পাইপাই ব্যবহার করুন (যদিও পাইগেমটি সেখানে কাজ করছে কিনা তা নিশ্চিত নয়)।
কোডরেঞ্জার

পাইগাম পিপাইয়ের অধীনে কাজ করে না, তবে পাইগলেট সেখানে যাবেন তাই করে।
কোডরেঞ্জার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.