رفتن به محتوا

ایجاد سیستم امتیازدهی ساده

💡 در مونتاژ بلوک‌های Scratch مشکل دارید؟ نمی‌دانید منطق کد را چگونه پیاده‌سازی کنید؟ 🚀 همین حالا کمک بگیرید

GM

GameMaker456

Posted on January 20, 2024 • Intermediate

🎮 به کمک برای سیستم امتیازدهی نیاز دارم

سلام همه! روی اولین بازی خودم در Scratch کار می‌کنم که در آن بازیکن سکه جمع می‌کند و دشمنان را شکست می‌دهد. می‌خواهم سیستم امتیازدهی اضافه کنم که:

  • هنگام جمع‌آوری سکه‌ها امتیاز افزایش یابد
  • برای شکست دادن دشمنان امتیاز بدهد
  • امتیاز را روی صفحه نمایش دهد

من در متغیرها و مکانیک‌های بازی تازه‌کارم. هر کمکی قدردانی می‌شود! 🙏

SC

ScratchCoder_Pro

Replied 2 hours later • ⭐ Best Answer

سوال عالی @GameMaker456! سیستم‌های امتیازدهی پیاده‌سازی کردن بسیار سرگرم‌کننده است. در اینجا راهنمای گام به گام است که به شما کمک می‌کند:

🔧 گام 1: ایجاد متغیر امتیاز

ابتدا، متغیری به نام Score ایجاد کنید و مطمئن شوید که روی “برای همه اسپرایت‌ها” تنظیم شده تا در همه جا قابل دسترسی باشد.

    when flag clicked
set [Score v] to [0]
  

💰 گام 2: سیستم جمع‌آوری سکه

برای اسپرایت‌های سکه خود، این کد را اضافه کنید:

    when flag clicked
forever
if <touching [Player v]?> then
change [Score v] by [10]
play sound [coin collect v]
hide
stop [this script v]
end
end
  

⚔️ گام 3: سیستم شکست دشمن

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

    // When enemy is defeated (example: when touched by player's attack)
when I receive [enemy defeated v]
change [Score v] by [50]
play sound [enemy defeat v]
hide
  

📺 گام 4: نمایش امتیاز

یک اسپرایت متن ایجاد کنید یا از نمایش متغیر داخلی استفاده کنید:

گزینه الف: نمایش متغیر داخلی

  • روی متغیر Score در پالت متغیرها کلیک راست کنید
  • ”نمایش” را انتخاب کنید تا در صحنه نمایش داده شود
  • می‌توانید آن را به جایی که می‌خواهید بکشید

گزینه ب: نمایش امتیاز سفارشی
یک اسپرایت متن با این کد ایجاد کنید:

    when flag clicked
forever
set [text v] to (join [Score: ] (Score))
go to x: [-200] y: [150]
end
  

🚀 گام 5: ویژگی‌های پیشرفته (اختیاری)

اگر می‌خواهید پیچیده‌تر کنید، در اینجا چند اضافه جالب است:

سیستم کمبو:

    // اضافه کردن ضریب کمبو
when flag clicked
set [Combo v] to [1]
set [Combo Timer v] to [0]

forever
if <(Combo Timer) > [0]> then
change [Combo Timer v] by [-1]
else
set [Combo v] to [1]
end
end

// When collecting items
when I receive [item collected v]
change [Score v] by ((base points) * (Combo))
change [Combo v] by [1]
set [Combo Timer v] to [180] // 3 seconds at 60 FPS
  

سیستم بالاترین امتیاز:

    when flag clicked
if <(Score) > (High Score)> then
set [High Score v] to (Score)
broadcast [new high score v]
end
  

امیدوارم این کمک کند! اگر نیاز به توضیح در مورد هر قسمت دارید، به من اطلاع دهید! 😊

GM

GameMaker456

Replied 30 minutes later

@ScratchCoder_Pro این فوق‌العاده است! خیلی ممنون! 🎉

سیستم امتیازدهی پایه کاملاً کار می‌کند. یک سوال سریع - چگونه می‌توانم نمایش امتیاز را زیباتر کنم؟ در حال حاضر فقط عدد خام را نشان می‌دهد.

UI

UIDesigner_Sarah

Replied 1 hour later

@GameMaker456 سوال عالی! در اینجا نحوه فرمت کردن اعداد بزرگ به شکل زیبا آمده است:

    // Custom block: format score
define format score (number)
if <(number) > [999999]> then
set [formatted score v] to (join (round ((number) / [1000000])) [M])
else
if <(number) > [999]> then
set [formatted score v] to (join (round ((number) / [1000])) [K])
else
set [formatted score v] to (number)
end
end
  

این “1.2K” را به جای “1200” و “2.5M” را به جای “2500000” نشان می‌دهد. خیلی تمیزتر! ✨

GT

GameTutor_Mike

Replied 2 hours later

دوست دارم ببینم مبتدیان با مکانیک‌های بازی دست و پنجه نرم می‌کنند! 🎮 در اینجا چند نکته حرفه‌ای برای بهتر کردن سیستم امتیازدهی شما آمده است:

  • مقادیر امتیاز متفاوت: بر اساس سختی جمع‌آوری، به اقلام مختلف امتیازهای متفاوت بدهید
  • امتیازدهی جایزه: جوایز زمانی یا جوایز تکمیل کامل اضافه کنید
  • بازخورد امتیاز: هنگام کسب امتیاز، متن شناور نشان دهید
  • ذخیره بالاترین امتیازها: از متغیرهای ابری برای ذخیره بالاترین امتیازها به صورت آنلاین استفاده کنید

به آزمایش ادامه دهید و از آن لذت ببرید!

VB

Vibelf_Community

Pinned Message • Moderator

🚀 می‌خواهید توسعه بازی خود را به سطح بالاتری ببرید؟

بحث عالی همه! برای کسانی که به دنبال ایجاد سیستم‌های امتیازدهی پیشرفته‌تر هستند، جامعه ما می‌تواند در پیاده‌سازی موارد زیر کمک کند:

  • 🏆 جدول امتیازات
  • 🎖️ سیستم‌های دستاورد
  • 🧮 الگوریتم‌های امتیازدهی پیچیده
  • 🔓 قابلیت‌های قفل‌گشایی بر اساس امتیاز

📚 بحث‌های مرتبط

آماده هستید مهارت‌های توسعه بازی خود را به سطح بعدی ببرید؟ راهنمایی شخصی‌سازی شده از مربیان متخصص ما در اپلیکیشن Vibelf دریافت کنید!