مستويات الأبراج
الدرس 16 من 25 في دورة لعبة Unity: الدفاع عن الأبراج على Coddy.
ستُرقّى الأبراج: يضيف كل مستوى ضررًا ومدى، وتكون تكلفة كل ترقية أعلى من سابقتها. تتبع المستويات قاعدة، لذا يحتفظ الأصل بالقاعدة بدلًا من قائمة أرقام، وتحسبها الأساليب في ScriptableObject، حتى تحصل كل شيفرة تطلبها على الإجابة نفسها. محصول لعبة مزرعة:
public int YieldAt(int level)
{
return baseYield + yieldPerLevel * (level - 1);
}المستوى 1 هو القيمة الأساسية. يحتفظ البرج بمستواه الخاص فقط، ويطلق بالنطاقات الخاصة بذلك المستوى.
التحدي
متوسطأضف مستويات للأبراج.
- في
TowerData، أضف الأعداد الصحيحة العامةmaxLevelوupgradeCostوdamagePerLevel، والعائم العامrangePerLevel. - أضف
DamageAt(int level):damage + damagePerLevel * (level - 1)؛ وRangeAtبالطريقة نفسها؛ وUpgradeCost(int level):upgradeCost * level. - في
Tower، أضفprivate int level = 1;وpublic int Level => level;وpublic void Upgrade() { level++; }؛ وأطلق النار باستخدامDamageAt(level)ضمنRangeAt(level).
اضغط على «العب»: تقاتل الأبراج كما في السابق. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
[CreateAssetMenu(fileName = "NewTower", menuName = "Tower Defense/Tower Data")]
public class TowerData : ScriptableObject
{
public string towerName;
public int cost = 50;
public int damage = 2;
public float range = 4f;
public float fireRate = 1f;
}
جميع دروس لعبة Unity: الدفاع عن الأبراج
تدرّب بنفسك: Playground لـ Unity