سؤال

لدي لعبة إطلاق النار على الزومبي من أعلى إلى أسفل، ولدي طريقة غريبة من مثال لعرض شريط الصحة.الكود كالتالي:

private function createLives():Void
{
    BaseLifeText = new FlxText(4, 28, 220, "Base Health: ", 12);
    BaseLifeText.color = 0xffFFFFFF;        
    guiGroup.add(BaseLifeText);

    for (i in 0...9) {
        var cur:Int = lifeGroup.length + 1;

               //Start Trick
        var colnum:Int = cur;
        var xPos:Float = (BaseLifeText.x + 96) + 14 * (colnum - 1);
               //End Trick 
        life = new FlxSprite(xPos, 34,"assets/BaseHealth.png");         
        lifeGroup.add(life);
    }
}

على الرغم من أن هذه هي haxe/haxeflixel، فقد رأيت هذه الخدعة مرة أخرى في as3، وتم تنفيذها فقط عند إجراء مكالمة السحب.الخدعة المذكورة أعلاه بدلاً من عرض كائن واحد فقط، تعرض 9.هل هناك اسم لهذه الخدعة المحددة؟

الجزء 2 المتعلق بالخدعة أعلاه ، أحاول أيضًا إضافة مجموعة قابلة للتحصيل من شأنها أن تشفي القاعدة.ومع ذلك، أنا ناجحة فقط في إضافته عدديا.أنا أقوم بفعل هذا:

private function collectCoolant(player:FlxObject, cooler:Coolant):Void
{

    cooler.kill();

    var cur:Int = lifeGroup.length + 1;     
    lives ++;

    life.x += 14 * cur;     
    lifeGroup.length + 1;
}

إنه يضيف إلى حياة الشيء، لكنه لا يفعل ذلك بيانيًا كما هو الحال عند إنشائه.باستخدام هذا النظام كيف يمكنني استعادة صحة الشيء بيانياً؟

هل كانت مفيدة؟

المحلول

  1. إنها ليست خدعة.إنها طريقة تافهة لحل المشكلة، وغريبة جدًا ولا تعمل أيضًا، كما ترون.
  2. لا توجد طريقة يمكنك القيام بها كما تفعل الآن.أولاً، lifeGroup.length + 1; هو بيان لا معنى له إلا إذا + مثقلة وهذا ليس هو الحال.إنه يأخذ الطول فقط ويضيف إليه 1.لذلك أفترض أنك تريد أن تفعل شيئا من هذا القبيل lifeGroup.length+= 1; لزيادة الطول بمقدار 1، لكن لسوء الحظ لن ينجح ذلك أيضًا.أولًا، لن يتم تجميعها، لأن خاصية الطول للقراءة فقط.وحتى لو تم تنفيذ التجميع وتغيير طول المجموعة في Flixel، فلن يعرف الكائن الذي يجب إضافته إلى مجموعتك، لذلك سوف يتعطل.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top