درود مهمان گرامی! ثبت نام

جشنواره بازیسازی پرومیکرز

امتیاز موضوع:
  • 5 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
{آموزش} ساخت دکمه مجازی ساده برای حرکت بازیکن
#1
resim

سلام؛
فرض کنید یه بازی دارید میسازید که توش بازیکن داره می دوه و باید با زدن دکمه های چپ و راست از خوردنش به موانع جلوگیری کرد؛ خب ما توی خروجی کامپیوتر مشکلی نداریم چون با دکمه های کیبورد کار میکنیم ولی موبایل چی؟ موبایل که کیبورد نداره...
چاره کار ما ساخت دکمه مجازیه، ولی چجوری بسازیمش؟ c;,g

من امروز میخام بهتون یک راه ساده برای تعبیه کردن دکمه های مجازی برای کار های مختلف توی بازی های موبایل رو بهتون یاد بدم؛ اگه دقت کرده باشین توی اکشن های گیم میکر یا اکشن کد نویسی گیم میکر بالاش یه کادره که نوشته Applies to و سه بخش self ، other ، object داره که پیش فرضش روی سلف هستش یعنی اون اکشن روی خود آبجکت اعمال بشه؛ حالا ما میخایم یه حقه کوچیک بزنیم teeth .....

برای شروع کار دو تا آبجکت با اسپرایت فلش های قرینه و یک آبجکت پلیر بسازید؛

resim

حالا آبجکت فلش ها رو باز کنید (من اینجا راست رو باز کردم) ایونت left pressed رو انتخاب کنید و اکشن حرکت رو انتخاب کنید (حرکت دلخواه رو بزارید) و در کادر بالا object رو انتخاب و آبجکت بازیکنتون رو انتخاب کنید. حالا یه روم بسازید و فلش ها و بازیکن رو توش بزارید و بازی رو اجرا کنید؛ میبینید که با کلیک کردن موس یا ضربه زدن روی اون فلش بازیکن حرکت میکنه...

ولی اگه دستتون رو از روی فلش بردارید میبینید که بازیکن همینجوری راه خودشونو میگیرنو میرن teeth برای حل این مشکل یک ایونت left released بسازید و دوباره اکشن حرکت رو انتخاب کنید و حرکت رو هیچ و سرعت رو 0 بزارید و بازی رو اجرا کنید و میبینید که بله؛ با ضربه روی فلش ها بازیکن حرکت میکنه و با آزاد کردن بازیکن می ایسته...

resim

تبریک میگم! شما یک دکمه مجازی برای بازیتون ساختین، با استفاده از این روش برای بازیکنتون دکمه پرش، شلیک یا خیلی چیزای دیگه بزارید...


[یک باگ] : اگه در حالی که روی فلش ضربه زدید و نگه داشتید دستتون از روی دکمه بره کنار بازیکن همینجوری به راه خودش ادامه میده... برای حل این مشکل یک ایونت mouse leave بسازید و مثل ایونت left released یک اکشن حرکت با حرکت هیچ و سرعت 0 بزارید؛ حالا بهتر شد! teeth

resim
کیــــــــــــــــــqwerty13ــــــــــوورتی13
پاسخ
 سپاس شده توسط Majid ، تور110 ، bagher2g ، Milad_Hyper ، رضا النصار ، M2_DR ، AliScan ، masoodh ، mgoods ، salar7 ، MPZ ، B_bst66 ، N___F___T ، Amirns ، aminzamani68 ، HADIp ، kaygame ، naleh ، tirnam ، sajjad3011 ، amirooo ، mehrsa ، ARTCLASS55 ، full-city
#2
درود



عالی بود ممنونم ! اگر همین طور برای اموزش های اندرویدی جلو برین عالیه teeth



بدرود
[align=center]resim
پاسخ
 سپاس شده توسط qwerty13 ، bagher2g
#3
مرتضی جان من روی حرکت دادن Player با استفاده از تکان دادن دستگاه (گوشی و تبلت) کار کردم اما متاسفانه راهی پیدا نشد...
لطفا در صورتی که توانستید این کار را انجام دهید آموزش آن را در اینجا قرار دهید.
 
پاسخ
#4
روش خوبیه منتها خیلی سخته یه روش خیلی آسونتر خود گیم میکر استدیو برای ما گذاشته که فقط با 2 خط کد هر کلیدی که بخوایم رو میتونیم بسازیم (البته کلید ها گرافیکی نخواهند بود ولی با روش هایی میشه این مشکل رو حل کرد):

ساخت کلید مجازی با روش ساده ی خود گیم میکر استدیو:
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 رو بنویسیم
(لازم به ذکره که بگم بخش سوم این آموزش الزامی نیست یعنی میتونید کلید ها رو قابل نمایش نذارید)

اگرم توضیحات رو نفهمیدید به ترتیب شات1 و شات2 رو ببینید
اینم سورس این آموزش (البته داخل سورس کلید های مجازی رو بصورت گرافیکی هم ساختم): لینک
پاسخ
 سپاس شده توسط bagher2g ، M2_DR ، رضا النصار ، qwerty13 ، Majid ، mzr ، Milad_Hyper ، AliScan ، masoodh ، salar7 ، mqt ، aminj73 ، Amirns ، aminzamani68 ، HADIp ، tirnam ، spark ، Microsoft2 ، Black wolf
#5
aminblog76 جان این سورسی که گذاشتی چرا فرمتش gmz با چی بازش کنم ؟what
پاسخ
#6
برو توی سربرگ Import (توی اینترو گیم میکر استدیو) اونجا این پسوندارو هم ایمپورت میکنه....
پاسخ
 سپاس شده توسط masoodh ، aminblog76 ، nazi_niazi ، kaygame
#7
مگه کلیدهای مجازی نباید با کلیک موس کار کنن؟ سورس رو هم گرفتم ولی کار نمیکنه

اگر من کد حرکت و پرش رو تو تنظیمات پلیر نوشته باشم keyCode این تابع به بازیکن فرستاده میشه؟
پاسخ
#8
برای اینکه دکمه مجازی مورد نظر همیشه یه گوشه view مون باشه میتونید از

کد:
x = view_xview + 30
y = view_yview + 700

توی ایونت step استفاده کنید...
پاسخ
 سپاس شده توسط B_bst66 ، kaygame ، tirnam
#9
میشه سورسو یه جای دیگه آپلود کنید این پیکوفایل شورشو دراورده سروراش داره میپوکه از بس فایل توشه.
resim
پاسخ
#10
(2/6/1392، 02:43 عصر)nazi_niazi نوشته است: مگه کلیدهای مجازی نباید با کلیک موس کار کنن؟ سورس رو هم گرفتم ولی کار نمیکنه

اگر من کد حرکت و پرش رو تو تنظیمات پلیر نوشته باشم keyCode این تابع به بازیکن فرستاده میشه؟

تا جایی که یادمه کلید های مجازی با موس کار نمیکردن...
اگه شد بعدا جای دیگه اپ میکنم...
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش ایجاد بازی جاوا برای موبایل با game builder netBeans sajjad3011 5 4,076 19/11/1392، 04:31 صبح
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 1 مهمان