آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کند اجرا شدن انیمیشن بازی 2048

Reza  10 سال پیش  10 سال پیش
0 0

سلام

    حدود 1 هفته هست که دارم انیمیشن بازی 2048 رو میسازم که هم بازی رو کامل کرده باشم و هم تمرینی برام باشه . توسط یک Thread با فاصله زمانی یکنواخت عددها حرکت میکنن . برنامه درست اجرا میشه و انیمیشن هم کار میکنه ولی چون پروسس زیاده ، در اجرا تأخیر و پرش دیده میشه . چون هر دفعه که Thread ، متد onDraw  رو صدا میزنه همه چیز از اول رسم میشه حتی اون چیزهایی که ثابت هستند .

    1 - آیا راهی وجود نداره که وقتی متد onDraw رو صدا میزنیم بهش بگیم بعضی چیزها ثابت بمونه و تغییر نکنه و نیازی به ترسیم مجدد نباشه و فقط چیزهایی که ما مشخص میکنیم دوباره رسم بشه ؟ یا اینکه نه ، متد onDraw کل صفحه رو دوباره رسم میکنه ؟

    2 - بازی 2048 که استاد در بخش 24 دانلود کردن :

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

    لطفا اگه کسی با انیمیشن کار کرده بگه چطور باید این کار رو انجام بدم ؟ من با الگوریتم نویسی مشکل ندارم ، یعنی هر روشی که شما بگین میتونم با اون روش انیمیشن بسازم ، فقط نمیدونم روش خوب و صحیح که بتونه نرم و روان کار کنه چیه ؟ ( بازم میگم روش بالا که استفاده از متد onDraw هست درست کار میکنه ، ولی ظاهرا به دلیل رسم همه چیز از ابتدا ، روش خوبی نیست و پروسس زیاد داره ) .

ممنونم .

+1 0
استفاده از ترد اینجا به صرفه نیست.خیلی راحت میتونین از کلاس انیمیشن استفاده کنین.خیلی ساده با ساختن ۴ دونه انیمیشن translate میشه کل انیمیشن بازی رو پیاده سازی کرد. (10 سال پیش)
0 0
واقعا ممنون (10 سال پیش)
0 0
درسته ولی انیمیشن translate روی کل کنترل جواب میده یعنی کل کنترل جابجا میشه ، در صورتی که اگه آموزش 2048 رو دیده باشین ، یه کنترل برای کل صفحه درست میشه که شامل 16 سلول میشه و این سلول ها بخشی از کل کنترل هست و نمیشه اونا رو جابجا کرد ! (10 سال پیش)
0 0
خیر. باید در فایل جاوای مربوطه یک اشاره گر(بقول استاد) بسازید و اون انیمیشن رو فقط به سلول های مورد نظر نسبت بدید. (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Reza  10 سال پیش
0 0

   من با انیمیشن translate کار کردم ولی این فرق میکنه ، مشکل اینجاست که فرضا اگه انیمیشن رو بسازم ، کنترلی ندارم بهش اختصاص بدم . مثلا استاد در آموزش نوشتن :

 imgSample.startAnimation(set);

    یعنی کل کنترل ( imgSample ) رو انیمیت میکنه ، در صورتی که من میخوام یه مربع که با drawRect رسم شده رو انیمیت کنم ، نمیشه که . چون کنترل نیست و خودش بخشی از کنترل imageView هست و اصلا id نداره ! به چی اختصاص بدم ؟!

0 0
کسی نمیدونه که آیا اصل این بازی هم از canvas برای انیمیشن استفاده کرده یا نه ؟ نمیشه برای اشکال هندسی رسم شده در ImageView که با canvas رسم شده ، انیمیشن translate و ... نوشت ؟ اگه میشه چطوریه ؟ انیمیشن رو به چی اختصاص بدم ؟ (10 سال پیش)
+1 0
دوست من . منطقی نیست برای ساخت بازی همه ی اجزای آن را انیمیت کرد .شما میتونید شکل مربع ها رو در فایل xml طراحی کنین و یا یک کاستوم کنترول بسازین که بتونه text هم نشون بده.بعد برای اون کاستوم کنترل انیمیشن translate بسازین. (10 سال پیش)
0 0
واقعا ممنون از جوابتون . امتحان میکنم ، ولی فکر کنم با توجه به اینکه بازی جوریه که یکسره مربع ها تعدادشون کم و زیاد میشه ، الگوریتمش خیلی پیچیده میشه . (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .