پیشی را با شانه‌های خود در اسکرچ کنترل کنید

با خم کردن شانه‌های خود، پیشی را به چپ و راست حرکت دهید، سیب‌ها را بگیرید، از دونات‌ها دوری کنید و قبل از تمام شدن زمان، بیشترین امتیاز ممکن را کسب کنید.

سطح
متوسط

🕒

زمان تقریبی
۲۰ تا ۳۵ دقیقه

🧩

افزونه

تشخیص بدن

Control Pishi with Your Shoulders in Scratch - stage

📖 چه چیزی یاد می‌گیرید

  • چگونه از تشخیص بدن (PoseNet) برای تشخیص بدن یک شخص استفاده کنید.
  • چگونه زاویه بین شانه چپ و راست را اندازه بگیرید.
  • چگونه یک شخصیت اسکرچ را با حرکت بدن کنترل کنید.
  • چگونه سرعت حرکت را بر اساس میزان خم شدن شانه تغییر دهید.
  • چگونه اشیای سقوط‌کننده با موقعیت و سرعت تصادفی بسازید.
  • چگونه از متغیرهای مشترک برای کنترل یک بازی زمان‌دار استفاده کنید.

 

تشخیص بدن نقاط مختلف بدن مانند شانه‌ها، آرنج‌ها، مچ دست‌ها، لگن، زانوها و مچ پاها را ردیابی می‌کند. در این پروژه، زاویه بین شانه‌ها حرکت افقی پیشی را کنترل می‌کند.

🧰 چه چیزهایی لازم دارید

  • یک رایانه با دوربین سالم و فعال
  • Chrome، Firefox، Edge یا یک مرورگر مدرن مبتنی بر Chromium
  • Pishi.ai در اسکرچ (پروژه جدید ایجاد کنید)
  • افزونه تشخیص بدن (راهنمای آن را مشاهده کنید)
  • شخصیت Pishi
  • شخصیت Apple (سیب)
  • شخصیت Donut (دونات)
  • متغیرهای زیر را ایجاد کنید:
    • score (امتیاز)
    • time (زمان)
    • angle (زاویه)
    • apple speed (سرعت سیب)
    • donut speed (سرعت دونات)

برای عملکرد بهتر، نور محیط مناسب باشد و قسمت بالایی بدن شما در دید دوربین قرار داشته باشد تا تشخیص بدن بتواند هر دو شانه را به‌خوبی تشخیص دهد.

🛠️ پروژه خود را بسازید

1

۱. آماده‌سازی پیشی و کنترل با شانه‌ها

پیشی را نزدیک پایین صفحه قرار دهید و این متغیرها را بسازید:
  • score (امتیاز)
  • time (زمان)
  • angle (زاویه)
پس از کلیک روی پرچم سبز:
  • مقدار score را روی 0 قرار دهید.
  • پیشی را به موقعیت: x: 0 y: -130 ببرید
  • زمان‌سنج را صفر کنید.
  • بازی را تا زمانی ادامه دهید که زمان بیشتر از ۲۰ شود.
درون حلقه: ابتدا بررسی کنید که آیا تشخیص بدن حداقل یک نفر را تشخیص داده است یا خیر. سپس مقدار angle را برابر قرار دهید با: قدر مطلق (زاویه بین شانه چپ و راست) - 90 استفاده از قدر مطلق باعث می‌شود کد چه زمانی که تشخیص بدن زاویه نزدیک به ۹۰ بدهد و چه زمانی که نزدیک به -۹۰ بدهد، درست کار کند. برای جلوگیری از حرکت‌های ناخواسته، یک محدوده خنثی کوچک ایجاد کنید:
  • اگر: angle > 3 پیشی را به اندازه: 5 + angle به سمت راست حرکت دهید.
  • If angle اگر: angle < -3 پیشی را به اندازه: -5 + angle به سمت چپ حرکت دهید.
خم شدن شانه‌ها هم جهت حرکت و هم سرعت حرکت را کنترل می‌کند. هرچه شانه بیشتر خم شود، پیشی سریع‌تر حرکت می‌کند. در هنگام اجرای بازی، مقدار time را دائماً برابر مقدار فعلی زمان‌سنج اسکرچ قرار دهید.
shoulder-controlled pishi posenet scratch script - Scratch Blocks
برای بزرگ‌نمایی روی تصویر کلیک کنید.
2

۲. اضافه کردن سیب سقوط‌کننده

یک شخصیت Apple اضافه کنید و متغیر زیر را بسازید:
  • apple speed (سرعت سیب)
پس از کلیک روی پرچم سبز:
  • مقدار متغیر time را روی 0 قرار دهید.
  • تا زمانی که time = FINISH شود، تکرار کنید
  • سیب را در یک موقعیت X تصادفی بالای صحنه قرار دهید
  • سیب را نمایش دهید
  • مقدار apple speed را برابر با یک عدد تصادفی بین −۱۰ تا −۵ قرار دهید
سیب را به سمت پایین حرکت دهید تا زمانی که:
  • موقعیت Y آن کمتر از −۱۶۰ شود
  • time برابر FINISH شود
در هنگام سقوط، بررسی کنید آیا سیب با پیشی برخورد کرده است یا خیر. وقتی سیب به پیشی برخورد کرد:
  • امتیاز را ۱ واحد افزایش دهید.
  • صدای Chomp پخش کنید.
  • سیب را مخفی کنید.
  • آن را به پایین صفحه منتقل کنید تا سقوط فعلی تمام شود.
حلقه اصلی دوباره سیب را در یک موقعیت تصادفی جدید قرار می‌دهد.
shoulder controlled pishi posenet scratch script - Scratch Blocks
3

۳. اضافه کردن دونات سقوط‌کننده

یک شخصیت Donut اضافه کنید و متغیر زیر را بسازید:

  • donut speed (سرعت دونات)

اسکریپت دونات همان ساختار اسکریپت سیب را دنبال می‌کند.
پس از کلیک روی پرچم سبز:

  • مقدار متغیر time را روی 0 قرار دهید.
  • تا زمانی که time = FINISH شود، تکرار کنید
  • دونات را در یک موقعیت X تصادفی بالای صحنه قرار دهید
  • دونات را نمایش دهید
  • مقدار donut speed را برابر با یک عدد تصادفی بین −۱۰ تا −۵ قرار دهید

دونات را به سمت پایین حرکت دهید تا زمانی که:

  • موقعیت Y آن کمتر از −۱۶۰ شود
  • time برابر FINISH شود

در حین سقوط دونات، بررسی کنید که آیا با پیشی برخورد می‌کند.
وقتی دونات با پیشی برخورد می‌کند:

  • امتیاز را یک واحد کاهش دهید
  • صدای Bite را پخش کنید
  • دونات را مخفی کنید
  • آن را به پایین صفحه منتقل کنید تا سقوط فعلی تمام شود.

تفاوت‌های اصلی با سیب شامل متغیر سرعت، صدا و تغییر امتیاز است.

shoulder controlled pishi posenet scratch script - Scratch Blocks
4

۴. اطعام ماهی به پیشی

پس از اینکه زمان‌سنج از ۲۰ ثانیه بیشتر شد، حلقه‌ی تکرار اصلی پایان می‌یابد.

 

سپس پیشی:

  • مقدار 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.

shoulder-controlled pishi posenet scratch script - Scratch Blocks

🚀 پروژه خود را امتحان کنید!

روی پرچم سبز کلیک کنید و اجازه‌ی دسترسی به دوربین را بدهید.
سپس:

  1. در جایی بایستید که دوربین بتواند به‌وضوح بالاتنه‌ی شما را ببیند.
  2. هر دو شانه را در دید نگه دارید.
  3. یک شانه را بالا و شانه‌ی دیگر را پایین ببرید تا پیشی حرکت کند.
  4. برای حرکت سریع‌تر پیشی، بیشتر خم شوید.
  5. سیب‌ها را بگیرید تا امتیازتان افزایش یابد.
  6. از دونات‌ها دوری کنید تا امتیاز از دست ندهید.
  7. سعی کنید قبل از پایان تایمر ۲۰ ثانیه‌ای، بیشترین امتیاز را کسب کنید.
Control Pishi with Your Shoulders in Scratch - stage

🤖 این پروژه چگونه کار می‌کند؟

تشخیص بدن موقعیت شانه‌ی چپ و راست بازیکن را تشخیص می‌دهد.


این پروژه این روند را دنبال می‌کند:

شانه‌های شما

تشخیص بدن دو نقطه شانه را تشخیص می‌دهد

افزونه زاویه بین شانه‌ها را اندازه می‌گیرد

اسکرچ زاویه را پردازش می‌کند


جهت و سرعت حرکت پیشی مشخص می‌شود


پیشی سیب‌ها را می‌گیرد و از دونات‌ها دوری می‌کند

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.

💡 پروژه را بهتر کنید!

  1. بالا بردن هر دو دست برای فعال‌سازی سپر از موقعیت Y مچ دست‌ها و شانه‌ها استفاده کنید. وقتی هر دو مچ دست بالاتر از شانه‌های مربوطه باشند:
    • یک سپر فعال کنید.
    • اجازه ندهید دونات‌ها امتیاز کم کنند.
    • لباس پیشی را تغییر دهید.
    • صدای قدرت پخش کنید.
    این کار ردیابی مچ دست را معرفی می‌کند، در حالی که خم شدن شانه همچنان کنترل اصلی باقی می‌ماند.
  2. با یک دست، اشیای سقوط‌کننده را کنترل کنید بررسی کنید آیا مچ دست چپ یا راست بالاتر از شانه قرار دارد. مثلاً:
    • بالا بردن دست چپ، دونات‌ها را کند می‌کند
    • بالا بردن دست راست، سیب‌ها را کند می‌کند
    • پایین آوردن هر دو دست، سرعت را به حالت عادی برمی‌گرداند
    این ویژگی به بازیکن اجازه می‌دهد بخش‌های مختلف بازی را با حالت‌های بدنی جداگانه کنترل کند.
  3. خم شدن برای فرار از یک مانع پرنده یک مانع اضافه کنید که به‌صورت افقی روی صحنه حرکت می‌کند. از موقعیت Y بینی یا شانه‌ها برای تشخیص خم شدن بازیکن استفاده کنید. وقتی بازیکن خم می‌شود:
    • پیشی را کمی کوچک کنید
    • پیشی را پایین‌تر ببرید
    • اجازه دهید مانع از بالای سرش عبور کند
    این ویژگی حرکت عمودی بدن را به بازی اضافه می‌کند.
  4. اضافه کردن قدرت پرش از موقعیت Y مچ پا، زانو، لگن یا شانه برای تشخیص پرش استفاده کنید. وقتی بازیکن می‌پرد:
    • پیشی را بجهانید
    • تمام سیب‌های اطراف را جمع کنید
    • از یک مانع سطح زمین دوری کنید
    • یک پاداش امتیاز کوتاه‌مدت فعال کنید
    این ویژگی توانایی ردیابی پایین‌تنه در تشخیص بدن را نشان می‌دهد.
  5. اضافه کردن پاداش تعادل روی یک پا از نقاط مچ پا (Ankle) یا زانو (Knee) در تشخیص بدن استفاده کنید تا تشخیص دهید آیا بازیکن یک پای خود را بالا برده است یا نه. وقتی بازیکن روی یک پا تعادل نگه می‌دارد:
    • سیب‌ها ۲ امتیاز بدهند.
    • دونات‌ها سریع‌تر سقوط کنند.
    • یک نوار پاداش (Bonus Meter) افزایش پیدا کند.
    این ویژگی بازی را به یک چالش تعادل و هماهنگی بدن تبدیل می‌کند و نشان می‌دهد که تشخیص بدن فقط برای حرکت ساده نیست، بلکه می‌تواند حالت‌های مختلف بدن را نیز تشخیص دهد.
  6. ترکیب حالت‌های مختلف بدن چند شرط تشخیص بدن را ترکیب کنید تا اعمال ویژه‌ای فعال شوند. مثال‌ها:
    • هر دو دست بالا ← سپر
    • دست چپ بالا ← منجمد کردن دونات‌ها
    • دست راست بالا ← جذب سیب‌ها
    • خم شدن ← دوری از موانع پرنده
    • بالا بردن یک پا ← حالت امتیاز دوبرابر
    • کشیدن بازوها به طرفین ← پاک کردن تمام دونات‌ها
    این نشان می‌دهد چگونه چند نقطه‌ی کلیدی بدن می‌توانند با هم کار کنند تا کنترل‌های پیشرفته‌تری برای کل بدن ایجاد شود.

🔗 ساخته‌ی خود را به اشتراک بگذارید

پروژه‌ی خود را تمام کردید؟ اسپرایت‌ها، صداها، پس‌زمینه‌ها و کنترل‌های تشخیص بدن دلخواه خودتان را اضافه کنید. سعی کنید یک موضوع متفاوت بسازید، مانند:
  • ماهی و زباله
  • ستاره‌ها و سیارک‌ها
  • غذای سالم و غذای ناسالم
  • گنج و سنگ‌های سقوط‌کننده
سپس پروژه‌ی خود را با دوستان یا همکلاسی‌های خود به اشتراک بگذارید.
OPEN PROJECT & REMIX
پیمایش به بالا