آموزش های روزانه من
#1
Question 
بسم الله الرحمان الرحیم
این پست برای آموزش های مفید و کاربردی است که شما را با برخی از روش های آسان آشنا می کند و خواهشی که از شما دارم اینه که اگر سوالی دارین در پست دیگر بازگو کنید و قابل توجه که این پست معمولا هر هفته بروز می شود و یک آموزش جدید اضاقه میشود.
1:آموزش یک
2:اموزش دو
3:آموزش سه
4:آموزش چهار
5:آموزش پنج
6:آموزش شش
7:آموزش هفت
8:اموزش هشت
  پاسخ


#2
آموزش یک:
اگر دقت کرده باشید برای ساخت منو و تنظیمات و ... باید آیکون های مخصوص وارد بازی کنید مثلا برای شروع بازی آیکونی که مربوط به شروع بازی هست را وارد می کنیدو... ولی یه مشکل اینجاست که اگر بخواهیم تعداد زیادی از این اسپریت ها وارد بازی کنیم باید هر یه آیکون را براش یک اسپریت در نظر بگیریم22 و در نتیجه سرعت بازی میاد پایین.
راه حل من:
1: میام یک اسپریت به بازیمون اضافه می کنیم و اسم انیمشن اولیه را مثلا به start تغییر میدیم و آیکون start را براش بارگزاری می کنیم. حالا دیگه نیاز نیست دوباره اسپریت جدید به بازی اضافه کنیم فقط در قسمت انیمشن-یک انیمشن دیگه اضافه می کنیم و اسمش را help تغییر میدیم و همینطور ادامه میدیم و همه آیکون هامون را وارد می کنیم.
[تصویر:  13272792023404984540.jpg]

2:حالا به تعداد انمیشن هایی که قبلا ساختید تو لیوت از اسپریت خود کپی بگیرید.
[تصویر:  72046090436585214791.jpg]

3:حالا برای اینکه اسپریتتون به شکل آیکون های جدا در بیاد باید اسمی که برای انیمشن ها انتخاب کرده بودیم اینجا (Initial animation) اسم را وارد می کنیم و همین کا را برای دیگری ها هم انجام میدیم.
[تصویر:  25713240439979377625.jpg]
4:حالا وارد صفحه دستورات بشین و اگر به شکل نگاه کنید هر کپی که شما از اسپریت اولیه گرفتین یه شناسه مخصوص داره(UII) حالا چنین دستوری میدیم که اگر اسپریت ما شناسش با کپی یکی بود(مثلا الان کپی اسپریت ما 2 هست پس عدد 2 را بهش اضافه می کنیم).
[تصویر:  89152692009172676020.jpg]
5:حالا بهش یک شرط میزاریم که اگر کپی اسپریت ما مساوی 2 بود و روش لمس کنیم چنین اتفاقی بیوفته که خودمون دیگه براش مشخص می کنیم و این کار را برای دونه دونه کپی ها انجام میدیم حالا با یه اسپریت تمام آیکون ها را وارد بازی کردیم 1
[تصویر:  69029671040211131556.jpg]
[تصویر:  49388143894339058525.jpg]
[تصویر:  91382318502497781112.jpg]
پایان
  پاسخ


#3
سلام. یه مقاله‌ای تو سایت اسکیرا هست که اشتباهات رایج در کانستراکت رو بیان کرده. یکی از این اشتباهات استفاده‌ی غیر ضروری از ساب‌ایونت‌هاست، برای مثال در تصویر زیر نیازی به استفاده از ساب‌ایونت نبوده است:

[تصویر:  redundant-subevent1.png]

و می‌شد به صورت زیر خیلی راحت‌تر این کار را انجام داد:

 
[تصویر:  fixed-subevent1.png]

