آموزش کار با نقاط جادویی/اندر فواید ایمیج پوینت ها
#1
به نام خدا و با سلام

تو این بخش با چهارتا سورس آموزشی که سه تاشو خودم ساختم در واقع ابداع کردم و یکیشو از سایت سیرا گرفتم میخوام شما رو با یکی از کاربردی ترین بخش های شی اسپرایت آشنا کنم.یعنی ایمیج پوینت ها(ImagePoint) که من اسمشو گذاشتم نقاط جادویی!

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


1- ساخت مسیر(path):همونطور که میدونید متاسفانه کانستراکت بر خلاف گیم میکر رفتار پیشفرضی که بشه باهاش مسیر یا پچ رو ساخت نداره(مسیر از قبل تعیین شده ای که اسپرایت بتواند بر روی آن حرکت کند)، مسیر ها توی هوش مصنوعی کاربرد زیادی داره، البته ناگفته نمونه یکی دو تا افزونه کاربران سایت سیرا نوشتن که به نظر بدرد نخور هست! چون هم نحوه ی استفاده ش پیچیده هست همه باگ های عجیب و غریبی داره ! اما با این روشی که من در این سورس پیاده کردم میتونید با چند ایونت بسادگی با استفاده از رفتار bullet و ایمیج پوینت ها پیچیده ترین مسیرها رو بسازید...

دریافت سورس نمونه(سورس را اجرا کنید و نتیجه را مشاهده کنید)


2- origin یا همون محور مختصات شی ها در کانستراکت در واقع یک ایمیج پوینت هست.جالبه بدونید ما میتونیم در کانستراکت ایمیج پوینت ها را به اندازه بزرگی صفحه لیوت در بخش ادیت اسپرایت ها جابه جا کنیم.بنده با این روش و با استفاده از رفتار rotate حرکت یک شی رو بر روی یک دایره فرضی شبیه سازی کردم(به سادگی آب خوردن!)...

دریافت سورس (سورس را اجرا کنید و نتیجه را مشاهده کنید)

3-دامنه برخورد: بطور پیش فرض کانستراکت تنها با اعمال کالیژن ماسک یا collision polygon که در واقع یکسری خطوط بر اساس نقطه ها هستند(از بخش ادیت اسپرایت قابل دسترس هست/گزینه آخر) قادر به تشخیص منطقه ی برخورد دو شی هست.که البته خیلی ابزار مفیدی هست و در خیلی جاها بکار میاد، اما در بعضی مواقع اصلاً دردی رو دوا نمیکنه! و به تنهایی کمکی به بازیساز بیچاره انجام نمیده، شما فرض کنید میخواهید یک بازی تیراندازی یا یک بازی مبارزه ای بسازید و قرار هست بر فرض با هر برخورد نشونه ی ما یا پای حریف به بخش های جداگانه از بدن یک انسان یک واکنش یا یک اکشن اجرا بشه، چون تنها قادر به ساخت یک کالیژن ماسک برای هر شی هستید به مشکل بر میخورید.یک راه خلاص شدن از این مشکل استفاده از اسپرایت های اضافی برای تشخیص منطقه ی برخورد هست اما این روش  درآمدن از چاله و افتادن به چاه است!چون اول از همه تاثیر بدی بروی پرفرومنس بازی دارد و دوم اینکه اگر اسپرایت اصلی شما دارای انیمیشن باشد عملاً هیچ کاربردی ندارد! بنده با استفاده از کالیژن ماسک دامنه ی پهنا (عرضی) شی و با استفاده از مقایسه ی نقطه ها(ایمیج پوینت های ساخته شده) دامنه ی بلندی(ارتفاع) شی(اسپرایت انسان) را در این سورس مشخص کردم که در واقع مختصات یک مساحت مشخص یا همون منطقه ی خاص برای ما بدست می آید...

دریافت  سورس نمونه ....(سورس را اجرا کنید و اسپرایت آبی که به موس متصل هست را بر روی مناطق مختلف اسپرایت انسان ببرید و نتیجه را مشاهده کنید)(توضیحات تکمیلی در پائین)


4-توجه کنید ما هر بار که در یک فریم بروی دکمه ی add image point(به شکل + بعلاوه) کلیک کنیم. تنها یک ایمیج پوینت در همان فریم ایجاد میشود و ما در صورتی که شی مان دارای انیمیشن باشد باید برای هر فریم ایمیج پوینت را جداگانه بسازیم و آن در جای صحیح قرار دهیم.ما میتوانیم برای راحتی کار بعد از ساخت یک نقطه  در یک فریم با راست کلیک و انتخاب گزینه apply to whole animation آن ایمیج پوینت ها
را بصورت اتوماتیک در همان مختصات نقطه ی اولی برای بقیه فریم های همان انیمیشن بسازیم.البته برای اجرای دقیق باید توجه کنید اگر انیمیشن جابه جایی زیادی دارد باید در هر فریم یک ویرایش کوچک هم انجام دهیم و نقاط را بر اساس فریم های انیمیشن به مختصات صحیح منتقل کنید.در حالی که این عمل برای روش اسپرایت های اضافی تقریباً غیر ممکن است در این روش براحتی انجام پذیر هست...

دریافت سورس نمونه برگرفته از سایت سیرا(وقتی با پلیر به دشمنان/اسپرایت های قرمز نزدیک میشوید دکمه ی اسپیس را فشار دهید و نتیجه را مشاهده کنید)


5-شناسایی ایمیج پوینت ها یا فراخوانی آنها از دو طریق صورت میپذیرد یک استفاده از نام ایمیج پوینت و دو شماره ایمیج پوینت، اولی در بخش ادیت اسپرایت با کلیک بر روی شکل مداد(rename) قابل تغییر هست و در هنگام فراخوانی باید حتماً میان دابل کوتیشن (علامت" ") باشد دومی در زیر number نوشته شده و قابل استفاده است و احتیاجی به دابل کوتیشن نیست تنها عدد مورد نظر را باید در فراخوانی نوشت.نکته آخر اینکه ما میتوانیم اشیا را به یک اسپرایت در نقطه ئی مشخص با استفاده از اکشن set position to another object  متصل کنیم مثلاً یک کیف را به دست یک فرد یا یک کلاه را به سر یک فرد نسبت بدهیم تنها کافی است در آن قسمتی که در اکشن نوشته است ایمیج پوینت، شماره نقطه ی مورد نظر را که بر فرض در اینجا از قبل بر روی دست یا سر اسپرایت تنظیم شده را بنویسیم.(چون آسان است و همه تقریباً با این اکشن آشنایی دارند سورسی ارائه نشد./تنها جهت یاد اوری..)  


و السلام عليكم و رحمة‌الله و بركاته/ ایام به کام


--------------\\\\\\\\\\*******\\\\\\\\---------------------------\\\\\\\\\\**********\\\\\\\---------
[تصویر:  vngames_mobarez.png]


*«يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنْكُمْ وَ الَّذِينَ أُوتُوا الْعِلْمَ دَرَجاتٍ//خداوند کسانی را که ایمان آورده اند و کسانی را که دانش به آنان عطا شده است.درجات عظیمی می بخشد.»(قرآن کریم، المجادلة، 11 ‏)*

*پیامبر اکرم (ص) فرمود:«علم آموزي بر هر مرد و زن مسلمان، واجب است.»(مصباح‏ الشريعة، ج 13)
  پاسخ




موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سورس بازی کامل بمبرمن (رایگان ) mohsen_nasri 0 2,310 1399/10/30، 06:28 عصر
آخرین ارسال: mohsen_nasri
  سورس استفاده از دیدئو در کانستراکت rezamms 8 5,232 1399/7/8، 08:58 صبح
آخرین ارسال: rezamms
  سورس ایجاد افکت تایپ rezamms 2 2,818 1399/6/21، 12:40 عصر
آخرین ارسال: M.gh
  سورس ساخت خدم mega_24 5 5,017 1399/3/12، 03:25 عصر
آخرین ارسال: M.gh
  سورس استفاده از فانکشن oak 17 10,384 1399/1/7، 08:51 عصر
آخرین ارسال: oak

پرش به انجمن: