تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 10 اولاول 123456 ... آخرآخر
نمايش نتايج 11 به 20 از 100

نام تاپيک: آموزش مقدماتی و فشرده شروع برنامه نویسی گرافیکی سه بعدی تحت XNA و زبان های VB.Net و C#.Net

  1. #11
    حـــــرفـه ای M E H D I's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    خونمون
    پست ها
    2,606

    پيش فرض

    این هم دو تا PDF دیگه با اجازه _H2_ عزیز! البته یه خورده قدیمی تر هست.

    Professional XNA Game Programming: For Xbox 360 and Windows
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حجم حدود 27 مگ
    ______________________
    اینها هم همون سه تا کتابی هست که معرفی شدن. به عنوان Mirror گذاشتم.

    Microsoft(R) XNA(TM) Unleashed: Graphics and Game Programming for Xbox 360 and Windows
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حجم حدود 39 مگ
    _____________________
    Learning XNA 3.0: XNA 3.0 Game Development for the PC, Xbox 360, and Zune
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حجم 4 مگ
    _____________________
    XNA 3.0 Game Programming Recipes: A Problem-Solution Approach (Expert's Voice in XNA)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حجم 2 مگ
    ____________________
    Beginning XNA 3.0 Game Programming: From Novice to Professional (Beginning from Novice to Professional)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. این کاربر از M E H D I بخاطر این مطلب مفید تشکر کرده است


  3. #12
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ... اونها رو حذف کنید
    به نظرم حذف پست دیگران کار جالبی نیست!

    که Ebook ه Microsoft XNA Unleashed که یا مال SAMS بود با Microsoft و فکر کنم مال 2009 یا این طرف ها هست رو پیدا کنید و لینک بدید
    قبلاً یک لینک دانلود داشتم ولی لینک شکسته و نامعتبر شد، کمی هم سعی کردم موفق شدم چندین لینک نسخه قدیم 2007 پیدا کنم، امروز و با پست شما مجدد سرچی کردم و یک لینک سالم پیدا کردم.

    لینک مذکور به پست قبلی اضافه شد.

  4. #13
    حـــــرفـه ای dogtag's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    مرز غربی تهران بزرگ! ایمیل: goodboy.php@gmail.com اسپم ها: 2,200!!! :دی
    پست ها
    2,277

    پيش فرض

    مرسی ولی لینک اینیکی هم ایز دِد.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هم بعد از unrar کردن های مکرر، ناقص بوده و CRC آن مطابق نسخه اصلی نبود!
    Last edited by dogtag; 22-07-2009 at 15:23.

  5. #14
    اگه نباشه جاش خالی می مونه CHAPTER's Avatar
    تاريخ عضويت
    Feb 2009
    محل سكونت
    -_-
    پست ها
    464

    پيش فرض

    دیدم دوستان منابع انگلیسی ریاد معرفی کردندجای منبع فارسی خالی هست براتون این pdf رو گذاشتم
    البته متاسفانه یا خوشبختانه منبع فارسی زیادی برای xna وجود نداره ولی تا شروع مبحث اصلی توسط دوستمون _H2_ می تونید با مطالعه این pdf یه جورایی برای بحث اصلی آماده بشیم
    با تشکر از همه




    لینک دانلود مستقیم :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    راستی این pdf ترجمه بخشی از مطالب سایت

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    که می تونید آموزش کامل رو توی سایت ببینید

    Last edited by CHAPTER; 22-07-2009 at 16:33.

  6. 5 کاربر از CHAPTER بخاطر این مطلب مفید تشکر کرده اند


  7. #15
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    1 حل مشکل VB.Net کارها برای نوشتن کد تحت XNA

    سلام

    دوستانی که میخواهند با VB.Net کار کنند قابلیت Pipeline ها را و تبدیل فایلها یه xnb.* را به صورت عادی در محیط Visual Studio نخواهند داشت و یکسری مشکلات ریز دیگر هم خواهند داشت ولی نگرانی وجود ندارد ...
    همانطور که قبلاً هم گفتم سایت هایی هم در ضمینه Delphi.Net در این خصوص فعال هستند.


    برای رفع مشکل این دوستان من یک پک را آماده کردم که با نصب این پک مشکل از جهات مختلف تا حدود زیادی حل میشود.
    در این بسته بسیاری تنظیمات ریز و درشت برای NewProject-XNA لحاظ شده که میتواند حداکثر هماهنگی VB.Net را با XNA و ابزار توسعه آن و استفاده در شرایط گوناگون ایجاد کنند.

    دوستان VB.Net کار باید از این پک استفاده کنند و بعد از NewProject تنظیمات پروژه مذکور را تغییر ندهند.

    ==============

    - نام این پک Install_XNA_VB و نام فایل Install_XNA3.1_VB9.0.exe است
    - پس از نصب VS و XNA3 میتوانید اجرایش کنید.
    - هیچ ضرری ندارد و برای #C کار ها هم تفاوتی ایجاد نمیکند
    - خودکار و سریع عمل میکند و هیچ دیالوگ خاصی ندارد و منتظر فرم و Next و چیز خاصی نباشید!

    لینک دانلود اختصاصی این پک به حجم حدود 40 کیلو بایت
    support.h02.ir/fwlink/?LinkId=1005960377
    یا
    h02.ir/Downloads/?familyid=5D990F13-4128-444F-A8F8-E2DC0EEF5243

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

    ==============

    شروع یک پروژه جدید عادی XNA برای زبان C#.Net
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    - با این کار یک پروزه exe به همراه یک پروژه درونی Content ساخته میشود ...
    - برنامه نویس میتوانید این Content را حذف یا تغییر نام بدهد و نیز در صورت نیاز میتواند چندین Content دیگر هم به پروژه خود اضافه کند.

    ==============

    شروع یک پروژه جدید عادی XNA برای زبان VB.Net (البته بعد از نصب پک معرفی شده)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    - با این کار فقط یک پروژه exe ساخته میشود و برنامه نویس باید به دلخواه خود و به تعدادی که میخواهید Content را هم جدا بسازد که البته معمولاً یکی کافی است.

    یعنی پس از NewProject فایل exe دستورات زیر را هم برای داشتن یک Content پیگیری کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی دو نکته را دقت کنید ...
    1- بهتر است نام پروژه را به جای پیشفرض Content1 نام Content قرار دهید (وگرنه باید کد را هم تغییر دهید)
    2- حتماً حتماً حتماً پروژه های Content را در پوشه ای بسازید که فایلهای exe اصلی مثل vbproj و Game1.vb و Program.vb و... قرار دارند ...
    (انجام این عمل بسیار ضروری است و برای صحت کارکرد پروژه لازم است.)

    اینکار به صورت خودکار برای C#.Net انجام میشود ولی VB.Net کارها با این پکی که من دادم باید خودشان یک بار در شروع پروزه جدید حواسشان به این مطلب باشد.

    یعنی مثلاً اگر فایل vbproj و یا Game1.vb در مسیر C:\AAA\BBB\CCC\Game1.vb قرار دارد، شما باید پروژه Content را در مسیر C:\AAA\BBB\CCC بسازید.

    ==============

    با توجه به زیاد بدون سمپلهای XNA به زبان #C، دوستان VB کار میتوانند از سایتهای زیر برای تبدیل آنلاین کد بین دو زبان #C و VB استفاده کنند.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و...

    ========================================

    فعلاً برای آن دسته از دوستان که کم کم دارند صبر خود را از دست میدهند یک مثال ساده دو بعدی معرفی میکنیم! (بدون هیچ توضیح و شرحی)
    (یک چیز تو مایه های قارچ خور آتاری های قدیم ولی یکم دولوکس تر! همان دستگاه های سیاه با دسته گوشکوب های دو دکمه ای ... !)

    - exe این سمپل حدود 400 کیلو بایت است ولی بیش از 11 مگ حجم فایلهای گرافیکی و صوتی و... است!

    - پروژه خیلی ساده و دوبعدی است ولی مطلب آموزشی دارد.

    - در HighResolutionContent و Levels میتوانید فایلهای هر مرحله را مشاهده و ویرایش کنید و یا فایل جدیدی برای یک مرحله جدید با شکلی که شما میخواهید ایجاد کنید!
    (
    در فایل متنی مرحله ...
    کاراکتر "1" نقطه شروع است
    کاراکتر "X" نقطه پایان است.
    کاراکتر "#" و "-" دو نوع سکو هستند.
    کاراکتر "A" و "B" و "C" هم دشمن است (یک اسکلت عصبانی و... !)
    )

    گرچه دوبعدی است ولی پیشنهاد میکنم حتماً ببینید.

    ===== شروع سمپل برای C#.Net

    این پروژه خودکار با XNA3 در VS اضافه میشود.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    - البته باید در دیالگوی که باز میشود ورژن Framework3.5 را انتخاب کنید تا پروژه نمایان شود.

    ===== شروع برای VB.Net

    سورس تبدیل شده پروژه فوق به VB.Net را میتوانید از لینک زیر دانلود کنید:
    rapidshare.com/files/258892639/XNA3.1_VB9.0_Platformer.rar
    این پک حدود 9 مگ است و کامل و آماده کامپایل و اجرا است.




    برای افرادی که میخواهند سورس VB را هم ببینند ولی دانلود 9 مگ برایشان سخت است، فایل دیتا را حذف کرده ام، که باید آن را از یک پروژه C#-Platformer مجدد کپی کنند، در عوض حجم به حدود 190 کیلو بایت رسیده.

    حتماً قبل از اجرای این پروزه بدون فایلهای دیتا فایل توضیحی Help_ReadMe را به دقت خوانده و عمل کنید.
    rapidshare.com/files/258987753/XNA3.1_VB9.0_Platformer_Small.rar

    ==============

    کمی لذت ببرید!
    Last edited by _H2_; 01-10-2009 at 12:53.

  8. 5 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  9. #16
    اگه نباشه جاش خالی می مونه mohsen_3's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    qaZvin
    پست ها
    481

    پيش فرض

    اقا می شه یکم در مورد ساخت بازی های تحت شبکه با Xna توضیح و اموزش بدید.

  10. #17
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    1 بیان استانداردها و قرار داد های من و شما و XNA !

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

    اکثریت کدهای XNA که خواهید یافت برای سادگی و کم کردن تایپ namespace ها را import و دیگر از تایپ انها خودداری کرده اند ...
    ولی من شخصاً نمیتوانم با حذف namespace کنار بیایم و از این کار بشدت بدم می اید !!!

    مثلاً شاید در جایی شما کدهای این تیپی زیاد ببینید ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی من شخصاً کد زیر را ترجیح میدهم! هر چند کدنویسی بیشتری داشته باشد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و اما راه حلی که نه زیاد تایپ بخواهد و نه namespace را حذف کند (و من هنگ کنم!):
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همانطور که بهتر از من میدانید ...
    این سینتکس نام درج عبارت XNA را برابر فضای Microsoft.Xna.Framework قرار خواهد داد.
    هم تایپ کمی دارد و هم namespcae حذف نشده و تعلق کلاس کاملاً مشخص است.


    این سینتکس را در کل این تاپیک هم حفظ خواهم کرد
    و اگر مثلاً جایی گفتیم کلاس XNA.Graphics.Texture2D
    منظور کلاس Microsoft.Xna.Framework.Graphics.Texture2D خواهد بود.


    امیدوارم دوستان این پست را به دقت خوانده باشند و مطمئن باشند که متوجه مطلب شده اند.

    ==============

    نقل قول نوشته شده توسط mohsen_3
    اقا می شه یکم در مورد ساخت بازی های تحت شبکه با Xna توضیح و اموزش بدید
    این بحث و چند بحث دیگر به علت آنکه تاپیک آموزش مقدماتی است، جزء "هدف " تاپیک نبوده، حالا اجازه دهید به اهداف مشخص شده برسیم و چیزهایی روی مانیتور بیاید، سپس اگر شد به مباحث پیشرفته تر هم خواهیم پرداخت.

    نقل قول نوشته شده توسط test84
    رو لطفا برای دانلود دوباره لینک بدین
    من جملات بعدی تان را درست متوجه نشدم،ولی به نظر میرسد لینک شکسته و دیگر صحیح نیست.
    چشم یک جستجویی میکنم، با پست بعدی لینک جدید خواهم گذاشت.

    خوب از پست بعدی مطالب آموزشی شروع خواهد شد که انشا ا... با صبر دوستان به نتیجه خواهد رسید!
    (هم باید بر روی مسائل فکر شود و هم بعضاً اشکالی مناسب برای فهم مطالب تهیه شود ... ولی انشاا... به مرور زمان و با کمک دوستان "اهداف" را تامین خواهیم کرد.

  11. 7 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  12. #18
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    13 آشنایی با موقعیتهای فضایی و بردارهای اصلی جهت در XNA و DirectX

    سلام
    همانطور که میدانید در فضا و محیط نمایشی سه بعد داریم که این ابعاد به صورت پیشفرض چیدمانی طبق شکل زیر دارند:
    یعنی اگر روبروی مانیتور باشید بردار X در جهت راست و بردار Y در بالا Z مثل یک پیکان از سمت مانیتور به سمت شما بیرون امده (حواستان باشد زخمی نشوید!!!)

    مثلاً با کم کردن Z یک شی سه بعدی میتوانید آن را از دوربین دور کرده و به عمق ببرید.
    نکته بسیار مهم ان است که دید شما از این جهت وابستگی مستقیم به محل و هدف و زاویه دوربین دارد!

    یعنی شما منظره خود را درون مانیتور از با توجه به محل جاری دوربین + محلی که دوربین به آن نگاه میکند + زاویه دوربین خواهید دید!

    تصور کنید، دوربین بالای محور Y است و به سمت پایین نگاه میکند ...


    فکر کنید ...چه خواهید؟ با تغییر X و Y و Z اشیای موجود در صحنه، اشیا به کدام سمت مانیتور خواهند رفت؟

    مشخص است در این حالت Y است که از مانیتور بیرون زده و مثلاً با کم و زیاد کردن Y یک شی، ان شی به عمق رفته و یا به دوربین نزدیک تر و بزرگتر میشود!
    (یعنی درست برخلاف گفته قبلی من)

    پس جهت در فضا نسبی است و چیز مطلقی وجود ندارد ...
    یعنی شما باید بتواند بجز دید دوربین که روی مانیتور خواهد بود، یک دید جهانی هم داشته باشد، که از آن منظر در ذهن خود بتوانید خود دوربین را هم ببینید ...

    دوربین میتواند در هر جایی در فضا باشد و اصلاً هم نیاز نیست روی یکی از محور های اصلی و به سمت انها باشد ...
    هرجایی باشد و به هر سمتی نگاه کند!

    پس در عمل نمیتوان گفت سمت راست مانیتور فلان محور است و سمت بالا ان یکی محور است!
    شما باید برای کنترل و حرکت دوربین به سمت راست و چپش به جای کم و زیاد کردن مستقیم X و Y و Z آن، محاسبات برداری انجام دهید و گرنه با کنترل دوربین به شدت مشکل خواهید داشت ...

    در زمان مناسب یک پست اختصاصی در خصوص پارامترها (13 عدد تاثیر گذار بر دید) و کنترل دوربین در فضای سه بعدی خواهیم داشت.

    =====

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

    برای اینکار باید دست را صاف در راستای بردار اول گرفت طوری که انگشتان بتوانند به سمت جهت بردار دوم خم شوند، در این حالت انگشت شست جهت بردار نتیجه و سومی را (حاصل ضرب خارجی بردار اول در دوم) نشان خواهد داد.
    در جایی که میتوان جهت برداری را به کمک دو بردار دیگر به دست اورد، این مطلب بیان خواهد شد و فعلاً باید اصول این کار را بلد باشید.

    همانطور که در شکل زیر میبینید ...

    دست در راستای محور X است و انگشتان در راستای محور Y و نتیجه انکه انگشت شست جهت بردار Z را نشان خواهد داد از آزمایش فوق حداقل حداقل خواهیم فهمید که ....
    جهت و سمت ضرب خارجی بردار X در بردار Y برابر خواهد بود با جهت و سمت بردار Z
    جهت و سمت ضرب خارجی بردار Y در بردار X برابر خواهد بود با عکس جهت و سمت بردار Z

    در زمان مناسب یک پست اختصاصی در خصوص مباحث ریاضی و هندسه سه بعدی خواهیم داشت.
    (فعلاً بد نیست سعی کنید و این روش را حداقل با خود سه بردار اصلی و ترکیبهای مختلف امتحان کنید)

    =====

    یک سری تصاویر دو بعدی هم دارید که بعضاً روی مانیتور شناور خواهند بود و تغییر دوربین روی انها اثری ندارد.
    از جمله این ترسیمات دو بعدی میتواند به پنل های کنترلری بازی ها در اطرف صحنه اصلی اشاره کرد، مثل نمایش میزان تیرها و نمایش نقشه و...

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


    مثلاً با زیاد کردن X یک تصویر شناور دو بعدی، آن تصویر به سمت راست مانیتور حرکت خواهد کرد.
    نکته مهم ان است که این تصاویر روی صفحه مانتیور شناور هستند و وابسته به محل و جهت دید دوربین نیستند، مثل یک برچسب که روی لنز دوربین چسبانده باشند!

    =====

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

    ==============

    نقل قول نوشته شده توسط _H2_
    چشم یک جستجویی میکنم، با پست بعدی لینک جدید خواهم گذاشت.
    متاسفم، شرمنده، تقریباً بهترین کلمات و فیلترها را در گوگل استفاده کردم و تمام نتایج را بررسی کردم ولی متاسسفانه لینکی پیدا نکردم.
    شاید چند ماه دیگر چند لینک دانلود پیدا شود.
    Last edited by _H2_; 28-07-2009 at 01:59. دليل: اصلاح چند مورد غلط تایپی املائی ناشی از سرعت تایپ

  13. 9 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  14. #19
    اگه نباشه جاش خالی می مونه IP007's Avatar
    تاريخ عضويت
    May 2009
    محل سكونت
    Esfahan
    پست ها
    482

    پيش فرض

    سلام، ولی فکر کنم z محور بالایی باشه و y سمت چپی

  15. #20
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    1 سرعت و بازدهی کدهای مختلف 1

    سلام
    این مسئله بسیار مهم است ولی واقعاً یک پست برای آن کافی نیست و به همین دلیل هم اصلاً نمیخواستم وارد این بحث شوم...
    ولی با پیشنهاد یکی از دوستان و توجه به این نکته که تعداد زیادی از افراد ا سرعت و بازدهی کدهای خودشان در XNA مشکل دارند، تصمیم گرفتم هر چند ناقص حداقل یک پست را به این مطلب اختصاص دهم.

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

    نکته بعدی آنجا است که شما همواره هم باید مراقب کد نویسی مستقیم خودتان باشد و هم کدنویسی داخلی ناپیدا توابع آماده.

    در صورت رعایت صحیح نکات و کدنویسی خوب با XNA میتواند به حدود 70 درصد سرعت برنامه های سه بعدی VC++,DirectX برسید که سرعت و بازدهی مناسبی است به سادگی و سرعت تولید محصول XNA و زبانهای VB.Net و C#.Net در مقابل ++VC و DirectX می صرفه!

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

    ==============

    ----- رابطه خصاصت و تنبلی و تعریف متغییر !

    =====

    اصولا مسئله این است که کار باید انجام شود و کسی نمیگوید که دستور باید حذف شود ولی باید از تکرار عملیتهای موازی و مشابه جلوگیری کرد و حاصل انجام یک عملیت را بارها مورد استفاده قرار داد و مجدد بار تولید ان نتیجه را به برنامه تحمیل نکرد.

    ساده ترین کدهای خصاصت میتواند چیزهایی شبیه این باشد ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    =====

    موارد بدتر و وحشتناک تر میتواند چنین باشد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    دقت کنید که ارجاع به یک آیم مجموعه یک خط دستور ساده نیست ...
    مواردی کلید String و بیشتر تایپ های دیگر را دارند در ذات دو حلقله for تو در توی سنگین را به برنامه شما تحمیل میکنند ...
    حلقه اول تک تک عناصر مجموعه کلید را با کلید داده شده شما چک میکند تا عنصر دلخواه شما را پیدا کند و حلقه دوم که کمتر به آن دقت و توجه میشود حلقه ای است که تک تک کاراکترهای دو String را با هم مقایسه میکند تا بفهمد دو String برابر هستند یا خیر ...

    در واقع دسترسی به عناصر یک مجموعه معمولاً یک اسکن حجیم را به سیستم تحمیل میکند تا عنصر مورد نظر پیدا شود.

    در مواردی که این مجموعه ثابت است بهتر است اشاره گر عنصر مربوطه فقط و فقط یک بار در برنامه به دست آورده و در متغییری محلی در سطح کلاس ذخیره کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    =====

    نوع دیگری از مسئله فوق خود را در حلقه های for و while و... آشکار و پنهان نشان میدهد ...

    دستوری که در داخل حلقه نوشته میشود یک خط نیست، به معنای انکه شاید به نظر شما یک خط باشد ولی اگر حلقه 100 بار تکرار شود آن یک خط شما 100 بار اجرا میشود و معادل 100 خط کدنویسی فشار به برنامه تحمیل میکند.

    حلقه های آشکار for و while هستند که ما داریم و حلقه های پنهان جایی هستند که ما نمیبینیم مثل حلقه for ای که یک مجموعه را برای پیدا کردن عنصری جستجو میکند یا حلقه while که Game.Update کد قبلی را مدام و تا انتهای برنامه اجرا میکند.

    شما اگر یک عملیات و یک خط کد را از داخل حلقه ای کم کنید و در عوضش مجبور شویبد 10 یا 20 خط کد خارج آن حلقه اضافه کنید (تا آن یک خط داخل حلقه کم شود) باز هم سود کرده اید !!!
    چون یک خط داخل حلقه با 100 بار معادل 100 خط کد نویسی را به برنامه تحمیل میکند و در حالی 10 یا 20 خط خارج حلقه همان 10 یا 20 خط است.

    مثال قبلی هم در مبحث گفتاری الآن میگنجد ...
    در مثال قبلی هم ما با یک تعریف متغییر کد جستجوی یک مجموعه را از متد مادام الاجرای Game.Update به متد یکبار اجرا شوند Game.LoadContent منتقل کردیم و جالب آنکه دیگر بحث حلقه 100 یا 200 دوری نیست! متد Game.Update نزدیک 60 بار فقط در هر یک ثانیه میتواند اجرا شود (کری به دقیقهع و ساعت نداریم) و یک عملیات کمتر ما نتیجه 60 عملیات کمتر در هر ثانیه را بر عهده دارد.

    (بگذریم که خود جستجو در یک مجموعه برای یافتن یک عنصر هم همانطور که قبلاً بیان شد یک عملیات ساده نیست و خودش دو تا حلقه تو در تو است!!!)

    به علت حجم زیاد نوشته ها مبحث "سرعت و بازدهی کدهای مختلف" در پست بعدی و انشا ا... قبل از 24 ساعت باز مطالب ادامه می یابد ...
    (خیلی سعی کردم zip کنم ولی این مبحث را هر جور zip میکنی بازم بیرون میزنه!)

    ==============

    نقل قول نوشته شده توسط pishi0014
    ولی فکر کنم z محور بالایی باشه و y سمت چپی
    طبق مستندات، سیستم مختصاتی XNA همان است که در پست قبلی درج شد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    میتوانید برای اطلاعات بیشتر به منابع آنلاین معتبر معرفی شده در پست 8 زیر مراجه کنید و اگر احیاناً مطلب قابل توجهی پیدا کردید منتشر کنید.

    مجدداً تاکید میکنم که دید شما روی صفحه مانیتور وابسته به موقعیت فعلی خود دوربین (و 13 پارامتر ان) در مختصات جهانی XNA میباشد.

  16. 8 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •