ارسالها: 35
موضوعها: 9
تاریخ عضویت: شهر 1394
مکان: ایران/گیلان/رودسر
سپاسها: 7
1 سپاس گرفتهشده در 1 ارسال
سلام . ممنون از آموزش عالیتون !
توی آموزش استوپ بازی مشکل کوچیکی دارم . اونم اینه که وقتی بای استوپ میشه اسپرایت ها از حرکت میوفته و تایمر و چیز های دیگه هم وایمیسته اما خاصیت تاچ اسپرایت ها غیر فعال نمیشه . یعنی من اگه گفتموقتی رو اسپرایت bird تاچ شد بمیره ! در حالت استوپ این کار انجام میشه !
و یک سوال کوچک دیگه هم دارم !
من اومدم گفتم وقتی رو اسپرایت x کلیک شد یه عدد به متغیر امتیازم اضافه شه . اسپرایت با تاچ شدن نمیمیره و فقط انیمیشن و جهتش عوض میشه پس کاربر میتونه چندین بار تاچ کنه و امتیاز بگیره . چطور بگم وقتی کاربر با زدن اسپرایت به امتیاز گرفت دیگه اضافه شدن امتیاز لغو شه ؟! بهترین راه پیشنهادی شما چیه ؟!
یک دنیا ممنون :*
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
یکی از مشکلات کانستراکت فقط از یک زمان سنج استفاده می کند. واون زمان سنج کل اجرای بازی تاثیر دارد .یعنی با صفر کردن آن هم چیز جز چند تریگر همگی متوقف می شود. چون اکشن سیستمی است روی کل اشیا اعمال می شود و هیچ کارکتری نه حرکت می کند نه کدی اجرا می شود.
در این حالت رویداد های و اکشن های زمان از کار می افتد مثلا شما stop کردید بعد از این اکشن اگر اکشن مثلا وقفه بیاورید و اکشن اجرا دوباره. می بینید وقفه اجرا نمیشود.
این یک ضعف بنیادی هست چون همه چیز متوقف می شود .تنها باید رویداد هایی فعال هستند که کاربر کنترول می کند مثل فشردن کلید یا تاچ کلیک کردن. اگر این ها قرار بود این ها کارنکند هیچ راهی وجود نداشت تا به حالت اجرا بیاوریم و همیشه استوپ می شد.
این راه ساده هی هست برای توقف اما انتعطاف کافی ندارد. موتور های دیگر بخشی از بازی رو متوقف می کند و بخش دیگر نه. مثلا چند تا لایه ها متوقف می شود و لایه منو فعال هست. امیدواریم که کانستراکت در نسخه 3 این کار را کند.
چون در این حالت بازی هایی را می توان ساخت که به محض متوقف شدن فقط قسمت گیم پلی و کارکترها متوقف شود. و لایه مثل بک گراند که فقط برای زیبایی است و دارای جلوه های ویژه و متحرک است به کار خود ادامه دهد.
تقدم اکشنها اهمیت دارد . شما تقدم را رعایت نمی کنی. همین طور استفاده از رویدادها .
شما باید شی را نابود کنی سپس امتیاز کسب شود.
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
برای نابودی از اکشن Destory استفاده کنید قبل از امتیاز دادن.
ارسالها: 35
موضوعها: 9
تاریخ عضویت: شهر 1394
مکان: ایران/گیلان/رودسر
سپاسها: 7
1 سپاس گرفتهشده در 1 ارسال
ببینید نمی خوام نابود بشن . با زدن روی اسپرایت انیمیشن عوض میشه و یک امتیاز به متغیر امتیازم اضافه میشه . اما مشکل اینجاست که هر چند بار رو اسپرایت کلیک کنم امتیاز اضافه میشه . می خوام وقتی یه بار اضافه شد با کلیک های بعدی امتیاز اضافه نشه .
چه انجمن و کاربران خوبی
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
در رویداد کلیک روی شی شما باید یک رویداد دیگر به نام is playing هم اضافه کنید و در فیلد آن انیمیشنی که باید امتیاز داده شود رو بنویسید.
و در اکشن ایتدا اکشن پخش انیمیشن جدید سپس امتیاز.
وقتی شرط بالا رو اضافه می کنید .اجرا شدن اکشن ها رو فیلتر می کند. و می شود زمانی که اسپرایت کلیک شد و انیمیشن مثلا سیب در حال پخش بود. در قسمت اکشن شما چون انیمیشن رو عوض می کنی پس دیگه اجرا نمی شود
ارسالها: 35
موضوعها: 9
تاریخ عضویت: شهر 1394
مکان: ایران/گیلان/رودسر
سپاسها: 7
1 سپاس گرفتهشده در 1 ارسال
خیلی ممنون . مشکلم حل شد !
فقط اگه راهی پیدا کردین که در هنگام استوپ همه رویداد ها از جمله تاچ لغو بشه ما رو هم در جریان بزارین .
چه انجمن و کاربران خوبی
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
میتوانی شرط دیگری بگذارید که اگر زمان مخالف صفر بود اکشن کلیک کردن روی اسپرایت مثلا سیب اجراشود.
یا خیلی راحت با یک متغییر سراسری اگر بازی متوقف شد مقدار 0 و اگر بازی در حال جریان داشت مقدار 1.
بعد در شرط کلیک کردن یک شرط دیگر مقایسه مقدار متغییر. اگر یک بود قابل کلیک شدن می شود