Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> اصول اولیه در طراحی بازیهای کامپیوتری -> مقاله : حلقه اصلی بازی
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه 1, 2  بعدي

نظر خود را در مورد مفید بودن این مقاله بیان کنید
چیز جدیدی یاد نگرفتم
33%
 33%  [ 2 ]
بد نبود
16%
 16%  [ 1 ]
خیلی به دردم خورد
50%
 50%  [ 3 ]
مجموع آراء : 6

مقاله : حلقه اصلی بازی
نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


3 شنبه 21 فروردين 1386 - 21:14
پاسخ بصورت نقل قول
نرم افزار ها اعم از بازی و سایر نرم افزارها با بسیاری از رویدادها روبرو می شوند. این رویدادها ممکن است از طرف ابزارهای ورودی یا از درون خود برنامه پدید آمده باشند. عموما دو راه عمده برای برخورد با این رویدادها وجود دارد.

اول : برنامه منتظر رخ دادن رویداد بماند و به محض رخ دادن رویداد آن را دریافت نموده و به آن ترتیب اثر بدهد. در زمانی که رویدادی وجود ندارد برنامه کاملا متوقف می ماند و هیچ دستوری را اجرا نمی نماید و در واقع این سخت افزار است که به نرم افزار اعلام می کند که رویداد رسیده را پردازش نماید. این نوع پاسخگویی به رویداد عموما برای برنامه هایی مناسب است که تنوع رویدادها در آنها کمتر باشد و همچنین رویدادهای آنها با فواصل زمانی نسبتا طولانی رخ دهند.
مزیت این نوع برخورد با رویدادها این است که زمان و هزینه های سخت افزاری کمتری به خصوص از cpu تلف می شود.
از این نوع برنامه ها می توان برنامه های پردازش متن(word processor) را نام برد.

دوم : برنامه در یک حلقه معین و بدون توقف، سخت افزار های جانبی و سایر منابع رویدادهای داخلی را چک میکند تا به محض رسیدن رویداد جدید آن را پردازش نماید. این گونه برنامه ها معمولا میزان خاصی و نسبتا ثابتی را از عملیات cpu به خود اختصاص می دهند. و در صورتی که از هیچگونه دستور sleep یا توقف موقت در حلقه اصلی استفاده نشود، این میزان ثابت به 100 درصد خواهد رسید. بنابراین همواره استفاده از چنین دستوراتی در حلقه اصلی برنامه توصیه می گردد. اینگونه دستورات علاوه بر پایین آوردن استفاده از cpu نقش موثری در تنظیم زمانبندی و یکسان سازی سرعت اجرای حلقه بازی دارند.

همانطور که احتمالا متوجه شده اید، در بازی ها از روش دوم استفاده می گردد. event هایی که شما درون یک نرم افزار ساخت بازی همچون game maker تعریف و لیست می نمایید، همان بدنه حلقه هستند که در طول بازی به طور مداوم تکرار می گردند. و گزینه هایی مانند room_speed در این نرم افزارها بیان گر همان میزان توقف در هر حلقه هستند.

حلقه اصلی یک بازی دو بعدی عموما و به ترتیب شامل این بخش ها خواهد بود :

تست منابع رویداد برای رویدادهای جدید
اجرای روالهای هوش مصنوعی
حرکت دادن اشیا
بررسی برخوردها
کشیدن صحنه بازی
پخش صداها

بخشهای اصلی حلقه بازی در یک بازی سه بعدی را نیز می توان به شکل زیر فرض کرد :

دریافت رویدادها
به روز رسانی آبجکتها
به روز رسانی دوربین
به روز رسانی پایگاه داده(اطلاعاتی از قبیل تعداد دشمن های کشته شده، تعداد سکه و ...)
به روز رسانی آسمان
به روز رسانی particle system ها
به روز رسانی گرافیک(عملیات پیش نیاز جهت گرافیک و رندر کردن نمای دوربین)
کشیدن صفحه

