صفحه کلید مجازی

صفحه کلید مجازی

در این مقاله، به یکی از قابلیت های جدید گیم میکر می پردازیم: استفاده از کیبورد داخلی دستگاه های موبایل که به آن کیبورد مجازی (Virtual Keyboard) گفته می شود. این قابلیت مخصوص سیستم عامل های اندروید، iOS و UWP است و از آن برای دریافت ورودی متنی برای بازی استفاده می کنیم؛ دقیقا به همان شکل که از یک کیبورد واقعی (فیزیکی) استفاده می شود.

روش های زیادی برای استفاده از کیبورد مجازی در بازی وجود دارد. اما اساس کار و طرز استفاده از آن یکسان است:

  • اول کیبورد را فراخوانی می کنیم.
  • سپس از بازیکن، ورودی دریافت می کنیم.
  • دوباره کیبورد را می بندیم.

پس بیایید شروع کنیم و ببینیم چطور باید این کارها را انجام داد.

ظاهر کردن کیبورد مجازی

از آنجا که مطلب حاضر فقط یک مقاله آموزشی است، تصمیم داریم کم ترین مراحل لازم برای اینکه یک آبجکت بتواند از کیبورد مجازی، ورودی بگیرد را به کار ببندیم. پس یک پروژه جدید در GameMaker Studio 2 باز کنید و یک روم به ابعاد مثلا 800*480 ایجاد کنید. بعد از آن، یک ابجکت ایجاد کنید و نام آن را مثلا obj_vk بگذارید. در ایونت Create باید متغیری را معرفی کنیم که نگهدارنده رشته متن ورودی باشد و سپس ابعاد GUI را برابر با ابعاد صفحه نمایش دستگاه موبایل قرار می دهیم تا نمایش متن در مراحل بعد را برایمان آسان تر کند.

kv_input_string = “”

display_set_gui_size(display_get_width(), display_get_height());

حالا تصمیم داریم کاری کنیم که با لمس صفحه گوشی، کیبورد مجازی ظاهر شود و با لمس مجدد دوباره مخفی شود. برای این کار در مجموعه ایونت Gesture گزینه Global Tap را انتخاب کنید:

و در آن از کد زیر استفاده می کنیم:

if keyboard_virtual_status() == false

{

keyboard_string = “”;

keyboard_virtual_show(kbv_type_default, kbv_returnkey_default, kbv_autocapitalize_none, false);

}

else { keyboard_virtual_hide(); }

در قطعه کد بالا، ابتدا چک می کنیم که آیا کیبورد مجازی مخفی است یا آشکار؛ اگر مخفی است، ابتدا وردوی کیبورد را خالی می کنیم تا اگر قبلا مقداری داشته است، مجددا بدون مقدار شود. سپس با استفاده از تابع keyboard_virtual_show صفحه کلید مجازی را ظاهر می کنیم. همان طور که می بینید، این تابع به 4 پارامتر نیاز دارد.

در پارامتر اول، نوع کیبورد را مشخص کرده ایم. منظور از kbv_type_default صفحه کلید پیش فرض دستگاه های موبایل است که شامل حروف، اعداد و نشانه هاست. در صورتی که به جای آن از kbv_type_numbers استفاده کنید، صفحه کلیدی که فقط شامل اعداد است، نمایش داده می شود.

در پارامتر دوم نوع دکمه Enter کیبورد را به صورت پیش فرض قرار داده ایم. در پارامتر سوم مشخص کرده ایم که متن ورودی با حروف بزرگ شروع نشود و در نهایت در پارامتر آخر امکان تصحیح خودکار متن را غیرفعال کرده ایم. (برای هر کدام از این پارامترها، گزینه های متنوعی داریم که در این مقاله امکان پرداختن به آنها وجود ندارد. در صورت علاقه می توانید توضیح هر کدام را در Help رسمی گیم میکر استودیو 2 ببینید.)

در نهایت بعد از عبارت else مشخص کرده ایم که در صورتی که کیبورد در حالت آشکار بوده است، مخفی شود.

حالا می توانید پروژه خود را تست کنید. می بینید که با لمس کردن صفحه گوشیتان، کیبورد مجازی آشکار و دوباره مخفی می شود.

دریافت ورودی

به محض این که کیبورد مجازی ظاهر شود، امکان دریافت وردی از آن وجود دارد؛ دقیقا شبیه به یک کیبورد فیزیکی. یعنی این که شما می توانید از همان توابع مربوط به دریافت ورودی استفاده کنید. در اینجا تصمیم داریم فقط ورودی متنی بگیریم و آن را درون متغیری که در ابتدای مقاله گفتیم قرار دهیم. برای این کار باید در ایونت Step بنویسیم:

if keyboard_virtual_status()  == true

 {    kv_input_string = keyboard_string;    }

نمایش متن

در نهایت باید در ایونت Draw GUI متنی را که بازیکن وارد کرده است را در جای مناسب نمایش دهیم:

draw_set_halign(fa_center);

var _height = keyboard_virtual_height();

var _dw = display_get_width();

var _dh = display_get_height();

draw_text(_dw / 2, _dh – _height – 32, “Input” + kv_input_string);

در خط دوم از تابع keyboard_virtual_height استفاده کرده ایم. خروجی این تابع، ارتفاع کیبورد مجازی است و آن را برایر با متغیری با نام دلخواه _height قرار داده ایم. با استفاده از این متغیر در خط آخر مطمئن می شویم که متن در هنگام آشکار بودن کیبورد در بالای آن قرار گرفته است.

اگر حالا پروژه را روی یک موبایل اجرا کنید، می بینید که با لمس صفحه، کیبورد داخلی دستگاه، ظاهر و یا مخفی می شود. اگر روی کلیدهای کیبورد لمس کنید، می بینید که حروف روی صفحه درج می شوند و این نشان دهنده این است که آموزش ما دارد به پایان می رسد! همان طور که دیدید راه اندازی کیبورد داخلی دستگاه های موبایل کار سختی نیست و به محض آنکه روی صفحه ظاهر شود، کار کردن با آن دقیقا شبیه به یک کیبورد فیزیکی روی ویندوز یا مک است. با این وجود، توجه داشته باشید که هر سیستم عاملی مشخصه ها و محدودیت های مخصوص به خود را دارد. برای دیدن این موارد لازم است صفحه مخصوص به کیبورد های مجازی در help رسمی گیم میکر استودیو 2 را بخوانید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *