سؤال

وبالنسبة للمبتدئين: أنا أعمل مع فلاش CS3 وأكشن 2.0

وأنا أحاول لإعادة اللعبة عبة Frogger، وأنا كيندا عالقة مع وضع السيارات التي تظهر على الشاشة.

لأولئك منكم الذين لا يعرفون عبة Frogger: HTTP: // شبكة الاتصالات العالمية. actionscript.org/showMovie.php؟id=1157 ، ولكن أنا لا تنفيذ السجلات.

والمشكلة الكبرى هي أن لدي 3 سيارات، وكلها movieclips في المكتبة، لن أضع أي منهم على المسرح. يجب أن تظهر حالات متعددة في نفس الوقت. وتحتاج هذه السيارات للقيادة في كلا الاتجاهين، ويجب أن تظهر جميع السيارات 3 في جميع الممرات (لدي 4 حارات) وبطبيعة الحال، 1 حارة ديه 1 التوجيه فقط.

ويمكنني استخدام hitTest() لمعرفة ما اذا ضربت بلدي الضفدع واحدة من السيارات، ولكني في حاجة إلى جعلها واقعية، وهذا يعني أنني لا يمكن أن رمز من الصعب كمية السيارات في كل حارة.

وأنا أيضا لا يمكن العثور على ما يبدو كيفية تدوير مقطع فيلم حول وسطها ...

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

المحلول

حسنا، هناك بضعة أشياء يمكنني أن أقترح.

لسيارات، وخلق كل سيارة ككائن منفصل في مكتبة (لا وضعها على المسرح). عندما تحتاج إلى أن يكون واحد تظهر على attachMovie استخدام الشاشة () لإنشاء مثيل من السيارة التي تريد.

لجعلها تواجه اتجاهات مختلفة (وأعتقد كل ما تحتاجه الأيسر والأيمن)، هل يمكن إما إنشاء 2 نسخ من كل سيارة في المكتبة، واحدة تواجه كل اتجاه. أو، وأعتقد إذا قمت بتعيين قيمة معالج xscale إلى -100٪ أعتقد أن هذا الوجه أفقيا، لذلك يمكن استخدام نفس المثال مكتبة على حد سواء. ومع ذلك، فإنه ربما يكون من الأسهل للتعامل مع الحالات لو كان لديك مكتبة منفصلة لكل اتجاه، بدلا من القيام تناوب على واحد.

نصائح أخرى

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

وهذا يبدو وكأنه سؤالك في الحقيقة حول كيفية استخدام hitTest لمعرفة ما إذا كان الضفدع قد ضرب أي من السيارات، بغض النظر عن أي واحد، وكم هي على خشبة المسرح، وما إلى ذلك ما يمكن أن تفعله هو إنشاء فئة ل السيارة مع عضو ثابت يمكن أن يكون مؤشر إلى ضفدع، ومن ثم لديها الاختيار فئة سواء كان ضرب الضفدع.

وهكذا لتبدأ:

public class Car extends MovieClip{     
    public static var frog:MovieClip;
    private var interval;
    public function Car(){
        super();
        interval = setInterval(checkHit,500);
    }
    private function checkHit(){
            if(this.hitTest(frog)){
            trace("the frog hit the car");
            clearInterval(interval);
            //do what you need to do when the frog gets hit 
        }
    }
}

لكل سيارة على حدة، يمكنك توسيع الطبقة السيارة:

class Truck extends Car{
    public function Truck(){
        super();
    }
}

class Volkswagen extends Car{
    public function Volkswagen(){
        super();
    }
}

class Bus extends Car{
    public function Bus(){
        super();
    }
}

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

وأخيرا، تعيين عضو الضفدع الضفدع الخاص بك على خشبة المسرح

var frog:MovieClip = attachMovie("frog_mc", frogMC, _root.getNextHighestDepth())
Car.frog = frog; //set the static var "frog" to your frog instance

والآن السيارات الخاصة بك يجب أن تحقق جميع أنفسهم لسواء أكانت ضرب الضفدع.

والخيار الآخر هو الرمز الذي checkHit () وظيفة على الإطار الأول من كل مقطع فيلم سيارة مختلفة، بدلا من استخدام الطبقات لكل:

this.onEnterFrame = function(){
    if(this.hitTest(_root.frog)){
        trace("the frog hit the car");
        //do what you need to do when the frog gets hit 
        delete this.onEnterFrame;
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top