به پیشی با انگشت خود در اسکرچ غذا دهید
از انگشت اشارهی خود برای حرکت دادن یک توپ، گرفتن ماهی و غذا دادن به پیشی در این بازی کنترلشونده با دوربین استفاده کنید.
سطح
متوسط
زمان تقریبی
۲۰ تا ۲۵ دقیقه
افزونه
تشخیص دست
📖 چه چیزی یاد میگیرید
- چگونه ردیابی دست، موقعیت نوک انگشت اشارهی شما را تشخیص میدهد
- چگونه یک اسپرایت اسکرچ را با انگشت خود کنترل کنید
- چگونه یک اسپرایت را وادار کنید اسپرایت دیگری را حمل کند
- چگونه یک بازی امتیازدهی زماندار بسازید
- چگونه از بلوکهای پخش سراسری (broadcast) برای واکنشنشاندادن شخصیتها استفاده کنید
🧰 چه چیزهایی لازم دارید
- یک رایانه یا لپتاپ با دوربین وب سالم
- کروم، فایرفاکس، اج یا هر مرورگر مدرن دیگری
- Pishi.ai در اسکرچ (پروژه جدید ایجاد کنید)
- افزونهی تشخیص دست (راهنمای آن را مشاهده کنید)
- یک فضای باز که دست شما در آن بهوضوح در معرض دید دوربین باشد
- اسپرایتهای پیشی، ماهی و توپ، که از قبل در پروژه موجود هستند
تشخیص دست میتواند مختصات X و Y نقاط مختلف دست را روی صحنهی اسکرچ بازگرداند. در این پروژه، از نقطهی کلیدی شمارهی ۸ (نوک انگشت اشاره) برای کنترل توپ استفاده میشود.
🛠️ پروژه خود را بسازید
۱. آمادهسازی پیشی و بازی
درون همان حلقه، بررسی کنید که آیا ماهی با پیشی در تماس است یا نه.
- score (امتیاز)
- time (زمان)
- locked (قفل)
در اسپرایت پیشی، هنگام کلیک روی پرچم سبز: مقدار score را روی ۰ قرار دهید. مقدار locked را روی ۰ قرار دهید.
۲. توپ را وادار کنید انگشت شما را دنبال کند
یک اسپرایت توپ اضافه کنید. این توپ مانند یک نشانگر عمل میکند و نوک انگشت اشارهی شما را دنبال میکند.
از بلوکهای تشخیص دست X و Y با تنظیمات زیر استفاده کنید:
- نقطه کلیدی: شماره ۸ (نوک انگشت اشاره)
- شماره دست: ۱
دستور قرار دادن زمان روی ۰ باعث میشود توپ هنگام شروع یک بازی جدید، بلافاصله انگشت شما را دنبال کند.
حالا انگشت اشارهی خود را جلوی دوربین حرکت دهید. توپ باید موقعیت انگشت شما را روی صحنهی اسکرچ دنبال کند.
۳. اضافه کردن ماهی
یک اسپرایت ماهی با چند حالت مختلف اضافه کنید.
وقتی بازی شروع میشود:
- زمانسنج را صفر کنید.
- بازی را تا زمانی ادامه دهید که زمان به ۲۰ ثانیه برسد.
- بررسی کنید آیا ماهی با توپ برخورد کرده است یا خیر.
وقتی توپ به ماهی برخورد کرد: مقدار locked را روی ۱ قرار دهید.
سپس تا زمانی که: locked = 1 است: ماهی را به موقعیت X و Y توپ منتقل کنید.
با این کار، ماهی به توپ میچسبد و هنگام حرکت انگشت شما، بهصورت روان دنبال آن حرکت میکند.
۴. اطعام ماهی به پیشی
در همان حلقه، بررسی کنید آیا ماهی با پیشی برخورد کرده است یا خیر.
وقتی ماهی به پیشی رسید:
- مقدار locked را دوباره روی ۰ قرار دهید.
- مقدار امتیاز را ۱ واحد افزایش دهید.
- پیام message1 را ارسال کنید.
- ماهی را به یک موقعیت تصادفی منتقل کنید.
- حالت بعدی ماهی را انتخاب کنید.
قرار دادن locked روی ۰ باعث میشود ماهی از توپ جدا شود و دوباره در جای دیگری از صفحه ظاهر شود.
هر بار که پیشی غذا میخورد: امتیاز افزایش پیدا میکند. یک ماهی جدید در موقعیت متفاوت ظاهر میشود. تغییر حالت ماهی باعث میشود به نظر برسد پیشی انواع مختلف ماهیها را میخورد.
۵. اضافه کردن زمانسنج
در هنگام اجرای بازی، مقدار زمانسنج اسکرچ را بهطور مداوم داخل متغیر time قرار دهید.
بعد از ۲۰ ثانیه: مقدار متغیر time را برابر با: FINISH قرار دهید. پیام message1 را ارسال کنید.
مقدار FINISH به توپ اطلاع میدهد که دیگر انگشت بازیکن را دنبال نکند و به پیشی اعلام میکند که بازی تمام شده است.
۶. واکنش نشان دادن پیشی
وقتی پیشی پیام message1 را دریافت کرد: به حالت دوم (costume2) تغییر کند. برای مدت کوتاهی بماند. سپس به حالت اول (costume1) برگردد.
اگر بازی تمام شده باشد:
- پیشی را به مرکز صفحه منتقل کنید.
- امتیاز نهایی بازیکن را نمایش دهید.
حالا پیشی هر بار که ماهی میخورد واکنش نشان میدهد و در پایان بازی امتیاز را اعلام میکند.
🚀 پروژه خود را امتحان کنید!
روی پرچم سبز کلیک کنید و اجازهی دسترسی به دوربین را بدهید.
سپس:
- یک دست خود را جایی نگه دارید که دوربین بتواند آن را واضح ببیند.
- انگشت اشارهی خود را حرکت دهید تا توپ به ماهی برسد.
- ماهی را با توپ به سمت پیشی ببرید.
- برای گرفتن امتیاز، ماهی را به پیشی برسانید.
- قبل از تمام شدن زمان، تا میتوانید به پیشی غذا بدهید.
🤖 این پروژه چگونه کار میکند؟
افزونهی تشخیص دست نقاط مختلف دست شما را ردیابی میکند.
در این پروژه مسیر کار به این شکل است:
نوک انگشت اشاره
↓تشخیص دست موقعیت X و Y آن را پیدا میکند
↓توپ به آن مختصات حرکت میکند
↓توپ به ماهی برخورد کرده و آن را حمل میکند
↓ماهی به پیشی میرسد
↓امتیاز افزایش پیدا میکند
نقطه کلیدی ۸ نشاندهندهی نوک انگشت اشاره است. تشخیص دست موقعیت آن را از تصویر دوربین دریافت کرده و به مختصات قابل استفاده در صفحهی اسکرچ تبدیل میکند.
💡 پروژه را بهتر کنید!
- کنترل بازی با هر دو دست از بلوک شمارش دست برای تشخیص اینکه یک یا دو دست در معرض دید است استفاده کنید. برای مثال، از یک دست برای حرکتدادن توپ استفاده کنید و وقتی دو دست تشخیص داده شد، یک ماهی جایزه نمایش دهید.
- اضافه کردن حرکت انگشتان از بلوک فاصلهی بین نقاط کلیدی برای تشخیص زمانی که انگشت شست و نوک انگشت اشاره به هم نزدیک میشوند استفاده کنید. این حرکت میتواند ماهی را منجمد کند، یک آهنربا فعال کند یا یک ماهی نزدیک را بهطور خودکار جمعآوری کند.
- ساخت سطح دشواری کنترلشونده با دست از بلوک زاویهی بین نقاط کلیدی برای تغییر سطح دشواری بازی استفاده کنید. برای مثال، چرخاندن دست شما میتواند باعث سریعتر حرکت کردن ماهی یا کاهش زمان باقیمانده شود.
- Improve Tracking When the Hand Disappears Change the when x/y not found return setting. You can make the Ball stay at its last position or move to a safe position when the camera cannot detect the fingertip.
- اضافه کردن ماهیهای بیشتر و جایزههای ویژه کاستیومها یا کلونهای بیشتری برای ماهی بسازید. یک ماهی طلایی که ۳ امتیاز دارد اضافه کنید و کاری کنید فقط زمانی ظاهر شود که یک حرکت خاص دست تشخیص داده شود.
🔗 ساختهی خود را به اشتراک بگذارید
پروژهی خود را تمام کردید؟ ماهی، پسزمینه، تایمر و قوانین امتیازدهی را تغییر دهید تا بازی اطعام کنترلشونده با انگشت خودتان را بسازید.
