PDA

View Full Version : مشکل در نوشتن برنامه و بازی ها به صورت oop ؟



vb8334
شنبه 03 آبان 1393, 11:10 صبح
سلام

دوستان من یه بازی رو نوشتم که به صورت کدهای ساده هستش و از هیچ کد شی گرایی توش استفاده نکردم.

حالا مشکل من چیه؟

مشکل من اینه که نمیدونم چطوری کلآ بازی ها و برنامه هایی که نوشتم رو به صورت شی گرایی تبدیل کنم ؟ یعنی هر چی زور میزنم هیچی نمیتونم بنویسم.

آیا این به خاطر اینه که تا حالا برنامه به صورت oop ننوشتم هستش. یعنی بعدآ درست میشه؟

شماها خودتون چطوری فکر میکنین برای اینکه بخواین برنامه یا بازی هاتون رو به صورت شی گرایی بنویسید؟

البته من با معماری 3 لایه هم کار کردم و یه برنامه میشه گفت دیتابیسی هم نوشتم (یعنی منظورم این هستش که با شی گرایی آشناییت دارم)

مرسی

behzadkhan
شنبه 03 آبان 1393, 16:00 عصر
با سلام

لطفا به سوال های زیر پاسخ دهید:

1. زبان برنامه نویسی
2. تشریحی از کدتون
3. آیا از کتابخانه خاصی استفاده کردید.
4. تشریحی از بازیتان
5. تعداد خطوط برنامه
6. اگه کدتون را نمی تونید بزارید حداقل یک نمای شماتیک از کد بزارید.
=============================================

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

با تشکر

vb8334
شنبه 03 آبان 1393, 23:10 عصر
1. سی شارپ


2.بازی breakout هستش (یعنی بازی توپ و تخته)

تشریح کد:

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

مهم ترین قسمت این بازی بخش برخود توپ با موانع هستش .

مثلآ من یک بخش از کد رو توضیح میدم:(این کد مربوط به برخود توپ با دکمه هست یا همون مانع)

bool collisonX2 = ball.Location.X + ball.Width > board2.Location.X && ball.Location.X < board2.Location.X + board2.Width;


تو این کد اومدم از لحاظ موقعیت X وضعیت توپ رو بررسی کردم که توپ بیرون از مانع نباشه که اگه بود یعنی توپ با مانع برخوردی نداشته.

بقیه قسمت هاش هم مثل هم هستن

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

3.از هیچ کتابخانه ای استفاده نکردم.

4. من یه لینک در مورد بازی گذاشتم :http://game.19b.ir/post/550/%D8%A8%D8%A7%D8%B2%DB%8C-%D8%AA%D9%88%D9%BE-%D9%88-%D8%AA%D8%AE%D8%AA%D9%87-breakout/

بازی من هم همین کار رو انجام میده

5. 240 خط

6. کد را هم گذاشتم



اما در مورد تبدیل کردن باید بگم چون کد ساده نوشته شده الان همه چی پیچیده شده یعنی به یه چی دست میزنی بقیش داغون میشه مثلآ میخواستم بخش تشخیص برخورد

رو جدا کنم اما چون همه چی بهم وابسته هستش یه خورده قضیه سخت شده (تو فکر اینم که از اول بنویسم به صورت oop) موجودیت ها هم تو این بازی یه تخته هست یه توپ و یه سری مانع

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


مرسی

RIG000
شنبه 03 آبان 1393, 23:25 عصر
من خسته شدم! :( چرا همش از اون گوشه میره؟؟ :( یه بازیه خوب بذار :)

behzadkhan
شنبه 03 آبان 1393, 23:43 عصر
با سلام

عالیه بهت تبریک می گم :تشویق:

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

کد شما را دارم بررسی می کنم
و
انجام می دهم.

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

با تشکر

vb8334
شنبه 03 آبان 1393, 23:49 عصر
من خسته شدم! :( چرا همش از اون گوشه میره؟؟ :( یه بازیه خوب بذار :)

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



با سلام

عالیه بهت تبریک می گم :تشویق:

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

کد شما را دارم بررسی می کنم
و
انجام می دهم.

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

با تشکر


دوست عزیز مرسی از پاسختون و توجهتون


فقط من میخوام شی گرایی رو خودم یاد بگیرم اگه خودتون میخواید انجام بدید و اینجا بزارید برای من فایده ای نداره

بیشتر میخوام ببینم شما چطوری فکر میکنید روی این پروژه و چجوری فاز بندی میکنی و خلاصه چطوری شی گرایی میکنی بازی رو.


مرسی

hamid_hr
یک شنبه 04 آبان 1393, 08:57 صبح
ببین برا قسمت برخورد اشیا
بیا یه تابع بنویس که دوتا شی رو بهش پاس میدی
اون تابع بیاد بررسی کنه که اشیا نسبت به هم چه موقعیتی دارند و یه خروجی بده
مثلا true یعنی با هم برخورد کرده اند
false یعنی اصلا به هم کاری ندارند

behzadkhan
یک شنبه 04 آبان 1393, 09:58 صبح
با سلام

دوست عزیز برای شروع یک کلاس برای "آجرها" ایجاد می کنیم.

شامل متد های :

create

move

delete

با تشکر