ایجاد یا پیاده سازی دکمه های ی مجازی اندروی برای کنترل کاراکتر در گیم میکر استادیو
يكشنبه, ۱۸ مرداد ۱۳۹۴، ۰۳:۰۰ ب.ظ
منبع :gameover.blog.ir
برای اینکه دکمه توی صفحه view بمونه و حتی راه بری بازم از صفحه خارج نشه
باید به طور داینامیک توی رویداد draw بیای x و y آبجکت دکمه رو بذاری توی x
و y دوربین(view):
کد PHP:
x=view_xview+window_get_region_width()/2-sprite_width/2
y=view_yview
-
window_get_region_width()/2-sprite_width/2 فرمولی هست که نصف پهای پنجره رو منهای نصف پهنای اسپرایت می کن تا ابجکت از لحاظ عرضی در وسط صفحه بیفته و بالای صفحه.
فرمول بالا واسه اسپرایت بود . اگه بخوای دکمه رو بذاری اینطوری بذار:
اینم سورس کامل برای ساخت دکمه ی لمسی یا کلیدهای مجازی اندریود در گیم میکر استادیو:
http://s6.picofile.com/file/8192395026/T...l.zip.html
--
اینم توضیحات امین بلاگ 76 :
ساخت کلید مجازی با روش ساده ی خود گیم میکر استدیو:
1.یک آبجکت به اسم دلخواه مثلا obj_vkey_crtl بسازید
2.برای ایجاد کردن هر کدوم از کلید های دلخواه باید از تابع زیر استفاده کنید و مقدار دهی کرده و داخل یک متغیر بریزید
تابع:
کد:
virtual_key_add(x, y, w, h, keycode);
x,y :مختصات قرار گرفتن کلید ها داخل رابط کاربری (gui) هست
w,h :طول و عرض کلید ها
keycode: کلیدی که قراره کلید مجازی ما نماینده اون کلید باشه مثلا vk_left
مثال:
کد:
up = virtual_key_add(32, 32, 64, 64, vk_up);
3.الان کلید مجازی ساخته شده و فقط کافیه اون رو داخل GUI بازی به روشی که الان میگم draw کنید:
داخل ایونت Draw GUI همون آبجکت برای نمایش کلید ها باید از تابع زیر استفاده کنید:
کد:
virtual_key_show(key)
که به جای key باید متغیری که کلید ساخته شده رو داخلش ریختیم بنویسیم مثلا ما در مثال ساخت کلید ، کلید ساخته شده رو داخل متغیری به اسم up ذخیره کردیم بنابر این در تابع ذکر شده باید به جای key ، نام متغیر یعنی up رو بنویسیم
(لازم به ذکره که بگم بخش سوم این آموزش الزامی نیست یعنی میتونید کلید ها رو قابل نمایش نذارید)
سورس گرافیکی امین بلاگ 76 :
http://s4.picofile.com/file/7858193759/android_virtual_key_aminblog76_.rar.html
در مورود سورس امین بگم کار بهینه ای کرده.
کارش به این صورته که اومده فقط یه اسپرایت فلش جهت دار گذاشتی و در چهار جهت اونو چرخش داده. این کارو به وسیله ی تغییر پارامتر (پارامتر دوم) subimage در تابع draw_sprite مقدار دادن 0(باعث چرخش اسپرایت به بالا میشه) و 1(پایین) و 2(چپ) و 3(راست). اون قسمت کد که توضیح دادم اینه :
کد PHP:
draw_sprite(spr_keys,0,32*3,32)
//virtual_key_show(key_down)
draw_sprite(spr_keys,1,32*3,32*5)
//virtual_key_show(key_left)
draw_sprite(spr_keys,2,32,32*3)
//virtual_key_show(key_right)
draw_sprite(spr_keys,3,32*5,32*3)
منبع :
http://promakers.ir/showthread.php?tid=5761&pid=69129#pid69129
۹۴/۰۵/۱۸