آموزش:فرمول كاربردي بردارها در ساخت گيم

(reza)

Member
سلام به همه
در اينجا قصد دارم نحوه كاربرد بردار در فلش رو قرار بدم و يك مثال كاربردي
ميخوايم يك هواپيما بسازيم كه به سمت مكان نمايه ماوس حركت كنه
بعد از طراحي هواپيماتون تو فلش اسمش رو "airplane" قرار بديد ، كد زير رو تو اون پروژه قرار بديد

HTML:
var Mult:Number = 2*Math.PI;
var speed:Number = 5;
function airplaneMove(Event):void{
    airplane.x -= Math.cos(Mult*airplane.rotation/360)*speed;
    airplane.y -= Math.sin(Mult*airplane.rotation/360)*speed;
    airplane.rotation = Math.atan2(airplane.y - mouseY,airplane.x - mouseX) * 58.1;
}

stage.addEventListener(Event.ENTER_FRAME,airplaneMove);
توضيح:
دو قطعه كد زير وظيفه اينو دارن ك با توجه به زاويه قرار گيري هواپيما ، اونو حركت بدن (مثل ماشين هر طرف كه فرمون ماشين رو ميچرخونيد ماشين هم به اون سمت حركت ميكنه)
HTML:
 airplane.x -= Math.cos(Mult*airplane.rotation/360)*speed;
    airplane.y -= Math.sin(Mult*airplane.rotation/360)*speed;
مفهوم فرمول زير چيه ؟
HTML:
Mult*airplane.rotation/360
اين فرمول راديان رو به درجه تبديل ميكنه و با استفاده از sin و cos اين درجه ، هواپيما به اون سمت حركت ميكنه.
HTML:
    airplane.rotation = Math.atan2(airplane.y - mouseY,airplane.x - mouseX) * 58.1;
با استفاده از atan2 مختصات نقطه اي كه مد نظر مون هست رو شناسايي ميكنيم
58.1 براي چيه:
وقتي از atan2 استفاده ميكردم و مختصات ماوس رو بهش ميادم يكدفه در يه قسمت هايي ابجكت خيلي زياد تر ميچرخيد فكر كردم اگه بهش ضريب بدم درست ميشه تا بلاخره اين عدد و پيدا كردم و مشكل حل شد
به نظرم ديگه چيز خاصي واسه توضيح نداره.
نمونه 1 :
مثال گفته شده در اين پروژه
نمونه 2 :
يك كرم تقريبا مثل بازي گوشيهاي ساده
نمونه 3 :
فقط يه فايله فلش از بازيه ك تو SwishMax ميساختم با Space ميتونيد شليك كنيد (اين بازي ناقصه هنوز تكميل نشده) براي حركت از قسمت ناوبري دايره رو حركت بديد.
---------------------
كد بالا نمونه كليدي هست كه ميتونيد انواع مختلف بازي ها رو با اون ايجاد كنيد كافيه يكم خلاق باشيد
 

پیوست ها

  • total.zip
    64.5 کیلوبایت · بازدیدها: 54

جدیدترین ارسال ها

بالا