কীভাবে আমি বিভিন্ন কীবোর্ড লেআউটগুলি পরিচালনা করতে পারি?


10

ধরা যাক আমার একটি গেম আছে যা একটি QWERTY লেআউটে WASD নিয়ন্ত্রণ ব্যবহার করে। এই নিয়ন্ত্রণগুলি ব্যবহার করার চেষ্টা করে বলুন, একটি ডিভোরাক বিন্যাস আদর্শ নয় ( <A:HQWERTY এর সমতুল্য )। স্পষ্টতই, আমি QWERTY ব্যবহার করার মতো একই শারীরিক কীগুলি ব্যবহার করতে চাই ( ,aoeডিভোরাকের উপর)।

আমি কয়েকটি সম্ভাব্য সমাধান নিয়ে এসেছি:

  • ব্যবহারকারীকে কিউওয়ার্টি ব্যবহার করতে বাধ্য করুন
    • স্পষ্টতই আদর্শ নয়, বিশেষত আন্তর্জাতিক ব্যবহারকারীদের জন্য
  • কীবোর্ড লেআউটের উপর ভিত্তি করে শর্টকাটগুলি পরিবর্তন করুন (WASD ->, এও)
    • আমাকে প্রতিটি সমর্থিত বিন্যাসের জন্য বিন্যাস মানচিত্র তৈরি করতে বাধ্য করে (স্বয়ংক্রিয়ভাবে)
    • কেবল WASD এর চেয়ে বেশি শর্টকাট থাকলে ব্যবহারকারীর পক্ষে সহজ
  • ব্যবহারকারীকে শর্টকাটগুলি তাদের সংজ্ঞায়িত করতে বাধ্য করুন
    • আরো নমনীয়
    • প্রচুর শর্টকাট থাকলে বিরক্তিকর
    • দ্বিতীয় বিকল্পের সাথে একত্রে ব্যবহার করা যেতে পারে
  • হার্ডওয়্যার কীকোডগুলি ব্যবহার করুন
    • কিবোর্ড জুড়ে সামঞ্জস্যপূর্ণ?

এই ধরণের জিনিস সাধারণত কীভাবে পরিচালিত হয়?

উত্তর:


9

স্ক্যান কোডগুলির জন্য শুনুন। এটি কীভাবে করা হয় তা আপনার ওএসের উপর নির্ভর করে, যা আপনি তালিকাভুক্ত করেননি। Windows এ, আপনি ব্যবহার করে WM_KEYDOWN এবং বন্ধুদের থেকে প্রদত্ত ভার্চুয়াল চাবি কোড scancode পেতে পারেন MapVirtualKey । স্ক্যান কোডগুলি দৈহিক কী এর উপর ভিত্তি করে এবং বিন্যাস দ্বারা প্রভাবিত হয় না।

Http://www.altdevblogaday.com/2011/10/02/i-never-managed-to-go-left-on-first-try/ এর দ্রুত পড়ুন ।

তাই হ্যাঁ, নিকোল বোলাশ যেমন বলেছিলেন, আপনি ব্যবহারকারীদের চারপাশে কাজ করতে দিতে এবং দেওয়া উচিত। তবে এটি ঠিক বাক্সের বাইরে কাজ করা শক্ত নয় এবং আপনার ব্যবহারকারীরা এটির প্রশংসা করবে।

