ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
1394/5/23، 04:52 عصر
سلام و خسته نباشید به تمام کاربران سی 2 .
در این قسمت هر که باگ های از سی 2 مواجه شده مطرح کنید:
1- باگ های در خروجی های غیر از اچ تی ام ال. کلا سی 2 انجینی برای بازی سازی برای ساخت وب است. که با کمک خروجی چند گانه کوردوا خروجی های دیگر برای پلتفرم های دیگر می گیرد که در پیاده سازی تعدادی مشکل بخصوص در صدا بهینه سازی و رندمان اجرایی بازی و بارگزاری دارد
حتی خروجی مستقل ویندوز هم ندارد و توسط یک برنامه دیگر که خیلی هم حجم دارد خروجی شبیه سازی می شود یک چیزی شبیه به خروجی کراس والک است.
2- باگ های تمام صفحه. چون از پلتفرم وب استفاده می کند هیچ قابلیت سازگاری تمام صفحه با انواع گوشی ها و نمایشگر ها ندارد و فقط به یک اندازه آنهار بزرگ یا کوچک می کند . تقریبا تمام موتور های بزرگ کاملا سازگار با همه صفحه نمایشگر ها هست. در نسخه 211 به بعد قرار کیفیت و سازگاری بیشتری قرار دهند
3-باگ در رویداد کلیک در شی موس و تاچ بروی اشیای نامرئی: اعصاب خورد کننده ترین باگ ممکن هست. وقتی یک شی را نامرئی است نباید قابلیت کلید داشته باشد اما اگر یک شی مثل دکمه را نامرئی کنید و یکسری کد در رویداد کلیک بنویسید فقط کافی است جایی که دکمه قرار گرفته باشد کلیک کنید با اینکه نامرئی است و شما انتظار ندارید اکشن های دکمه کار کنند ولی کار می کند.
برای رفع این مشکل باید یک شرط اضافی در قسمت رویداد ها کاندیشن ها قرار بدهید که اگر دکمه قابل دیدن بود کلیک شود.
همین مشکل را برای لایه ها داریم . اگر یک لایه را نامرئی کنید اما باینکه اشیا دیده نمی شود ولی اگر شی مثل دکمه داشته باشد قابل کلیک شدن است.
برای رفع این مشکل 2 راه دارید
1- در داخل شرط ها تغریف کنید اگر لایه قابل دیدن بود قابل کلیک شدن است
2- یا تمام اشیا در داخل آن لایه را نامرئی کنید و سپس شرط اگر شی قابل رویت بود را به شی اضافه کنید
ارسالها: 469
موضوعها: 21
تاریخ عضویت: بهم 1393
مکان: اصفهان
سپاسها: 791
692 سپاس گرفتهشده در 322 ارسال
سلام
اگه بخوایم باگهای کانستراکتو بنویسم یه کتاب 100 صفحه ای میشه.
اوایل که کانستراکت را نصب کردم نه ولی بعد از اونکه ویندوزم را عوض کردم خیلی از سورسا و حتی چند تا که خودم ساخته بودم را وقتی باز می کنم یه ارور میده و سریع کانستراکت بسته میشه.
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
اکثر زبان های برنامه نویسی و انجین ها هنگامی که شی ناپدید است یکثری رویداد ها و کار ها را لغو می کنند مثلا همان کلیک کردن . اگر بنا بود که در هنگام نامرئی بودن کلیک شود . اینجور ی هر چی پوشه مخفی هم باید قابل کلیک شدن بود. تازه اگر بخواهیم یک شی نامرئی کلیک کنیم کافی است شفافیت را تغییر دهیم . اینجور فرقی بین تمام شفاف و مخفی نمی ماند و یک فیلد اضافی می شود
وقتی خروجی مستقل بگیرید هم سازگاری بیشتری دارد و هم از تمام توانایی انجین بهرمند خواهید شد و باگ آن کمتر است . خروجی تحت اندروید و آی او اس که واسطه است اگر مثل گیم میکر خروجی اندروید خیلی خوب می شد.
در مورد خروجی ویندوز هم باید بگم که خروجی توسط گروه دیگری انجام شده و در هنگام خروجی شما فایل اجرایی مستقل نمی دهد مثل گیم میکر که خروجی بدون واسطه می دهد. که حجم ان خیلی کمتر و هماهنگی بیشتر و باگ کمتر است. وقتی خروجی توسط یک شرکت دیگر به اشتراک گذاشته می شود از توانایی موتور کمتر و ناهماهنگ تر می شود.
در مورد سازگاری اصلا با آقا مجتبی به طور کامل موفق نیستم . من تنظیمات صفحه بازیم را در لوزشن بالا قرار دادم در داخل موبایل برخی کمی فضای خالی می ماند وبرخی خیلی فضای خالی . اصلا این فضای خالی در فول اسکرین چه قابلیتی دارد . وقتی ما مد فول اسکرین را انتخاب می کنیم می خواهیم تمام صفحه بپوشاند و از همه اندازه نمایشگر ها پشتیبانی کند.
هر چی ما روزلوشن مرحله ها تنظیم کنیک کلا ناسازگار است یکسری موبایل را حمایت میکند و برخی کم و برخی خیلی زیاد
در مورد که گفتم برای وب ساخته شده است منظورم این است که ابزار ها وامکناتش را بیشتر برای وب است .
انجین های که چند پلتفرمی را پشتیبانی می کنند خودشان را متمرکز و درگیر یک پلتفرم نمکند بصورت عمومی این قابلیت هایش را می گذارند و به کمک تبدیل کننده ها و هسته پلتفرم ساز کد ها و منابع را به پلتفرم مورد نظر تبدیل می کند
اگر از انجین گیم میکر صبحت شد یکسری قابلیت ها مثل خروجی مستقل اندروید و ویندوز ... و تمام صفحه شدن و زبان برنامه نویسی مسقل دارد . با همه ای ن خوبی ها این موتور هم نقص های خیلی بارزی دارد . که اولیش خیلی هم به چشم میاد از زبان فارسی حمایت نمی کند و طراحی نقشه بازی از کانسراکت خیلی ضعیف است.
البته نمای کاری یا همان ویوپورت کانسراکت خیلی از گیم میکر قوی تر است اما بازهم خیلی ضعیف است مثلا کلا از سی اس اس حمایت نمی کند . فارسی را معکوس می نویسد . دکمه ها و فرم های وردی را خیلی بد نمایش می دهد.
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
من کل آموزش ها را با دقت خواندم و با خیلی از موتور ها بصورت حرفه ای کار کردم.
اساس حلقه for برای حلقهای ترتیبی و عددی است و حلقه while برای حلقه های منطقی است. می شود
جایگزین هم کرد ولی انعطاف را پایین می آورد و هر کدام کاربرد خاص خود دارند.
آیا نمی توان با ویژال سی بازی ساخت پس چه نیازی به کانسراکت است. بله درست می گویید اما در برنامه نویسی شی گرایی باید فیلد ها و متد ها قابلیت مختلفی و یا روش مختلفی را به کار ببرند
ما چندین مد تمام صفحه داریم ولی هیچ کدام بدرد پلتفرم های دستی (تبلت یا گوشی) نمی خورند
می دانید که هیچ روزلوشن ایدال وجود ندارد باید انجین خودش کل صفحه نمایشگر را بپوشاند.
ما که در داخل یونیتی و گیم میکر و ... بازی های ساخته شده با تمام صفحه نمایشگر ها سازگار دارند. و هیچ جای خالی را نمی گذارد.
ما فقط تعین می کنیم چقدر از نقشه قابل رویت باشد. وقتی ابعاد دروبین را در 480*800 قرار می دهیم باید با نمایشگر که 1280*840 و ... سازگار باشد. اگر بازی جاوا را دیده اید مثل فیفا با روزلوشن های مختلف ارائه می شد. اکنون کانسراکت همین وضیعت را داراست یعنی باید بازیمان را با ابعاد مختلف بسازیم
خلاصه مد فول اسکرین(پوشاندن کل صفحه با ابعاد مختلف نمایشگر) در کانسراکت وجود ندارد.
وتنها راه ممکن این است که روزلوشن که بیشتر نمایشگر ها را ساپورت می کند را وارد و
فول اسکرین مرورگر را در حالت scale outer قرار داد.
من این قابلیت ها را در نمای کاری یا viewport گفتم . viewport خیلی واقع گرانه یا realtime نیست . مثلا اگر خواص رنگ را عوض کنید برای مشاهده مجبورید دکمه ران run را بزنید و مشاهده کنید (هر تغییری ایجاد می کردیم در نمای کاری قابل مشاهده بود خیلی عالی بود)
زبان فارسی را در زمان اجرا درست عمل می کند
2 مشکل خیلی بزرگ دارد که واقعا وقتی به آن برخورد کنید عذاب آور است خوب به این موضوع ها دقت کنید
1- ما بیش از 50 مرحله داریم و هر مرحله داری یک لایه پس زمینه یک لایه اصلی یک لایه پنل و یک لایه منو است. کل مراحل پیاده سازی کردیم حالا متوجه می شویم که یک چیز در پنل کم است و یا یک قسمت ایراد دارد باید 50 مرحله را ویرایش کنیم تا ایتم اشتباه در ست شود و تبدیل به یک کابوس می شود
اگر مولفه ای بود یک لایوت را پنل بازی مان را می ساختیم و در کل مراحل بازی به ارث می گذاشتیم(در داخل یک لایه تعریف می کردیم که محتوای این لایوت را نمایش دهد ) حالا اگر می خواستیم پنل را تغییر دهیم کافی است لایوت پنل را تغییر دهیم و به طور خود کار بقیه هم تغییر می کرد.
2- عدم حمایت زنجیره ای. ما می خواهیم فونت تکست را تغییر دهیم. ما چند دسته ورودی تکست داریم که فونت مختلفی دارد.
اولین مشکلی وجود دارد که شی تکست فیلد مهم فونت ندارد البته شی هایی تکست دیگری هستند که فونت دار هستند.
دومی در صورت وجود این فیلد اگر بخواهیم فونت رادوباره تغییر دهیم مجبوریم همه آنها تک به تک را تغییر دهیم که عاقلانه به نظر نمی رسد
راه دیگر نوشتن کد در برگه رویداد ها است که راحتی را کاهش میدهد و باید فرد تسلط کافی به سی اس اس داشته باشد و کد های سی اس اس را وارد کند که خالی از باگ نیست فرد این کار را انجام دهد.
راه کار: کانسراکت شی فونت را داراست اما قابلیت ذنجیره ای ندارد یعنی ما در شی فوت قلم متن را بر می گزینیم و در فیلد فونت تکست شی فونت را ضمیمه می کنیم(فونت تکست از شی قلم پیروی کند ) و خیلی اشیای دیگر.
من در یک تاپیک ناتوانی های این موتور را شرح دادم.
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
من به دو مشکل بزرگ برخوردم که پلاگین های کانسراکت ناتوان بودند. اگر راحلی به نظرتان می رسد مطرح کنید.
1- پلاگین تابع : پارامترهای تابع فقط نوع اتمیک را قبول می کنند یعنی نوع های ساده چون اعداد ، رشته و بولین که زیر مجموعه ندارند. شما نمی توانید یک نمونه یا یک شی را ارسال کنید
راه حل : اگر شی خاصی مد نظر است می توانید یو ای دی (uid) آنرا توسط پارامتر ارسال کنید
درقسمت شرط ها(رویداد تابع) زیر شرط ساخت تابع شرط چک کردن که اگر یو ای دی این شی برابر با مقدار پارامتر باشد.
2- اکشن ساخت شی : می خواستم از بین 50 شی یکی را تصادفی انتخاب کرده و آنرا بسازم . این اکشن تنها شی انتخاب شده را می سازد و هیچ چیزی را نمی دهد که با نام شی آنرا بسازید.
راه حل :
1- برای ساخت شی تصادفی ابتدا در یک آرایه بصورت تصادفی یک نام را انتخاب می کنیم سپس چندین زیر شرط می سازید که اگر مقدار آرایه انتخاب شده برابر با هر کدام از مقدار ها بود و در قسمت اکشن آن شی ایجاد کنید
معایب : این روش برای اشیا که تعدادشان زیر ده است خوب است اما اگر تعداد بیشتری مد نظرتان است باید هر شی یک شرط و یک اکشن ساخنه شود.
2- همه اشیا را در یک شی قرار دهیم و از انیمشن استفاده کنیم . دوباره یک آرایه که عناصر آن با نام انیمشن پر شده است می سازیم
سپس یک ایتم را به صورت تصادفی بر می گزینیم . شی را ایجاد کرده و مقدار انیمشن را برابر با عنصر انتخاب شده قرار می دهیم.
مزیت : فقط به 4 اکشن نیاز داریم و معایب راه حل اول را ندارد
معایب : فقط برای اشیایی که ویژگی های آن مشابه به هم است کاربرد دارد. اگر هر شی یک رفتار خاص داشته باشند این روش بدرد نمی خورد.
3-تبدیل یک شی به شی دیگر : شما در گیم میکر براحتی می توانستید یک شی رابه شی دیگر تیدیل کنید. اما در کانسراکت چنین اکشنی وجود ندارد.
راه حل : برای این کار می توانید شی که می خواهد تغییر کند یک نمونه از آن شی بسازد(منظور از شی ، شی که می خواهد به آن تبدیل شود)
شی ایجاد شده بایستی در مختصات دقیق شی قبلی ایجاد شود .سپس شی قدیمی حذف شود.
2 تا پیشنهاد برای مدیران سایت
1- یک دکمه ذخیره موقت بگذارید تا اطلاعات را موقت ذخیره کنیم. من این مطلب را دو بار نوشتم چون خط آخر نوشتم بودم که یکدفعه برق رفت و تمام زحمت های که برای نوشتم کشیدم به هدر رفت. یک دکمه undo بگذارید ممنون می شویم.
2- بدلیل اینکه تاپیک ها سوالات زیاد می شوند بهتر است دسته بندیشان کنید و به گرو های تقسیم کنید که پیدا کردن مطب هم راحت تر شود
مثلا گروهایی خروجی (که خروجی هم به زیر گروه خروجی اندروید ، پی سی). تبلیغات و درون برنامه،مشکلات بازی و ...
ارسالها: 1,091
موضوعها: 122
تاریخ عضویت: دي 1393
مکان: همدان-ملایر
سپاسها: 236
1923 سپاس گرفتهشده در 1126 ارسال
می توانید تاپیک های قبلی در دسته متفرقه یا عمومی قرار دهیم و از این به بعد هر کس موضوع را براساس دسته مطرح می کند.
قبلی ها هم به کاربرانی که سوال را مطرح کردند اجازه دهد تا موضوع خود را به دسته مورد نظر انتقال دهند