PDA

نسخه کامل مشاهده نسخه کامل : حل مشکل در c++,directx



blossom111
22-05-2013, 08:38
سلام
2تا خطم رو رسم کردم حالا موقعی که میخوام تکونش بدم ارور میده
تنظیم کردم که ابتدا 50 درجه نسبت به x و سپس y , z بچرخدو سپس 4واحد به سمت راست و... حرکت کند

اما ارور میدهد 7تا:n03:
اینم 2تاش هست چه مشکلی داره؟

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

mehrdad_joon
22-05-2013, 10:51
سلام
2تا خطم رو رسم کردم حالا موقعی که میخوام تکونش بدم ارور میده
تنظیم کردم که ابتدا 50 درجه نسبت به x و سپس y , z بچرخدو سپس 4واحد به سمت راست و... حرکت کند

اما ارور میدهد 7تا:n03:
اینم 2تاش هست چه مشکلی داره؟

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

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

god of war 2
22-05-2013, 11:53
سلام.
ارور مربوط میشه به لینکر. احتمالا شما به درستی lib های direct3D رو به پروژه معرفی نکردی.
برای کار با Direct3D باید ابتدا تمام فایل های lib اونو به پروژه معرفی کنی که توسط لینکرقابل تشخیص باشه.

blossom111
22-05-2013, 17:40
آقای god of war 2 ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
شما فکر میکنم که درست میگید اما چطوری لینک کنم؟

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

دقیقا باید چکار کنم؟
اگه منظورتون از لینک همان include است
من کتاب خانه مربوطه را وارد کردم

blossom111
24-05-2013, 12:13
سلام

ارور برنامه ام رفع شد اما نمیدانم چرا هیچ چرخش و جابه جایی نداره فقط یک خط را رسم میکندهمین!

برنامه را گذاشتم

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

با سپاس

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

god of war 2
25-05-2013, 14:05
کدتون تقریبا درسته اما ممکنه مشکلات جزئی در تابع رسمتون

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باشه. متاسفانه من فعلا به VC دسترسی ندارم و نمیتونم کد صحیح رو براتون بنویسم اما بهتره از لینک زیر کمک بگیرید. فراموش نکنید که از یک وقفه (Sleep) چند میلی ثانیه ایی در هر فریم استفاده کنید چون ممکنه نرخ فریم بالا بره و شما اصلا هیچ خطی رو در صفحه نبینید.:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

blossom111
26-05-2013, 08:36
ممنون از راهنماییتان

اما من تا به حال با وقفه ها کار نکردم
و در برنامه های دایرکت استفاده از آن را ندیدم

میشود بگویید دقیقا چگونه باید از آن استفاده نمایم
و آن را در کدام قسمت برنامه قرار دهم؟

god of war 2
26-05-2013, 16:16
منظورم از وقفه استفاده از تابع Sleep هست:

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

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

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

این کار یه مزیت دیگه هم داره و اون اینه که از مصرف بیش از حد CPU جلوگیری میکنه.
البته Direct3D پیکربندی و تنظیمات کاملی داره که باید بدرستی انجام بشه تا بهینه تر عمل کنه اما برای کار شما که یک پروژه تمرینی هست اصلا مهم نیست.

blossom111
26-05-2013, 19:29
خیلی ممنون
بسیار عالی توضیح دادید

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

اگه ایرادی نداشته باشه یه سوال دیگه بپرسم

من خطی رسم کردم که از سمت چپ و باx=-4رسم و سپس 5 صدم 5 صدم به مقدار آن اضافه شده تا به سمت چپ حرکت کرده و از صفحه خارج میشود
حال میخواهم مثلا در حلقه ای آن را قرار دهم تا به x=4 رسید متوقف شود یا اینکه کلا از صفحه حذف شده و چیزی دیگر نمایش داده شود

باید حلقه ام را کجا قرار دهم؟
چون چند قسمت که قرار دادم یا اصلا دیگر خط نمایش داده نشد یا دیگر حرکت نکرد

لطفا مثل sleep که زیبا توضیح دادید
محل قرار گرفتن حلقه را نیز بگویید خیلی ممنون:n16:

god of war 2
26-05-2013, 21:26
خواهش میکنم.


حال میخواهم مثلا در حلقه ای آن را قرار دهم تا به x=4 رسید متوقف شود یا اینکه کلا از صفحه حذف شده و چیزی دیگر نمایش داده شود

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

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در اصل کار یک حلقه رو برای شما انجام میده یعنی بصورت مکرر تا زمانی که برنامه بسته بشه در حال اجرا شدن هست.
بهتره تا میتونید از هیچ حلقه ای در این تابع استفاده نکنید و کمترین/سریعترین/بهینه ترین کد رو داخل این تابع بنویسید.
----------
اما در رابطه با کاری که میخواهید انجام بدید, میتونید براحتی از یک if استفاده کنید که در صورت درست بودن شرط (مثلا x <= 4) عملیات خاصی رو (مثل همون کاری که میخواهید انجام بشه) انجام بده.:

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

blossom111
26-05-2013, 22:08
واقعا عالی توضیح میدید

حیف که میخوام واسه کنکور بخونم وگر نه تا میتونستم از حضورتون در این سایت استفاده میکردم
البته شما هم از دست سوالات من راحت میشید

بینهایت سپاسگزارم

mojtaba.saha
31-05-2013, 13:42
dadash ma taze barname nevisim.....chetori pishrafte beshim ?

blossom111
02-06-2013, 17:50
dadash ma taze barname nevisim.....chetori pishrafte beshim ?

ببخشید من یه مدت نبودم
منظور از داداش دقیقا کی هست؟
من باید جوا بدم یا دیگری؟

با تمرین
یه کتاب C++خوب رو شروع کن و تمام تمرین هاش رو اجرا کن

با بررسی تمارین آماده در نت نیز میتوان اطلاعات را کسب کرد
به هر حال نشین مثل بقیه حفظ کن و بعد از اون فک کن که برنامه نویس شدی و هیچی هم بلد نباشی

موفق باشی