پیشی را با شانههای خود در اسکرچ کنترل کنید
با خم کردن شانههای خود، پیشی را به چپ و راست حرکت دهید، سیبها را بگیرید، از دوناتها دوری کنید و قبل از تمام شدن زمان، بیشترین امتیاز ممکن را کسب کنید.
سطح
متوسط
زمان تقریبی
۲۰ تا ۳۵ دقیقه
افزونه
تشخیص بدن
📖 چه چیزی یاد میگیرید
- چگونه از تشخیص بدن (PoseNet) برای تشخیص بدن یک شخص استفاده کنید.
- چگونه زاویه بین شانه چپ و راست را اندازه بگیرید.
- چگونه یک شخصیت اسکرچ را با حرکت بدن کنترل کنید.
- چگونه سرعت حرکت را بر اساس میزان خم شدن شانه تغییر دهید.
- چگونه اشیای سقوطکننده با موقعیت و سرعت تصادفی بسازید.
- چگونه از متغیرهای مشترک برای کنترل یک بازی زماندار استفاده کنید.
تشخیص بدن نقاط مختلف بدن مانند شانهها، آرنجها، مچ دستها، لگن، زانوها و مچ پاها را ردیابی میکند. در این پروژه، زاویه بین شانهها حرکت افقی پیشی را کنترل میکند.
🧰 چه چیزهایی لازم دارید
- یک رایانه با دوربین سالم و فعال
- Chrome، Firefox، Edge یا یک مرورگر مدرن مبتنی بر Chromium
- Pishi.ai در اسکرچ (پروژه جدید ایجاد کنید)
- افزونه تشخیص بدن (راهنمای آن را مشاهده کنید)
- شخصیت Pishi
- شخصیت Apple (سیب)
- شخصیت Donut (دونات)
- متغیرهای زیر را ایجاد کنید:
- score (امتیاز)
- time (زمان)
- angle (زاویه)
- apple speed (سرعت سیب)
- donut speed (سرعت دونات)
برای عملکرد بهتر، نور محیط مناسب باشد و قسمت بالایی بدن شما در دید دوربین قرار داشته باشد تا تشخیص بدن بتواند هر دو شانه را بهخوبی تشخیص دهد.
🛠️ پروژه خود را بسازید
۱. آمادهسازی پیشی و کنترل با شانهها
- score (امتیاز)
- time (زمان)
- angle (زاویه)
- مقدار score را روی 0 قرار دهید.
- پیشی را به موقعیت: x: 0 y: -130 ببرید
- زمانسنج را صفر کنید.
- بازی را تا زمانی ادامه دهید که زمان بیشتر از ۲۰ شود.
- اگر: angle > 3 پیشی را به اندازه: 5 + angle به سمت راست حرکت دهید.
- If angle اگر: angle < -3 پیشی را به اندازه: -5 + angle به سمت چپ حرکت دهید.
۲. اضافه کردن سیب سقوطکننده
- apple speed (سرعت سیب)
- مقدار متغیر time را روی 0 قرار دهید.
- تا زمانی که time = FINISH شود، تکرار کنید
- سیب را در یک موقعیت X تصادفی بالای صحنه قرار دهید
- سیب را نمایش دهید
- مقدار apple speed را برابر با یک عدد تصادفی بین −۱۰ تا −۵ قرار دهید
- موقعیت Y آن کمتر از −۱۶۰ شود
- time برابر FINISH شود
- امتیاز را ۱ واحد افزایش دهید.
- صدای Chomp پخش کنید.
- سیب را مخفی کنید.
- آن را به پایین صفحه منتقل کنید تا سقوط فعلی تمام شود.
۳. اضافه کردن دونات سقوطکننده
یک شخصیت Donut اضافه کنید و متغیر زیر را بسازید:
- donut speed (سرعت دونات)
اسکریپت دونات همان ساختار اسکریپت سیب را دنبال میکند.
پس از کلیک روی پرچم سبز:
- مقدار متغیر time را روی 0 قرار دهید.
- تا زمانی که time = FINISH شود، تکرار کنید
- دونات را در یک موقعیت X تصادفی بالای صحنه قرار دهید
- دونات را نمایش دهید
- مقدار donut speed را برابر با یک عدد تصادفی بین −۱۰ تا −۵ قرار دهید
دونات را به سمت پایین حرکت دهید تا زمانی که:
- موقعیت Y آن کمتر از −۱۶۰ شود
- time برابر FINISH شود
در حین سقوط دونات، بررسی کنید که آیا با پیشی برخورد میکند.
وقتی دونات با پیشی برخورد میکند:
- امتیاز را یک واحد کاهش دهید
- صدای Bite را پخش کنید
- دونات را مخفی کنید
- آن را به پایین صفحه منتقل کنید تا سقوط فعلی تمام شود.
تفاوتهای اصلی با سیب شامل متغیر سرعت، صدا و تغییر امتیاز است.
۴. اطعام ماهی به پیشی
پس از اینکه زمانسنج از ۲۰ ثانیه بیشتر شد، حلقهی تکرار اصلی پایان مییابد.
سپس پیشی:
- مقدار time را روی FINISH قرار میدهد
- میگوید «زمان تمام شد»
- صدای میو (Meow) را پخش میکند
اسکریپتهای سیب و دونات هر دو از این دستور استفاده میکنند:
- تکرار تا زمانی که time برابر FINISH شود
- قرار دادن مقدار FINISH باعث میشود هر دو شخصیت سقوطکننده متوقف شوند.
The Apple and Donut also set time to 0 when the green flag is clicked.
This prevents either sprite from immediately leaving its loop if it starts before Pishi resets the value from a previous game.
🚀 پروژه خود را امتحان کنید!
روی پرچم سبز کلیک کنید و اجازهی دسترسی به دوربین را بدهید.
سپس:
- در جایی بایستید که دوربین بتواند بهوضوح بالاتنهی شما را ببیند.
- هر دو شانه را در دید نگه دارید.
- یک شانه را بالا و شانهی دیگر را پایین ببرید تا پیشی حرکت کند.
- برای حرکت سریعتر پیشی، بیشتر خم شوید.
- سیبها را بگیرید تا امتیازتان افزایش یابد.
- از دوناتها دوری کنید تا امتیاز از دست ندهید.
- سعی کنید قبل از پایان تایمر ۲۰ ثانیهای، بیشترین امتیاز را کسب کنید.
🤖 این پروژه چگونه کار میکند؟
تشخیص بدن موقعیت شانهی چپ و راست بازیکن را تشخیص میدهد.
این پروژه این روند را دنبال میکند:
شانههای شما
↓تشخیص بدن دو نقطه شانه را تشخیص میدهد
↓
افزونه زاویه بین شانهها را اندازه میگیرد
↓اسکرچ زاویه را پردازش میکند
↓جهت و سرعت حرکت پیشی مشخص میشود
↓پیشی سیبها را میگیرد و از دوناتها دوری میکند
The Apple and Donut sprites repeatedly appear at random horizontal positions and fall from the top of the Stage.
After they are caught or leave the Stage, they return to the top at a new random position.
💡 پروژه را بهتر کنید!
- بالا بردن هر دو دست برای فعالسازی سپر
از موقعیت Y مچ دستها و شانهها استفاده کنید.
وقتی هر دو مچ دست بالاتر از شانههای مربوطه باشند:
- یک سپر فعال کنید.
- اجازه ندهید دوناتها امتیاز کم کنند.
- لباس پیشی را تغییر دهید.
- صدای قدرت پخش کنید.
- با یک دست، اشیای سقوطکننده را کنترل کنید
بررسی کنید آیا مچ دست چپ یا راست بالاتر از شانه قرار دارد.
مثلاً:
- بالا بردن دست چپ، دوناتها را کند میکند
- بالا بردن دست راست، سیبها را کند میکند
- پایین آوردن هر دو دست، سرعت را به حالت عادی برمیگرداند
- خم شدن برای فرار از یک مانع پرنده
یک مانع اضافه کنید که بهصورت افقی روی صحنه حرکت میکند. از موقعیت Y بینی یا شانهها برای تشخیص خم شدن بازیکن استفاده کنید. وقتی بازیکن خم میشود:
- پیشی را کمی کوچک کنید
- پیشی را پایینتر ببرید
- اجازه دهید مانع از بالای سرش عبور کند
- اضافه کردن قدرت پرش
از موقعیت Y مچ پا، زانو، لگن یا شانه برای تشخیص پرش استفاده کنید. وقتی بازیکن میپرد:
- پیشی را بجهانید
- تمام سیبهای اطراف را جمع کنید
- از یک مانع سطح زمین دوری کنید
- یک پاداش امتیاز کوتاهمدت فعال کنید
- اضافه کردن پاداش تعادل روی یک پا
از نقاط مچ پا (Ankle) یا زانو (Knee) در تشخیص بدن استفاده کنید تا تشخیص دهید آیا بازیکن یک پای خود را بالا برده است یا نه. وقتی بازیکن روی یک پا تعادل نگه میدارد:
- سیبها ۲ امتیاز بدهند.
- دوناتها سریعتر سقوط کنند.
- یک نوار پاداش (Bonus Meter) افزایش پیدا کند.
- ترکیب حالتهای مختلف بدن
چند شرط تشخیص بدن را ترکیب کنید تا اعمال ویژهای فعال شوند. مثالها:
- هر دو دست بالا ← سپر
- دست چپ بالا ← منجمد کردن دوناتها
- دست راست بالا ← جذب سیبها
- خم شدن ← دوری از موانع پرنده
- بالا بردن یک پا ← حالت امتیاز دوبرابر
- کشیدن بازوها به طرفین ← پاک کردن تمام دوناتها
🔗 ساختهی خود را به اشتراک بگذارید
- ماهی و زباله
- ستارهها و سیارکها
- غذای سالم و غذای ناسالم
- گنج و سنگهای سقوطکننده