شما هم در این آموزش نیازی به استفاده از ساب‌ایونت نداشتید و می‌تونستید مثل حالت دوم عمل کنید.
معجزات طبیعت هایی هستند که با آن‌ها مأنوس نشده‌ایم
و طبیعت معجزه‌ایست که با آن انس گرفته‌ایم
علی صفایی حائری
  پاسخ


#4
آموزش دو:
يکي از مشکلات بيشتر کاربران و خودم اين بود که چجور يک استوپ درست و صحيح در بازي داشته باشيم که يکي از مهمترين ويزگي بازي داشتن استوپ هم مي تونه باشه. روشي که امروز ميگم شايد بهترين روش باشه4141.
راه حل من:
1:يک اسپريت به بازي اضافه مي کنيم و براش دوتا انيمشن مشخص مي کنيم يکي براي استوپ(puse) و ديگري(repuse) براي اجرا دوباره بازي:
[تصویر:  22949793626964248131.jpg]
2:حالا وارد دستورات بازي ميشيم و يک متغير عددي به بازي اضافه مي کنيم و مقدار اوليه آن را صفر در نظر مي گيريم:
[تصویر:  12412646867478332855.jpg]
3:حالا مثلا يک شئ لمس(touch)به بازي اضافه مي کنيمو چنين دسوري ميديم که اگر رو اسپريت استوپ لمس شد:
[تصویر:  36563516858018896544.jpg]
4:سيستم به متغير ما يک عدد اضافه کنه(1):
[تصویر:  97961368461046292914.jpg]
5:حالا دوباره يه دستور ميديم که اگر شرط متغير ما بزرگتر از يک بود:
[تصویر:  94008331555484227421.jpg]
6:متغير عددي ما به صفر تغيير کند:
عکس
7:حالا دو بار شرط متغير اضافه مي کنيم(مانند5) که يکي مساوي صفر و ديگري مساوي يک:
[تصویر:  49064404781645082618.jpg]
8:حالا ميگيم که اگر متغير مساوي صفر بود بازي طبق معمول عمل کند(1) و اسپريت آن به همان انيمشن اوليه(puse)باشد:
[تصویر:  97101803211160533519.jpg]

9:حالا براي متغير مساوي يک چنين تعريف مي کنيم که بازي در حالت استوپ باشد(0) و اسپريت آن به انيمشن اجرا ديگر بازي(repuse) تغيير کند:
[تصویر:  24067142830631206375.jpg]

حالت کلی:[تصویر:  33712284388941838054.jpg]:حالا اگر بازي را اجرا کنيد مي بينيد با لمس استوپ بازي در حالت استوپ و و لمس دوباره آن بازي از حالت استوپ به حالت معمولي تغيير مي کند.4141
پايان
  پاسخ


#5
آموزش سه:
دوستان تا حالا با خود فکر کردین که چگونه بعد از اینکه از بازی خروجی گرفتین چگونه آن را ویرایش کنید و قابل بروز رسانی کنید در این پست قصد دارم کمی بیشتر در مورد ایده ام توضیح دهم:
حالا اون چیز که در ذهن من آمده را بیان می کنم:
[تصویر:  Untitled_1.jpg]
توضیح مختصر:
من آمدم بازیم را به Ajax متصل کردم و گفتم که اطلاحات در قالب صفحات وب قابل ویرایش باشه و این وقتی صورت میگیره که ما حتما به اینترنت وصل باشیم و اگر به اینترنت وصل نباشیم هیچ اتفاق خاصی رخ نمیده  ولی یک شئ Webstorage که کارش ذخیره متغیر ها هست می تونه این کار را برای ما فقط برای یکبار انجام بده و دفعه بعد دیگر اینترنت هم وصل نباشه اطلاحاتی را که در خود ذخیره کرده را بجای Ajax بفرسته و اون چیزی که ما می خوایم یک بروز رسانی با وصل به اینترنت فقط یکبار و دفعه بعد بدون وصل به اینترنت و دریافت از Webstorage.

