یک صفحهٔ HTML بسازید که در آن یک توپ رنگی با استفاده از Canvas و JavaScript بهصورت پیوسته بین لبههای صفحه جهش کند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:43 0.0
برای حل، یک عنصر canvas در HTML ایجاد کنید و با JavaScript مختصات و سرعت توپ (x, y, vx, vy) را نگهداری کنید؛ در هر فریم با استفاده از requestAnimationFrame ابتدا بوم را پاک کنید (clearRect)، سپس توپ را رسم کنید و مختصات را با سرعت بهروزرسانی کنید؛ اگر توپ به لبههای canvas برخورد کرد جهت سرعت را معکوس کنید تا جهش ایجاد شود. از توابع canvas مثل beginPath، arc و fill استفاده کنید و برای رفتار یکنواخت از مقداردهی اولیه مناسب سرعت و اندازه و در صورت نیاز dt بین فریمها بهره ببرید؛ نکتهها: از requestAnimationFrame بهجای setInterval استفاده کنید و برای تست اندازه canvas را ثابت یا هنگام تغییر اندازه مرورگر آن را بهروزرسانی کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری حرکت توپ در نرخ فریمهای مختلف، محاسبهٔ dt بین فریمها و استفاده از آن برای بهروزرسانی موقعیت را اضافه کنید. هنگام تغییر اندازهٔ صفحه، canvas را با devicePixelRatio همترازی دهید تا توپ هم اندازه و با وضوح مناسب رسم شود و مقدار width/height را بهروزرسانی کنید. در برخورد با لبهها، جهت سرعت vx یا vy را بهطور دقیق معکوس کنید تا از عبور توپ از لبه جلوگیری شود. استفاده از requestAnimationFrame بهجای setInterval و پاکسازی بوم در هر فریم بهطور روان انیمیشن میدهد.
گزارش