شرط خاتمه حلقه اصلی در هر دو حالت درخواست برای خروج از بازی و یا رسیدن به هدف یک مرحله خواهد بود.

منابع :

http://www.sjbaker.org/wiki/index.php/LoL_Main_Loop
http://en.wikipedia.org/wiki/Game_programming#The_game_loop

نوع استفاده از منابع :
برداشت و تکمیل

سطح مقاله : مبتدی

نویسنده : احسان طاهری
پست الکترونیک : eh_taheri@yahoo.com

*** کلیه حقوق مطالب این پست برای نویستده و سایت طراحان ایرانی محفوظ است و استفاده از آن با ذکر منبع بلا مانع است.***

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید



اين نامه توسط eta در 4 شنبه 22 فروردين 1386 - 11:05 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
iran_adventure
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 4 آذر 1385
تعداد ارسالها: 2066
محل سكونت: تهران


3 شنبه 21 فروردين 1386 - 21:41
پاسخ بصورت نقل قول
خيلي عالي بود احسان جان . اميدوارم ادامه دار باشه
در مورد گيم ميكر كه گفتي از روش دوم استفاده مي كنه پس با اين حساب اگه مثلا در مورد ايونت برخورد دو آبجكت با سرعت بالا با هم برخورد كنند احتمال اين هست كه برخورد تشخيص داده نشه . درسته ؟
من اين قضيه رو تو بازي 3 توپ خودم تجربه كردم اگه توپ با سرعت خيلي زياد از روي توپ ديگه عبور كنه برخورد تشخيص داده نمي شه البته اونجا ايونت برخورد وجود نداشت و من از يه حلقه براي اندازه گيري فاصله بين 2 توپ استفاده كردم و اگه فاصله از 2 برابر شعاع كمتر مي شد دستور برخورد اجرا مي شد ...

_________________
Make something happen
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


3 شنبه 21 فروردين 1386 - 21:58
پاسخ بصورت نقل قول
ممون مجتبی جان.
خودم هم خیلی دوست دارم ادامه دار باشه.
ببینیم استقبال میشه یا نه
در مورد gm علی آقا واردترند.
اما خوب از توضیحی که دادین تصور میکنم این مساله ربطی به نوع حلقه بازی نداره. بنا به سرعت و جهتی که شما به یه آبجکت انتساب میدی اون آبجکت در هر بار آپدیت شدن تو لوپ به مقدار ثابتی در جهت انتساب داده شده حرکت میکنه. بعد در نقطه جدید چک میشه که آیا با آبجکت دیگری تداخل داره یا نه. میزان حرکت توپ یا بهتر بگم جهش، ارتباط مستقیم با سرعت توپ داره و اگه این میزان به حدی بالا بره که از قطر آبجکت مقابل بیشتر بشه این امکان وجود خواهد داشت که توپها در یک فریم به نزدیکی هم برسند ولی در فریم بعد از هم رد شده باشند بدون اینکه هیچ تداخلی پیش بیاد. تنها چاره اش هم تو نرم افزاری مثل gm اینه که room_speed بازیتون رو بالا ببرید و در عوض سرعت توپها رو کاهش بدید تا از روی هم دیگه نپرند. (البته من اینا رو از نظر اصول کار میگم چون ممکنه تو gm یه کلکی سوار کرده باشن و با یه فانکشنی کار رو حل کرده باشند. که البته اون فانکشن هم باید همین کاری رو که گفت کرده باشه.)

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
iran_adventure
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 4 آذر 1385
تعداد ارسالها: 2066
محل سكونت: تهران


3 شنبه 21 فروردين 1386 - 23:30
پاسخ بصورت نقل قول
ممنون احسان .
ببینید من برای حرکت توپ ( اینجا توپ 1 ) از کد زیر استفاده کردم که Pow قدرت هست و مقدار شتاب رو تایین می کنه و Jahat که جهت توپ رو مشخص می کنه و T1 هم اینجا آبجکت توپ اول هست اون Sleep هم فاصله زمانی بین هر فریم رو مشخص می کنه که الان 20 میلی ثانیه هست ...

كد:
for(var X=Pow; X>0 ; X = X - 3)
{
  T01.SkipTo(T01.X + X*Math.Cos(Jahat), T01.Y + X*Math.Sin(Jahat));
  Sleep(20);
}


این کد هم مربوط به سنجش فاصله هست که اگه فاصله کمتر از مقدار مشخص شده بشه ( جذر 625 ) بشه Lose_C برابر 1 می شه و بوسیله کدی که در ادامه کد بالا میاد بعد از اتمام حرکت چک می کنه که آیا برخوردی ایجاد شده یا نه ...
اون Sleep هم بخاطر کرش نشدن بازی هست که توصیه خود انجین 20 میلی ثانیه هست ولی من برای هر چه دقیق تر شدن 0 گذاشتم .

كد:
while(true)
{
  if(((T01.X-T02.X)*(T01.X-T02.X)) + ((T01.Y-T02.Y)*(T01.Y-T02.Y)) < 625) Lose_C = 1;
  if(((T01.X-T03.X)*(T01.X-T03.X)) + ((T01.Y-T03.Y)*(T01.Y-T03.Y)) < 625) Lose_C = 1;
  if(((T02.X-T03.X)*(T02.X-T03.X)) + ((T02.Y-T03.Y)*(T02.Y-T03.Y)) < 625) Lose_C = 1;
  Sleep(0);
}


خوب به نظر من با گذاشتن 0 در Sleep بالا سرعت چک کردن کد بالا با سرعتی که شما گفتی یکسان می شه و هیچ تفاوتی با سرعت حلقه اصلی بازی نداره پس حتی اگه ایونت مربوط به برخورد هم وجود داشت نمی تونست این برخورد رو تشخیص بده . همون طور هم که توی پرسش و پاسخ Quest3D گفتم فیزیک ODE هم همچین مشکلی داره و فکر کنم تو بازی های سریع که آبجکت ها سرعت بالا دارند مثلا Racing مشکل بوجود بیاد . ولی تا اونجایی که یادمه Virtools همچین مشکلی نداشت یعنی ویرتولز از حلقه اصلی نوع اول استفاده می کنه ؟ به نظرت مفهوم سرعت حلقه اصلی رو متوجه شدم ؟ Very Happy

_________________
Make something happen
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
مصطفي سپهريان
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: جمعه 24 آذر 1385
تعداد ارسالها: 1147
محل سكونت: تو يه فلش مموري دو گيگ


4 شنبه 22 فروردين 1386 - 05:25
پاسخ بصورت نقل قول
خيلي جاله آقا احسان....
بالاخره يكي پيدا شد كه به اين انجمن هم نگاهي بندازه Very Happy

_________________
«پشتکار»«پشتکار»«پشتکار»
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
iran_adventure
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 4 آذر 1385
تعداد ارسالها: 2066
محل سكونت: تهران


4 شنبه 22 فروردين 1386 - 07:30
پاسخ بصورت نقل قول
آهان ! من يه مقدار دقيقتر به كدهام نگاه كردم اين ربطي به حلقه اصلي نداره هرچه قدر هم سرعت چك كردن زياد باشه باز هم احتمال خطا وجود داره . مربوط به اون (Sleep(20 هم مي شه ممكنه تو اون 20 ميلي ثانيه توپ از روي توپ ديگه عبور كنه ...

_________________
Make something happen
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


4 شنبه 22 فروردين 1386 - 09:54
پاسخ بصورت نقل قول
خوب یه چند تا نکته و چند تا سوال وجود داره :

این کدها به همین صورت در برنامه ات وجود دارند یا یه قسمتشون رو پاک کردی؟ متاسفانه من نمیدونم ویرتولز چه مدلیه( و این باعث میشه که توضیح دادن خیلی مشکل بشه) یه ذره توضیح بده که این کدها مربوط به چه بخشی از کد اصلین اگه مثل gm یه سری اونت داره اینا تو کدوم اونتن و ...

تو کد دومی شرط خاتمه حلقه وجود نداره !!! قضیه این چیه؟
قیافه اش که اصلا به حلقه اصلی نمیخوره. بنابراین اگه تو یه thread جدا اجرا نشه باعث قفل شدن بازی میشه.
با اون مقاله کوتاه امیدوارم مفهوم حلقه اصلی رو درست گرفته باشی این که میگی sleep تو حلقه اولی سرعت فریمها رو تنظیم میکنه دقیقا به همین معنا است که اون حلقه، همون حلقه اصلیه. اما آخه به قیافه اون هم نمیاد. میشه لطف کنی و بگی حلقه اصلی کجاست؟

یه نکته استفاده از دستور sleep با پارامتر 0 هیچ فرقی با استفاده نکردن از اون نداره و احتمالا یه کامپایلر هوشمند اون رو ندیده میگیره.

و اما آخر از همه و جواب سوال شما : این که شما سرعت چک کردن رو بالا ببری(متاسفانه عدم آشنایی با ویرتولز نمیذاره قاطع حرف یزنم.) نمیتونه تاثیری توی بر طرف ظدن اون مشکل داشته باشه مگه این که همون طور که اون بالا گفتم این چک ها جدا از tread اصلی برنامه انجام بشه که اونوقت اوضاع پیچیده میشه و نمیشه مطمئن بود چه اتفاقی می افته.
منظور بنده از بالا بردن سرعت بازی، سرعت مربوط به حلقه اصلیه یعنی همون سرعتی که سرعت فریمها رو تعیین میکنه. در ضمن توجه داشته باش که اون بالا گفتم که سرعت توپت رو هم باید پایین بیاری. اصل قضیه این دومیه است. و اضافه کردن سرعت اجرای بازی تنها برای جبران کاهش سرعت توپ بوده و البته باعث تقاضای سخت افزار بیشتر از طرف برنامه شما میشه.

راستی بگم که تمام بازیها از نوع دوم حلقه برنامه استفاده میکنند و نوع اول همونطور که گقتم به درد یه چیزهایی مثل همون پردازشگر متن میخوره.

به هر حال با اومدن مقاله بعدی امبدوارم مشکل برخورد شما بهتر حل بشه.

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
iran_adventure
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 4 آذر 1385
تعداد ارسالها: 2066
محل سكونت: تهران


4 شنبه 22 فروردين 1386 - 18:54
پاسخ بصورت نقل قول
يه عذرخواهي بابت اينكه نگفتم اين كدها مربوط به انجين WME هستش . در مورد ODEگفتم كه اين موتور فيزيك هم همين مشكل رو داره منظورم اين نبود كه اين كدها مربوط به ODE و Quest3D كه از ODE استفاده مي كنه هست .
فكر كنم متوجه شدي كه تو اين موتور (WME) كدي براي اينكه آبجكتي به سمتي حركت كنه وجود نداره . حالا من نمي دونم انجين هاي ديگه براي حركت به سمتي از چه روشي استفاده مي كنند ولي من براي اين كار از كد اول استفاده كردم خوب پس هر بار كه اون حلقه اجرا مي شه يه فريم از حركت توپ نشان داده مي شه كه مثلا اگه بخواي 25 فريم در ثانيه باشه 40=25/1000 با توجه به اين تقسيم به جاي اون Sleep كه تو كد اول گفتم بايد بزاري 40 (الان 20 هست چون با اين كار تعداد فريمها بيشتر مي شد و حركت روانتر)...
يكي از مشكلات من هم اينه كه بدون دانش برنامه نويسي شروع كردم و حتي اين دو تا حلقه رو هم توي انجين ياد گرفتم پس نمي دونم بايد چه شكلي باشه كه الان نيست ...
در مورد اون Sleep هم كه 0 گذاشتم گفتم كه اگه اون رو نذاري همون طور كه خودت گفتي برنامه كرش مي شه و پيشنهاد خود موتور 20 ميلي ثانيه هست ( با 20 ميلي ثانيه كه براي حركت توپ گذاشتم اشتباه نشه ) ولي اگه هر 20 ميلي ثانيه اين كار رو انجام بده همون مشكلي كه تو مقاله جديدت گفتي پيش مياد ... به نظر من اين معني همون Room_speed تو گيم ميكر رو ميده كه وقتي صفر مي زاري بيشترين مقدار مي شه و خطا در حالت حداقل مي شه همون طور كه توي گيم ميكر room_speed رو زياد كني خطا كمترين حالت مي شه البته منم مثل شما نمي دونم اين حالت براي گيم ميكر اتفاق ميافته يا نه ؟ خوب آخه سوالم همين بود ! كه بحث به اينجا كشيد .
در مورد عجيب غريب بودن كدها هم نمي دونم والا WME موتور رايگان هست و اسكريپت مخصوص خودش رو داره كه سازندش براي اون درنظر گرفته كه خودش مي گه شبيه جاوا هست ...
تو كد دوم هم كه شرط خاتمه وجود نداره به اين دليله كه اين حلقه در كل بازي اجرا مي شه و فاصله رو چك مي كنه از اون لحظه اي كه بازي شروع مي شه تا وقتي از بازي بياي بيرون ! بزار به حساب ناشي گري من ولي راه حل ديگه اي پيدا نكردم
خوب فكر كنم از WME بگزريم بهتره چون اصلا براي اين كار طراحي نشده و براي ساخت بازي ادونچره كه اين جور بحث ها ( برخورد و حلقه اصلي و ... ) توش نيست .
سوالم اين بود كه آيا اين مي تونه مشكلي براي بازي هاي سريع بوجود بياره مثلا Racing . نه تنها gm بلكه همه موتورها . مثل Quest كه من خودم به شخصه اين مشكل رو تو فيزيك ODE ديدم كه توپ با سرعت زياد از سطح مي گذشت ! شايدم و به احتمال زياد من اشتباه مي كنم و سرعت آبجكتها حتي تو بازي سريع اصلا به حدي كه تو اون مثال ديدم نرسه و هميشه اگرچه با خطا ولي برخورد تشخيص داده بشه فكر كنم بشه توي گيم ميكر اين رو تست كرد 2 آبجكت رو با سرعت به سمت هم حركت بديم و در ايونت برخورد سرعت هر دو رو صفر كنيم ببينيم آيا آبجكت ها داخل هم رفته اند يا نه من نتيجش رو تو مقاله جديد مي زارم
راستي به نظر خودم منظورت از حلقه اصلي رو فهميدم ...
( اي كاش دوستان هم در اين بحث دست و پا شكسته شركت كنند مطمين باشيد از نظر اطلاعات هم سطحيم ولي با شركت در بحث اطلاعاتمون رو تكميل مي كنيم . )

_________________
Make something happen
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
eta
مدیر سایت
مدیر سایت


تاريخ عضويت: 2 شنبه 27 تير 1384
تعداد ارسالها: 2153
محل سكونت: شاهين شهر


4 شنبه 22 فروردين 1386 - 19:40
پاسخ بصورت نقل قول
خوب به نظر میاد که مقاله تشخیص برخورد رو خوندی. اگه این کار رو نکردی بهت توصیه می کنم که حتما بخونش. راستی اگه نظری هم درباره اش داری خوشحال میشم تو همون تاپیک مطرحش کنی.
و در مورد موتورهای بازی ترجیح می دم چیزی نگم. چرا که کار من تو این تالار گفتن اصوله و وظیفه تطبیقش با هر موتور به عهده خواننده است. البته اگه با این موتور ها آشنا بودم، هتما راهنماییتون می کردم.(خوب دوستان وارد به هر موتور تو P-D پیدا میشن. بهتره اونا جواب بدن.)
در مورد شرط خاتمه هم خدمتتون عرض کنم که :
اجرای یک برنامه توسط cpu یک کار کاملا سریه کلمه thread به معنی نخ بیانگر یک سری از عملیات به هم پیوسته است که پشت سر هم اجرا میشن. cpu ها در حال حاضر می تونند چند تا thread رو با هم اجرا کنند. البته این از دید بیرونیه و داخل cpu حقیقتت به این شکله که cpu در هر زمان تنها یک دستور رو اجرا میکنه بنابراین برای اجرای چند thread همزمان باید به نوبت از ابتدای هر thread یک یا چند دستور(در مورد این تعداد اطلاعی ندارم) رو اجرا کنه و با توجه به این که مفهوم حلقه اصلی بازی رو هم گرفتی. پس واضحه که وجود حلقه های بی پایان یا کلا حلقه هایی مثل حلقه for همراه با sleep که اون بالا نویشتی تنها در thread های جدای از هم ممکن هستند.
در واقع در این حالت(وجود چندین thread که هر کدوم یکی از کارهایی رو که حلقه اصلی انجام میده رو بر عهده دارند ) میشه گفت که دیگه یک حلقه اصلی وجود نداره بلکه چند حلقه وجود داره که هرکدوم یک کار رو انجام میدن. در نتیجه مفهوم سرعت حلقه اصلی هم دیگه وجود نخواهد داشت. یعنی سرعت فریمها با سرعت حرکت دادن توپ و هر دوی اینا با سرعت تشخیص برخورد(همون فاصله شما) متفاوت خواهد بود. البته باز هم میگم این حرفها از روی برداشتم از روی توضیحات شماست و اگرچه در ممکن بودنش شکی ندارم ولی نمیتونم اطمینان بدم که wme از همین روش استفاده میکنه.
در مورد بقیه دوستان هم خوی باید بگم که من هم واقعا خوشحال میشم اگه به بحث اصول اولیه علاقه بیشتری نشون بدن. حالا اگه کم سوادی امثال بنده گاهی تو ذوقشون هم میزنه خوب به بزرگی خودشون ببخشن. اما این حرف رو از من قبول کنید که یکی از علل ضعیف بودن بازیهای ساخت ما همین بی اطلاعی از اصول کار و اتفاقاتیه که در سطوح پایین برنامه رخ میده

_________________
تالار اصول ->صفحه ها، مقالات و تاپیکهای مفید

ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
iran_adventure
مدیر انجمن
مدیر انجمن


تاريخ عضويت: شنبه 4 آذر 1385
تعداد ارسالها: 2066
محل سكونت: تهران


4 شنبه 22 فروردين 1386 - 20:57
پاسخ بصورت نقل قول
ممنون . توضيحاتت در مورد thread خوب بود . راستش تو پست قبلي معنيش رو نمي دونستم .

نقل قول:

یعنی سرعت فریمها با سرعت حرکت دادن توپ و هر دوی اینا با سرعت تشخیص برخورد(همون فاصله شما) متفاوت خواهد بود


فرض كنيد كدي وجود داشته باشه مثله Object_Move_to و از اون به جاي حلقه اول استفاده كنيم . من صحبتم سر اون نيست ...

نقل قول:

مفهوم سرعت حلقه اصلی هم دیگه وجود نخواهد داشت


هر حلقه به صورت جداگانه چي ؟ اصلا چيزي به اسم سرعت حلقه وجود داره يا نه ؟ اگه آره خوب اگه حلقه اصلي هم وجود داشته باشه اون هم يه سرعت داره كه تا اينجا كه من متوجه شدم بيشترين سرعت رو داره و بقيه حلقه هاي مورد استفاده سرعت كمتري دارند مثلا حلقه اي با (20) Sleep سرعتي برابر 50 بار در ثانيه داره ...

_________________
Make something happen
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 2 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه 1, 2  بعدي


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |