একটি এফপিএসে মাউসের লক্ষ্য


38

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


3
এটা একটা ভাল প্রশ্ন.
কমিউনিস্ট হাঁস

উত্তর:


39

ক্লাসিক উইন 32 প্রোগ্রামিংয়ে এটি হ্যান্ডল করার সাধারণ পদ্ধতিটি হ'ল প্রতিটি ফ্রেম মাউস ডেল্টাকে ক্যাপচার করে এবং তারপরে মাউসের অবস্থানটি পর্দার কেন্দ্রে পুনরায় সেট করা। আপনি মাউস কার্সারটিকেও অদৃশ্য করে তুলতে চান, অন্যথায় জিনিসগুলি খারাপ দেখতে।

আপনি এক্সএনএতে একই জিনিসটি করতে পারেন, আপনি কিছুটা আলাদা ইন্টারফেস দিয়ে কাজ করছেন। সুতরাং আপনি যেমন কিছু করতে পারেন:

  1. প্রারম্ভকালে, মাউস.সেটপজিশন সহ আপনার পর্দার কেন্দ্রে মাউসের অবস্থান নির্ধারণ করুন ।
  2. প্রারম্ভকালে, মাউসকে অদৃশ্য করে তুলুন
  3. প্রতিটি ইনপুট ফ্রেম, বর্তমান মাউস স্থিতি ধরুন
  4. যেহেতু আপনি জানেন যে মাউসটি কেন্দ্রে ছিল, তাই আপনি উভয় মাত্রায় ডেল্টা আন্দোলনের গণনা করতে আপনি পদক্ষেপ # 3 এ পুনরুদ্ধার করা মাউসস্টেট অবজেক্ট থেকে বর্তমান এক্স এবং ওয়াই মানগুলি ব্যবহার করতে পারেন । আপনি আপনার গেমের বাকি যুক্তিগুলিতে যেমন ডেল্টাগুলি খাওয়াতে পারেন, যেমন (আপনার ক্ষেত্রে) ক্যামেরা কোড।
  5. পরের ফ্রেমে যাওয়ার আগে স্ক্রিনের কেন্দ্রস্থলে মাউসটিকে রিসেট করুন।

সম্পাদনা: এছাড়াও, এখানে একটি টিউটোরিয়াল আমি "XNA আপেক্ষিক মাউস ইনপুট" (যা আপনি যা জিজ্ঞাসা করছেন) এর জন্য গুগল অনুসন্ধানের মাধ্যমে খনন করেছি। এটি কিছুটা পুরানো, আমি মনে করি, তাই কিছু পদ্ধতিতে তাদের নাম পরিবর্তন করা যেতে পারে, তবে ধারণাগুলি এখনও প্রয়োগ করা উচিত।

সম্পাদনা 2: বলুন "এই হ্যান্ডলিং বোঝানো মধ্যে Win32" এবং না "এই হ্যান্ডলিং হয় সেই অনুযায়ী আপডেট Win32"।


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