دستور عمل:
1:اول میاییم طبق عکس 5 شئ مورد نظر را وارد بازیمون می کنیم:
[تصویر:  Untitled_2.png]
2:داخل اسپریت را به طور مثال یک عکس ماشین می گذاریم و به طور مثال به آن رفتار ماشین(Car) میدهیم.

[تصویر:  Untitled_2.jpg]

3:حالا وارد دستورات میشم و یک متغیر نوشته ای به نام Updata میسازیم و مقدار(value) آن را خالی می گذاریم بماند حالا طبق عکس زیر:

[تصویر:  %D8%B3.jpg]
در شروع لیوت شئ Ajax ما از یک لینک وب اطلاحات را دریافت کنه که من از وبلاگ خود در قسمت صفحات جداگانه-یک صفحه جدید ساختم و در آن اطلاحات را ریختم اما چه اطلاحاتی را؟؟!!!!
مثلا شما می خواهید عکس ماشین شما بعد از بروز رسانی تغییر کند برای اینکار باید لینک عکس ماشین خود را بگذاریم؟ جواب:نه
چرا نه؟ چون اگر لینک عکس را بگذاریم فقط وقتی عکس تعویض میشود که ما حتما به اینترنت وصل باشیم ولی ما می خواهیم بعد از بروزسانی دیگر بدون وصل به اینترنت عکس بروز شود.
پس چکار کنیم؟ دقت کنید هر عکس یک کد(Data URI) خاص خود دارد که شما باید کد عکس ماشین جدید خود را دریافت کرده و آن را در لینک وب خود قرار دهید اما چگونه کد را بدست آوریم:
1:از طریق این سایت
2:از طریق سورس زیر(از این استفاده کنید)----(عکس خود را وارد برنامه کنید و کد آن را کپی کنید)
حالا کد را در لینک خود بریزید و ذخیره کنید.
چرا کد؟ چون هدف ما دریافت کد از طریق Ajax است و می خواهیم آن کد بشود مقدار(Value) متغیر ما که در عکس بالا نیز میبینید که در صورت کامل شدن Ajax -متغیر ما مقدارش همان کد عکس میشود با دستور(Ajax.LastData) و شئ Text نیز آن اطلاحات را
نمایش میدهد. تا اینجا کار با دریافت اطلاحات تمام شد حالا نیاز به ذخیره اطلاحات داریم که در کل====>> متغر=اطلاحات
4:طبق تصویر زیر اطلاحات را با Webstorage ذخیره می کنیم که من گفتم اگر در لیوت لمس(Touch) شود اطلاحات ذخیره شود و بعد از ذخیره دیگر مهم نیست که به اینترنت دسترسی داشته باشیم چون دیگر کد عکس همیشه درون متغیر ما ذخیره شده است:
[تصویر:  %D8%B4.jpg]
توضیح خاصی ندارد چون قبلا در موردش در پست های مختلف توضیح داده شده و اگر می خواهید متوجه شید به این پست مراجعه کنید.
5:حالا بعد از دریافت کد عکس و ذخیره آن نوبت به نشان دادن عکس هست که با توجه به شکل:
[تصویر:  %D8%B2.png]
یک شرط ساختیم که اگر متغیر مساوی با خوده متغیر(Updata) باشد اسپریتی که قرار هست بعد ها بروزش کنیم را در قسمت
Load image from اسم متیغر را دوباره وارد کنیم چون کد عکس درون متغیر هست.

دانلود سورس
  پاسخ


#6
آموزش چهار:
دقت کردین که بعضی از اسپریت ها (sprite) را نیاز داریم که مربوط به تنظیمات هستند مثل قطع صدای بازی که باید اسپریت منحصر به فرد خود را داشته باشد که باید دو قسمت (ON/OFF) داشته باشد و این باید جوری عمل کند که با لمس اول صدا فعال و با لمس دوم صدا غیر فعال شود:[تصویر:  Untitled_1.jpg]
1:در شروع به دو شئ نیاز داریم:
[تصویر:  %D8%B3.jpg]
2:در اسپریت خود دو انیمشن میسازیم و مانند عکس زیر عمل می کنیم:(دوتا عکس که خودمون طراحی می کنیم)

[تصویر:  %DB%8C%DA%A9.jpg]

3:وارد دستورات بازیمون میشیم و یک متغیر به نام Boolean میسازیم و مانند عکس زیر عمل می کنیم:

[تصویر:  %D8%AF%D9%88.jpg]

چنین دستوری دادیم که اگر بروی اسپریت ما لمس(Touch) شود سیستم به متغیر ما یک عدد اضافه کنه و دوباره چنین دستوری دادیم که اگر متغیر بزرگتر از یک بود سیستم متغیر ما را صفر کند.
حالا باز دو شرط مختلف برای متغیر میسازیم که یکی برابر -0- و دیگری برابر-1- و جلوی صفر می گوییم که اسپریت ما به انیمشن "غیرفعال" تبدیل شود و جلوی یک می گوییم اسپریت ما به انیمشن "فعال" تبدیل شود.
Boolean=0
[تصویر:  %D8%B3%D9%87.jpg]
Boolean=1

[تصویر:  %DA%86%D9%87%D8%A7%D8%B1.jpg]
کار ما تمام شد حالا اگر شما می خواهید که صدا یا خیلی رویداد ها اتفاق بیافتد فقط لازم است جلوی شرط های صفر و یک دستور بدین.
دانلود سورس (برای صدا)
  پاسخ


#7
آموزش پنج:
دوستان اگر در بازیتون از شئ Mouse استفاده می کنید بهتر است جلوه شکل موس را در محیط بازی تغییر بدین برای اینکار نیاز به 2 شئ داریم:
[تصویر:  mm01%20-%2003.jpg]
1:sprite برای جایگزینی شکل موس به جای شکل موس قبلی
2:mouse برای دادن برخی دستورات در بازی
بعد از وارد کردن دو شئ, وارد دستورات میشیم و میگیم هر تیک ثانیه (Every Tick) مکان اسپریت ما (set position) بشود مکان موس ما (mouse.X ,mouse.Y).
[تصویر:  mm01%20-%2001.jpg]
خوب اگر بازی را تست کنید مشاهده می کنید که اسپریت ما در مکان موس قرار می گیرد ولی یک مشکل دارد اینکه هنوز شکل موس قبلی روی اسپریت وجود دارد برای حل این مشکل باید بگیم در شروع لیوت (on the start of layout) شئ موس ما به (set cursor style) , شکل آن Nano باشد(هیچی).
[تصویر:  mm01%20-%2002.jpg]
حالا اگر دوباره بازی را تست کنید میبینید این مشکل هم حل شد حالا می تونید چند انیمشن نیز به اسپریت قبلی اضافه می کنید می تونید بگین اگر روی صفحه راست کلیک شد یا.... اسپریت ما به اسپریت (set animation) دیگه تغییر کنه.
  پاسخ


#8
آموزش شش :
اگر در حال ساخت بازی پلتفرم هستید و از تیر (Bulit) در بازی استفاده کردین و چنین دستوری دادین که اگر پلیر کلید space را بزند پلیر ما از خود به سمت جلو تیر بزند(spam anothe object) و تا اینجا هیچ مشکلی نداریم اما به 2 نکته توجه باید کرد:
1:وقتی پلیر روش به سمت راسته که به درستی تیر زذه میشه ولی اگر روش به سمت چپ باشه باید تیر به سمت چپ بره ولی به سمت راست میره.
2:وقتی پلیر روش به سمته راسته و تیر میزنه و همان لحظه روش را به سمت چپ کنه تیر هایی که قبلا رفته هم به سمت چپ حرکت می کنند.
خلاصه مطلب
برای رهایی از این مشکل بهتر هست به این صورت عمل کنید:

[تصویر:  1e.jpg]


  پاسخ


#9
آموزش هفت :
دوستان رابطه گرافیکی جذاب برای کلید های لمسی خیلی مهم هست و اگر شما در حال ساخت بازی هستین پیشنهاد می کنم حتما این آموزش را بخونید.
دوستان دقت کردین که توی گوشی هنگام لمس کردن دکمه ها کمی سایز و روشنایی اونا تغییر می کنه و این خیلی برای بازی ها لازم هست.
شروع:
1:ابتدا این پلاگین را دانلود کنید و سپس نصبش می کنید (آموزش نصب پلاگین).
2:یک اسپریت به بازیتون اضافه کنید و بهش چند تا آیکون اضافه کنید(آیکون ها را در یک انیمشن بصورت فارم فارم اضافه کنید و سرعت انمیشن را 0 کنید) و حالا از همون اسپریت چند تا کپی تو صفحه تون بگرید(Ctrl+left click>>drag).
مثل زیر:

[تصویر:  Untitled_2.jpg]


3:حالا به بازیتون پلاگین (touch_wrap) را اضافه می کنید و وارد دستورات میشین و مانند زیر عمل می کنید:

[تصویر:  Untit1led_2.jpg]

خلاصه مطلب
اونت یک: ما می خوایم وقتی روی اسپریتی کلیک نشده سایزش خوده سایز اسپریت باشه(1 سایزفعلی اسپریت) و روشنایی هم 95 باشه.

برای invert باید روی اونت راست کلیک کنید و گزینه invert را پیدا کنید تا اونت شما چپه بشه.
نکته:می تونید بجای اونت دو از Eles استفاده کنید ولی در تست هایی که کردم اونت دو بهتره به جای Eles.


کد:
in touching(invert)/sprite/set scale "1" and set opacity"95"

اونت دو:حالا اگر بر روی اسپریتمون کلیک کنیم سابزش کمی گنده تر شده و روشنایی هم بیشتر میشه.

کد:
On touched/sprite/set scale "1.005" and set opacity"100

اونت سه: این دستور در خوده شئ تاچ کانستراکت2 نبود بخاطر همون گفتم از این پلاگین استفاده کنید که به شما امکان ریلیز را میده.حالا وقتی دستمون را از اسپریت برداشتیم(لمس را برداشتیم) اکشن ها اجرا میشن.(الان وقتی دستمون را از اسپریت برداریم و اسپریت فارمش 3 باشه از بازی خارج میشه).

کد:
On touched release/browser/close

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


 سپاس شده توسط: maadking ، mamaloo79 ، DarkPlanet ، ghader ، makan parsi ، amirho24 ، ghost ، amin hosseini ، ᔕinaᗪehghani
#10
آموزش هشت :
آموزش جامع و کامل ذخیره بازی برای برای دیدن اینجا کلیک کنید.


  پاسخ


 سپاس شده توسط: mehrdad.ch ، Vizmark# ، amin hosseini ، ᔕinaᗪehghani


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Star مهم آموزش خروجی اندروید روی سیستم شخصی rezamms 127 82,184 1402/8/24، 09:00 عصر
آخرین ارسال: mehdiosw
  مهم آموزش تصویری خروجی مستقیم - یکبار برای همیشه! rezamms 33 19,756 1401/2/13، 09:39 عصر
آخرین ارسال: kamran_cn
  خروجی اندرید davinmstr1 2 2,423 1400/8/4، 10:23 عصر
آخرین ارسال: ᔕinaᗪehghani
  AAB (بسته برنامه اندروید) چيست؟ + نحوه خروجي گرفتن در كرودوا ᔕinaᗪehghani 15 7,868 1400/6/21، 01:55 صبح
آخرین ارسال: mehdi1100
  رفع مشکل خروجی فونگپ (: M.gh 11 7,955 1400/4/10، 02:17 صبح
آخرین ارسال: oak

پرش به انجمن: