تدمير الأعداء عن طريق القفز ، كما هو الحال في "ماريو" الوحدة 2D

أهلا وسهلا بك! في هذه المقالة ، أود أن أشارككم كيف ندرك تدمير الأعداء بالقفز ، كما في ماريو. ما زلت أدرس نفسي ، لذا إذا كان لديّ أي نصائح أو تلميحات مفيدة ، فالرجاء الكتابة إلى التعليقات. حسنًا ، بعد العديد من وجهات النظر حول البرامج التعليمية وقراءة المقالات ، تم العثور على مقالتين فقط للاهتمام ، وربما أسهل طريقة لتنفيذ الخيارات:

  • الأول هو اتصال نقاط المصادم ،
  • والثاني هو ملامسة المصادم ، عندما يتم تعليق مصادمين على الكائن ، يأخذ أحدهما حياة اللاعب ، ويدمر الثاني الكائن الذي يرتبط به.

بادئ ذي بدء ، سنكتب وظيفة ستقضي على حياة اللاعب ، وهي ضرورية لكلا الخيارين:

public int health = 3; void Hurt() { health--; if (health <= 0) SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } 

خيار واحد


سنقوم بتحليل الخيار الأول إذا كانت نقطة الاتصال أكبر من أو تساوي ارتفاعًا 0.6 ، أو يتم تدمير اللاعب من أعلى العدو ، وإلا فإن اللاعب يتلف.

 void OnCollisionEnter2D(Collision2D collision) { Enemy enemy = collision.collider.GetComponent<Enemy>(); if (enemy != null) { foreach (ContactPoint2D point in collision.contacts) { if (point.normal.y >= 0.6f) { enemy.EnemyHurt(); } else { Hurt(); } } } 

(جزء من الكود الذي تم تعليقه على اللاعب)

 public void EnemyHurt() { Destroy(this.gameObject); } 

(مقتطف من الكود الذي يعلق على العدو)

2 الخيار


أضف مصادمًا ، وجعله أعلى قليلاً من المصادم الرئيسي ، ووضع علامة "is Trigger" على الكائن ، وقم بتعليق البرنامج النصي ، وقم بإضافة جزء التعليمات البرمجية هذا.

 private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "Player") Destroy(this.gameObject); } 

(مقتطف من الكود الذي يعلق على العدو)

عندما يلمس المصادم كائنًا يسمى "المشغل" ، يتم إتلاف الكائن (كعلامة اتصال ، يمكنك استخدام العلامة).

علاوة على ذلك في نفس الكائن ، نقوم بإنشاء المزيد من gameObject ونطلق عليه DeathZone. أضف مصادمًا ، اجعله أكبر قليلاً ، وحدد مربع "الزناد".



  private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "DeathZone") { Hurt(); } } 

(جزء من الكود الذي تم تعليقه على اللاعب)

كما ترون ، على عكس الخيار الأول ، في الخيار الثاني ، كان استخدام المصادمات أكبر قليلاً ، ولم تكن هناك حاجة لاستخدام المشغلات.


(الخيار الثاني)

يمكنك أيضا إضافة أن اللاعب يقفز بعد تدمير العدو. حسنًا ، يبدو أن كل شيء ، شكراً لكم جميعًا على اهتمامكم!

Source: https://habr.com/ru/post/ar474352/


All Articles