নোট করুন যে আপনি (সম্ভবত) গেম বিকাশকারীদের সংখ্যাগরিষ্ঠর মতো অক্ষরের ইনপুটকে ভুলভাবে পরিচালনা করছেন। নিশ্চিত করুন যে পাঠ্যের জন্য, আপনি সর্বদা পাঠ্য ইনপুটটির জন্য WM_KEYDOWN ব্যবহার না করে WM_CHAR (বা অন্যান্য OS এর সমতুল্য) ব্যবহার করেন। এটি অনুমান করা সম্পূর্ণ ভুল যে কোনও লেআউটে ডেড কীগুলি ব্যবহারের কারণে 'a' কী চাপলে আপনি কোনও পাঠ্য ইনপুট নিয়ন্ত্রণে একটি 'a' ইনপুট করা উচিত। আপনি পূর্ব এশীয় বাজারগুলির জন্য আইএমই (বা ওএস সমতুল্য) কে সমর্থন করতে পারেন যা কীবোর্ডে যুক্তিসঙ্গতভাবে ফিট করতে পারে তার চেয়ে অনেক বেশি অক্ষর রয়েছে এবং টাইপ করতে বিশেষ ইউআই দরকার। গেমটিতে আইএমই হ্যান্ডলিং করা একটি ব্যথা (এটিকে সামান্য পরিচালনা করা একটি ব্যথা), তবে আপনার পণ্যের আপিলকে বাজারের অনেক বড় সেটগুলিতে বাড়ানোর পক্ষে আমার মতে এটি মূল্যবান। আবার, WM_KEYDOWN কখনও কখনও টেক্সটের জন্য ব্যবহার করা হবে না।


সদুপদেশ. আমি ওএসের তালিকা তৈরি করিনি কারণ আমি সাধারণ নির্দেশিকা / প্রত্যাশাগুলি খুঁজছিলাম (আমি বাস্তবায়নের বিশদটি পরিচালনা করতে পারি)।
বেটগ্যামিত

6

আপনার খেলোয়াড়কে সর্বদা তার মূল কার্যভার পরিবর্তন করার ক্ষমতা দেওয়া উচিত । এভাবেই "সাধারণত পরিচালনা করা হয়": প্লেয়ারটিকে সেগুলি পরিবর্তন করতে দিন। কিছু খেলোয়াড় গেমস খেললে তাদের কীবোর্ড QWERTY এ সেট করে দেবে কারণ বেশিরভাগ গেমই এটি প্রত্যাশা করে। কিছু তাদের তাদের বর্তমান কীবোর্ডে সেট করে রেখে যাবে এবং কীগুলি পরিবর্তন করার দক্ষতার উপর নির্ভর করবে।


1
ভাষা পরিবর্তন হলে কী হবে? উদাহরণস্বরূপ, ফরাসিরা কি WASD -> ZQSD পরিবর্তন করার প্রত্যাশা করে যদি তারা তাদের আজার্টি লেআউটটি রাখতে চায়, এমনকি ফরাসী ভাষায় খেলাটি রয়েছে?
বেটগ্যামিট

1
@ টিজেমসন: আপনি আমার উত্তরটি পড়েছেন? তাদের মূল বরাদ্দকরণ পুনরায় সংজ্ঞায়িত করা যাক । তাহলে কোনও সমস্যা হবে না।
নিকল বোলাস

1
হ্যাঁ, আমি না আপনার উত্তর পড়ুন, এবং আমি সম্ভবত আপনার পরামর্শ সঙ্গে যাব। আমি কেবলমাত্র নিশ্চিত করতে চেয়েছিলাম যে বিভিন্ন লোকেলগুলিতে ব্যবহারকারীদের কাছে শিপিংয়ের সময় কোনও প্রত্যাশা ছিল না।
বিটগ্যামিত

3

ক্ষেত্রে আপনি স্ক্যান কোডগুলি শুনতে পাচ্ছেন না (যেমন কোনও ফ্ল্যাশ গেমটি বিকাশ করার সময়) আপনি একটি মূল বাইন্ডিং তৈরি করতে পারেন যা যতটা সম্ভব লেআউটের জন্য কাজ করে। বেশিরভাগ কীবোর্ড লেআউট খুব সামান্য কিছু ব্যতিক্রম ব্যতীত are

আইএসও 9995 (এটি সর্বাধিক) এর পরে থাকা কীবোর্ড লেআউটগুলি এভাবে সাজানো হয়েছে:

আইএসওয়ের পরে কীবোর্ড বিন্যাস

মূলত কালো কীগুলি ব্যবহার করা নিরাপদ।


Keyoard লেআউট আরও বিশদের জন্য, দেখুন কোয়ার্টি , QWERTZ , AZERTY এবং QZERTY
চাক Walbourn

3

বেশিরভাগ বড় বাজেটের গেমস (আন্তর্জাতিক বিতরণকারীরা) বাক্সের বাইরে কাজ করবে, এজারি লেআউটের জন্য ডাব্লুএএসডির পরিবর্তে জেডকিউএসডি ব্যবহার করবে। একটি শালীন গেমটি প্রথম স্তরেও বিন্যাসটি প্রবর্তন করবে, অন্যরা প্লেয়ারটিকে এটি কাস্টমাইজেশন স্ক্রিনের মাধ্যমে আবিষ্কার করতে দেবে। ওএসকে লেআউটগুলি স্যুইচ করতে জিজ্ঞাসা করে বাস্তবায়ন কৌশলটি সনাক্ত করা যায়। হয় গেমটি অভ্যন্তরীণভাবে স্ক্যানকোডগুলি (অবস্থানগুলি) ব্যবহার করে এবং কনফিগারেশন ডায়ালগ এবং প্রম্পটগুলি দেখানোর সময় এগুলি কীকডগুলিতে (চিহ্নগুলি) ম্যাপ করে; অথবা এটি অভ্যন্তরীণভাবে কীকোডগুলি ব্যবহার করে এবং প্রারম্ভকালে বা প্রথম প্রবর্তনে লেআউটটি সনাক্ত করে।

প্রথম কৌশলটি (অভ্যন্তরীণভাবে স্ক্যানকোডগুলি) আরও দৃ is়, তবে বিমূর্ততাটি ফাঁস হওয়া থেকে রোধ করতে কিছুটা যত্ন নেওয়া দরকার। ব্যবহারকারীর কাছে কী উপস্থাপন করার সময় কীকোডগুলিতে স্ক্যানকোডগুলি পুনরায় তৈরি করতে ভুলবেন না (টিউটোরিয়াল, প্রম্পট এবং কাস্টমাইজেশন সংলাপগুলিতে)। পাঠ্য ইনপুট নেওয়ার সময় আপনার কীকোডগুলি দেখতে হবে (উদাহরণস্বরূপ কোনও খেলোয়াড়কে তাদের নাম টাইপ করতে দিন)। যদি এর চেয়ে আরও বেশি পাঠ্যকে হ্যান্ডেল করার দরকার হয় তবে প্ল্যাটফর্মটির পাঠ্য ইনপুট সমর্থনটি দেখুন, যা কোনও গেম ইঞ্জিনের আওতার বাইরে (মৃত কী, ক্যাপসলক, অনুলিপি-পাস্টিং, উন্নত ইনপুট পদ্ধতিগুলি পরিচালনা করে ...)।

এমন কোনও গেমের পোর্টিংয়ের সময় যা স্ক্যানকোডগুলি কখনও ব্যবহার করেনি (যা কোনও শালীন ইঞ্জিনের ক্ষেত্রে হয় না, যেহেতু স্ক্যানকোডগুলি হার্ডওয়ারের আরও কাছাকাছি এবং দ্রুত হয়), অন্য কৌশলটি আরও ব্যবহারিক হতে পারে। আপনি এসডিএল 2 ফাংশন এসডিএল_গেটকি ফ্রেমস্ক্যানকোড এবং এসডিএল_গেটস্ক্যানকোড ফ্রেমকি , বা প্ল্যাটফর্ম-নির্দিষ্ট সমতুল্য ব্যবহার করে স্ক্যানকোডগুলি কীকোডগুলিতে ম্যাপ করতে পারেন । আপনি যদি এসডিএল 2 ইভেন্ট লুপ ব্যবহার করেন তবে এই ফাংশনগুলি লেআউট সুইচগুলিতে নির্ভুল থাকবে। উইন্ডোজ এ গেটকিবোর্ডলআউট () এর মতো ক্রিয়াকলাপগুলি এড়িয়ে চলুন; কোনও পরিচিত তালিকায় আপনি বিন্যাসটি খুঁজে পেতে সক্ষম হবেন এমন কোনও গ্যারান্টি নেই।

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