یک صفحهٔ 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 را ثابت یا هنگام تغییر اندازه مرورگر آن را به‌روزرسانی کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:43
دسته بندی ها: JavaScript JavaScript for beginner
sara در 201 روز قبل ساعت 05:29

برای پایداری حرکت توپ در نرخ فریم‌های مختلف، محاسبهٔ dt بین فریم‌ها و استفاده از آن برای به‌روزرسانی موقعیت را اضافه کنید. هنگام تغییر اندازهٔ صفحه، canvas را با devicePixelRatio هم‌ترازی دهید تا توپ هم‌ اندازه و با وضوح مناسب رسم شود و مقدار width/height را به‌روزرسانی کنید. در برخورد با لبه‌ها، جهت سرعت vx یا vy را به‌طور دقیق معکوس کنید تا از عبور توپ از لبه جلوگیری شود. استفاده از requestAnimationFrame به‌جای setInterval و پاک‌سازی بوم در هر فریم به‌طور روان انیمیشن می‌دهد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری