sina2006 مدیر انجمن
تاريخ عضويت: 5 شنبه 16 شهريور 1385 تعداد ارسالها: 288 محل سكونت: رشت
1 شنبه 31 شهريور 1387 - 21:36 |
|
|
به نام خدا
salam
بررسی فیزیک سرعت در فلش و در بازیها (سطح مبتدی) ----- قسمت اول
خوب برایه شروع ابتدا نرم افزار فلش رو بازی کرده و یه سند خالی ایجاد کرده
حال یه شکل توسط ابزار Tool سمت چپ پنجره فلش رسم کنید حالا هر شکلی (دایره مستطیل بیضی و.......)حال توسط ماوس کل شکل را انتخاب و دکمه Ctrl+F8 کیبرد را زده تا پنجرهای همانند شکل باز شود
در قسمت دکمه های رادیویی گزینه Movie clip را برگزینید.
در قسمت Name هر اسمی دلتون میخواد بزارید مثلا "SpaceShip"
حال رویه Ok کلیک کرده حال مووی کلیپ خود را انتخاب و در نوار پایین قسمت Properties و در قسمت یا کادر Instance Name بنویسید mc خوب این سفینه مایه حال قسمت برنامه نویسیش مونده
حال فریمه اول را انتخاب کرده و کد زیر را درش کپی کنید
كد: |
var speedx=0;
var speedxx=0;
var speedy=0;
var speedyy=0;
onEnterFrame=function(){
mc._x+=speedx;
mc._x-=speedxx;
mc._y-=speedy;
mc._y+=speedyy;
if(Key.isDown(Key.RIGHT)){
speedx+=0.20;
}
else
speedx-=0.06;
if(speedx<=0){
speedx=0;
}
if(Key.isDown(Key.LEFT)){
speedxx+=0.20;
}else
speedxx-=0.06;
if(speedxx<=0){
speedxx=0;
mc._rotation=0;
}
if(Key.isDown(Key.UP)){
speedy+=0.20;
}else
speedy-=0.06;
if(speedy<=0){
speedy=0;
}
if(Key.isDown(Key.DOWN)){
speedyy+=0.20;
}else
speedyy-=0.06;
if(speedyy<=0){
speedyy=0;
}
if(mc.hitTest(UW)){
speedyy+=4;
speedy=0;
}
if(mc.hitTest(DW)){
speedy+=4;
speedyy=0;
}
if(mc.hitTest(LW)){
speedx+=4;
speedxx=0;
}
if(mc.hitTest(RW)){
speedxx+=4;
speedx=0;
}
};
|
توضیح کد: ابتدا ما مقدار اون جعبه متن یا متغیر را برابر صفر قرار داده و 4 متغیر محلی با نام های speedx , speedxx , speedy , speedy ایجاد کرده که مقدار اولیشان صفر میباشد.
حال توسط اونت enterFrame را برابر یه تابع قرار داده که این تابع را هر زمان یا همون هر فریمی که وارد میشه enterFrame انجام بده:
حالا تابع مورد نظر چیکار میکنه؟؟؟؟
اون شکله ما که اسمش mc در جهت x و y (بالا پایین چپ راست بر حسب مقادیر 4 متغییر اول حرکت میکنه که در حالت عادی اون 4 متغییر 0 در نتیجه مووی کلیپ ما ثابته)
هنگامی که کلید RIGHT و یا همون راست پیکان نما فشرده شد(شی Key) متغییر speedx رو در هر لحظه به اندازه +0.20 افزایش بده و هنگامی که کلید زده نشده (else) متغییر چیکار کن به مقدار -0.06 کمش کن و زمانی که متغییر speedx کوچکتر یا برابر 0 شد اونوقت مقدارشو برابر 0 قرار بده تا متوقف بشه
برایه بقیه جهتا همینه بالا چپ پایین
حال به تابع hitTest میرسیم
قبل از اون
ابتدا 4 تا خط دور استیج یا همون صفحه کاری مون رسم کنید و هر کدومشونو تبدیل به یه نمونه مووی کلیپ کنید(انتخابشان کرده و دکمه Ctrl+F8 را زده) بدین شکل:
حال بالایی را انتخاب و (مووی کلیپ یا همون خط بالا را که تبدیل به مووی کردید را انتخاب و در نوار پایین قسمت Properties و در قسمت Instance Name نامشو بدید UW یعنی دیوار بالا و برایه پایینی نامشو بدید DW و برای سمت چپی نامش برابر با LWو برایه آخری یا همون راست RW
حال بقیه کد
میگیم زمانی که این مووی ما (سفینه) برخورد کنه به یکی از این دیوارا مقدار اون متغیر 0 و متغیر معکوس پر بشه
مثال مثلا اگه به دیوار بالا برخورد کرد چون کاربر همچنان دکمه بالا کیبرد رو فشرده مقدار متغییر speedy برابر 0 بشه یعنی دیگه بالا نتونه بره و مقدار متغییر جهت پایین که speedy برابر با مثلا 4 بشه تا بیاد شکلمون پایین حالت برخورد ساده داشته باشه برایه بقیه هم همینطور
حال دکمه Ctrl+ENTER را زده و نتیجه را مشاهده نمایید
اینم فایله Fla
http://www.4shared.com/file/63880872/d502fe90/Physic.html
موفق باشید محمد |
_________________ دانلود بازی افسانه عمو پورنگ نسخه 1
www.amoogame.blogfa.com
اين نامه توسط sina2006 در 2 شنبه 1 مهر 1387 - 21:13 ويرايش شده است. |
|