All tutorials

سمِّ ما ينشئه برنامجك

Beginner 10 min engine

يمكن لبرنامج أن يبني مئة كائن ولا يُظهر أيًا منها في Scene Graph. التسمية هي الفعل الذي يجعل واحدًا منها يظهر، وهي تعمل على sprites والنصوص والكائنات الثلاثية الأبعاد والأضواء والجسيمات.

ما ستتعلمه#

ستكتب برنامج BASIC صغيرًا، وتلاحظ أن Scene Graph يبقى فارغًا رغم أنه يعمل بوضوح، ثم تجعل كل كائن يظهر بتسميته. في النهاية ستعرف لماذا تخفي الشجرة معظم ما يبنيه البرنامج، وكيف تختار ما تُظهره.

قبل أن تبدأ#

  • Engine وحدة مدعومة بالتمويل الجماعي. Inkwell وVectra وPDF Studio هي الوحدات الثلاث المجانية.
  • لا حاجة إلى أي درس سابق. كل ما يلي عبارة عن script واحد.
  • أبقِ لوحة Scene Graph مفتوحة، بجانب منفذ العرض. إنها بيت القصيد من هذا التمرين.

الخطوات#

  1. افتح Engine، ابدأ مشهدًا فارغًا، وافتح محرر السكريبت. الصق هذا واضغط Play:

    image = LoadImage("hero.png")
    sprite = CreateSprite(image)
    SpritePosition(sprite, 100.0, 120.0)
    CreatePointLight(1, 0.0, 5.0, 0.0, 10.0, 255, 255, 255)
    DO
      Sync()
    LOOP
    
  2. انظر إلى Scene Graph. الـsprite ظاهر على الشاشة، والضوء مضاء، والشجرة لا تُظهر شيئًا. هذا ليس خللًا، وهذا هو الدرس بأكمله.

    نصيحة: تُظهر اللوحة عدّاد الكائنات غير المسمّاة. هذا الرقم هو ناتج برنامجك الذي تركته الشجرة عمدًا خارج القائمة.

  3. سمِّ الـsprite. أضف سطرًا واحدًا بعد SpritePosition، واضغط Play مرة أخرى:

    SpriteName(sprite, "لاعب")
    

    يظهر "لاعب" في الشجرة. لم يتغيّر شيء آخر على الشاشة: التسمية لا تُنشئ ولا تُحرّك ولا ترسم أي شيء. إنها تنشر فقط.

  4. سمِّ الضوء أيضًا، بالأمر الذي جاء مع هذه الفكرة:

    LightName(1, "شمس")
    

    إدخالان الآن. انقر على أحدهما: يتبع المفتش، تمامًا كما لو كان كائنًا وضعته بيدك.

  5. أضف جسيمات وسمِّها، حتى ترى أن القاعدة لا تخص الـsprites فقط:

    CreateParticles(1, 200.0, 200.0)
    ParticlesName(1, "دخان")
    
  6. الآن أزل أسطر التسمية الثلاثة واضغط Play. المشهد مطابق، والشجرة فارغة من جديد، وعدّاد الكائنات غير المسمّاة يعود إلى ثلاثة.

    تحذير: الاسم ليس معرّفًا (id). يُلصق SpriteName(sprite, "لاعب") تسمية على الـsprite الذي يوجد معرّفه في sprite؛ لكنه لا يتيح لك إيجاده لاحقًا بتلك التسمية. يبقى المعرّف هو وسيلتك للوصول إليه.

النتيجة#

يمكنك أن تقرر ما يُظهره برنامجك. يظهر prop وضوء ومُصدِر تحت الأسماء التي اخترتها؛ وتبقى المئات من الكائنات التقنية التي يبنيها برنامج حقيقي بعيدة عن الطريق.

لماذا توجد هذه القاعدة#

يُنشئ برنامج BASIC كلاسيكي كائنات باستمرار: sprite لكل رصاصة، نص لكل رقم من النتيجة، صورة لكل بلاطة. إدراج كل هذه الكائنات سيجعل Scene Graph غير قابل للقراءة خلال ثوانٍ، وستضيع الكائنات الثلاثة التي تهمك فعليًا وسط الضجيج.

لذلك لا تُظهر الشجرة كل شيء وتخفي الباقي بالتخمين. إنها تُظهر ما سمّيته أنت، وتحسب الباقي حتى لا يختفي شيء بصمت. الفلتر ملكك أنت، لا ملك المحرك.

ما هي الكائنات التي يمكن تسميتها#

الأمرما الذي يسمّيه
SpriteName(id, name)sprite
TextName(id, name)كائن نصي
ObjectName(id, name)كائن ثلاثي الأبعاد
LightName(id, name)ضوء نقطي أو اتجاهي
ParticlesName(id, name)مُصدِر جسيمات، ثنائي أو ثلاثي الأبعاد

ليس للأصوات والصور والـmemblocks والخطوط أي سطر في Scene Graph: إنها موارد، لا كائنات مشهد، وتسميتها لن تُظهر شيئًا في أي مكان.

لمزيد من الاستكشاف#