Menu
CoddyTech
flag Ar iconالعربيةdown icon

معززات القوة

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 45 من 50.

challenge icon

التحدي

متوسط

تعزيزات القوة. احتفظ بكل شيء من الدروس السابقة. يوجد قلب ودرع في الساحة، كما أن نسختَي Heart وShield الجاهزتين للاستخدام معدّتان لتُسقطهما الموجات. كل ما يمكن للبطل التقاطه يطبّق واجهة واحدة، لذا لا يحتاج البطل إلى معرفة الأنواع.

  • تعلن IPickup عن طريقة واحدة، void Collect(Hero hero);.
  • تطبّق Heart هذه الواجهة، مع amount (2) من نافذة Inspector: تعالج البطل بمقدار amount ثم تدمّر نفسها.
  • تطبّق Shield هذه الواجهة، مع duration (5) من نافذة Inspector: تحمي البطل من كل ضربة لمدة duration ثانية ثم تدمّر نفسها.
  • يحصل Hero على public void Heal(int amount)، التي تضيف إلى الصحة دون أن تتجاوز maxHealth مطلقًا، وتسجّل الصحة كما يحدث عند تلقي ضربة؛ ولا يُعالَج البطل الساقط. ويحصل أيضًا على public void Protect(float seconds)، التي تحميه من الضربات حتى مرور seconds ثانية من الآن، مثلما تفعل safeTime عند تلقي ضربة. ويحصل كذلك على OnTriggerEnter: عندما يكون للشيء الذي لمسه مكوّن IPickup، يستدعي عليه Collect(this). يتلقى CharacterController رسائل التصادم المحفّز دون الحاجة إلى Rigidbody.
  • يحصل كل Wave على public GameObject reward. لا يمكن لنافذة Inspector عرض حقل من نوع واجهة، لذا يحتفظ الحقل بالعنصر الجاهز للاستخدام بوصفه GameObject. عند هزيمة موجة، وقبل فترة الراحة، يُسقط مولّد الموجات مكافأة الموجة، إن وُجدت، في موقعه في وسط الساحة. يعيّن الأصل قلبًا للموجة 1 ودرعًا للموجة 2.

اضغط Play، واقضِ على موجة والتقط مكافأتها، ثم اضغط Check.

جرّب بنفسك

// سيُستكمل هذا في درس لاحق: أي شيء يمكن للبطل التقاطه.
public interface IPickup
{
}

جميع دروس هندسة الألعاب في Unity