لینک کوتاه : https://magicfile.ir/?p=3791
دانلود سورس کد سی شارپ بازی اسنوکر بیلیارد
امروز در این پست برای شما کاربران عزیز وبسایت فایل سحرآمیز یک سورس کد سی شارپ بازی بیلیارد اسنوکر را آماده دانلود قرار داد ایم.
قوانین
خود بازی یک بازی اسنوکر ساده است. به جای 15 توپ قرمز، فقط 6 توپ دارد. هر توپ قرمز 1 امتیاز می دهد، در حالی که توپ های "رنگی" از 2 تا 7 امتیاز می گیرند (زرد=2، سبز=3، قهوه ای=4، آبی=5، صورتی=6). ، سیاه = 7).
بازیکن باید از توپ نشانه (توپ سفید) برای هدف قرار دادن "توپ روی" استفاده کند. تا زمانی که توپهای قرمز روی میز وجود داشته باشد، «توپ روی» همیشه بین یک توپ قرمز و یک توپ رنگی متناوب است. هنگامی که تمام توپ های قرمز در گلدان قرار می گیرند، توپ روی توپ رنگی کم ارزش تر است. اگر بازیکن توپ را از دست داد، یا به توپ دیگری غیر از توپ روی توپ ضربه زد، خطا است. اگر بازیکن توپی غیر از توپ روی آن بزند، خطا است. اگر بازیکن نتواند به توپ دیگری با توپ ضربه بزند، خطا است. بازیکن فقط در صورتی گل می زند که ایرادی نداشته باشد. امتیاز خطا به حریف داده می شود. زمانی که همه توپ ها در گلدان قرار می گیرند، بازی تمام می شود (به جز توپ سفید).
زمینه
بازی بر روی سه سنگ بنا ساخته شده است:
وضوح/وضوح برخورد/برخورد : اول از همه ، برای یک بازی استخر ضروری است که یک تصادف را داشته باشد و به درستی آن را اداره کند. هنگامی که توپ ها در حال حرکت هستند ، همیشه باید در داخل مرزها محدود شوند و در استخر بمانند مگر اینکه در جیب قرار بگیرند. هنگامی که یک توپ با سایر توپ ها یا مرزها برخورد می کند، باید آن را بشناسید و قبل از قرار دادن توپ در حال برخورد روی صفحه، برای حل این برخورد اقدام کنید. برخورد به خودی خود آنقدرها هم مشکل ساز نیست (مثلاً می توانید آزمایش کنید که آیا دو توپ به هم نزدیکتر از دو برابر شعاعشان هستند یا خیر). مشکل واقعی این است که تصمیم بگیرید که توپ های برخورد شده در آن لحظه اگر اشیاء واقعی بودند کجا باشند و همچنین جهت های حاصل از آنها را محاسبه کنید. من سخت تلاش کردم تا تصادفات را به درستی برطرف کنم و بعد از اینکه خودم چرخ را دوباره اختراع کردم ، سرانجام به گوگل متوسل شدم. اگرچه مقالات زیادی برای توضیح وضوح برخورد وجود دارد، من در نهایت از این مقاله ساده و مستقیم به منظور تشخیص و مدیریت از متیو مکدول استفاده کردم.
ارائه گرافیک سریع و صاف : در ابتدا ، من سعی کردم از یک تایمر برای کنترل روند رندر استفاده کنم. در هر تیک ، موقعیت توپ ها محاسبه می شد و سپس گرافیک ها ارائه می شدند. مشکل این است که، معمولا، زمان محاسبه برای هر تیک متفاوت بود، زیرا گاهی اوقات من فقط یک توپ در حال حرکت بودم، در حالی که در برخی دیگر، 10 توپ به طور همزمان با هم برخورد می کردند و حرکت می کردند. بنابراین تلاش محاسبه متفاوت بود. این تفاوت بر رندر تأثیر گذاشت و به نظر می رسید که در بعضی از نقاط "بریده" شده است. این ناامید کننده بود. اگر به عنوان مثال ، سایر بازی های Snooker را انجام دهید ، متوجه خواهید شد که هر عکس دارای یک جریان مایع است. سپس، ابتدا با انجام تمام محاسبات، کد را بازسازی کردم، و سپس یک «فیلم» در حافظه ایجاد کردم که حاوی ترتیب فریمها است (هر فریم یک عکس فوری از توپها در نقطهای از زمان، روی پسزمینه استخر است). بعد از اینکه همه توپ ها حرکت خود را متوقف کردند ، "فیلم" تمام شد و بازی کرد. در ابتدا ، این به نظر می رسد بیش از حد تلاش ، اما برای بازی مانند این ، سرعت ارائه بسیار مهم است. اگر من بازی را به فناوری XNA پورت می کردم، ممکن بود آسان تر باشد، اما نمی خواستم کاربران CodeProject را مجبور به دانلود بسته های ویژوال استودیو اضافی کنم.
جلوه های صوتی واقع گرایانه : وقتی بالاخره گرافیک را به کار انداختم، متوجه شدم چیزی کم است. من می خواستم بازی صداهایی داشته باشد تا آن را واقعی تر و هیجان انگیزتر کند. پس از کمی تحقیق، چند فایل wav. پیدا کردم که می تواند برای ضربه زدن نشانه به توپ، برخورد توپ ها به یکدیگر و دیگر صداهای واقعی بازی استخر مفید باشد. سپس، من سعی کردم آن را با System.Media.SoundPlayerشی پیش فرض پخش کنم، اما به زودی متوجه شدم که صداهای همزمان را پخش نمی کند: whey you play a sound، همه صداهای اجرا متوقف می شوند. خوشبختانه موتور صوتی فوق العاده IrrKlang را پیدا کردم و مشکل حل شد. این یک موتور صوتی سه بعدی بسیار جالب دارد که می توانید صدا و مختصات XYZ را تعریف کنید. فقط به یک بازی تیراندازی اول شخص فکر کنید. در خیابانی تاریک قدم می زنید و صدای غرش ملایمی را می شنوید که از سمت راست شما می آید. با ادامه راه رفتن، صدا بلندتر می شود. کمی بیشتر راه بروید، صدا در گوش راست شما به اندازه گوش چپ شما بلند است. سپس، صدا از سمت راست شما می آید. در پایان متوجه میشوید که یک هیولای خیانتکار تعقیب کردهاید که نزدیکتر میشد و از سمت راست شما به سمت چپ شما عبور میکرد. شما می توانید کاری مشابه را با گفتن به موتور IrrKlang انجام دهید که صدای " roar.wav " را در مختصات XYZ مختلف پخش کند و نقطه مرجع را به عنوان تیرانداز اول شخص (شما) در نظر بگیرید. در این بازی از موتور صوتی سه بعدی برای پخش صدا بر اساس مختصات منبع استفاده کردم.
برای شما کاربران عزیز پیشنهاد دانلود داده می شود.