View Full Version : تغییر مقیاس دید با زدن کلید های جهت نما
darya_hg
یک شنبه 17 آذر 1387, 22:40 عصر
من یک شکلی طراحی کردم که مقداری از آن خارج از پنجره است و قابل مشاهده نیست
چطوری بوسیله کلید های مکان نما میتونم مقیاس دید را تغییر بدم یعنی بشه بقیه تصویر رو دید.
یه سوال دیگه واسه ایجاد حلقه(بیضی) از چه دستوری باید استفاده کرد؟
darya_hg
دوشنبه 18 آذر 1387, 10:44 صبح
هيچكس نيست جواب منو بده آخه خيلي بهش احتياج دارم...
kochol
دوشنبه 18 آذر 1387, 19:01 عصر
سلام
سوالتون اصلا واضح نیست
شما می خواهید با کلید های جهت نما دوربین رو تکون بدید یا اینکه زاویه دید دوربین رو تغییر بدید
در هر صورت برای این کار باید ماتریس های پروجکشن projection و view رو تغییر بدین
برای حرکت دادن دوربین ماتریس view رو باید تغییر بدین و برای تغییر زاویه دید ماتریس projection
darya_hg
سه شنبه 19 آذر 1387, 19:20 عصر
سلام
سوالتون اصلا واضح نیست
شما می خواهید با کلید های جهت نما دوربین رو تکون بدید یا اینکه زاویه دید دوربین رو تغییر بدید
در هر صورت برای این کار باید ماتریس های پروجکشن projection و view رو تغییر بدین
برای حرکت دادن دوربین ماتریس view رو باید تغییر بدین و برای تغییر زاویه دید ماتریس projection
سلام
میدونید من یه مقدار تازه کارم اگه راهنمائیم کنید خیلی ممنون میشم من برنامه ایی رو که میخوام بنویسم توضیح میدم بعد شما اگه میشه لطف کنید بگید چیکار باید کنم.
من میخوام یه بازی طراحی کنم که توی اون بازی یکسری دیوار قرار دارد و یک توپ که قراره این مسیر رو طی کنه و از یکسری خار و حلقه هایی که در مسیرسش هست عبور کنه(بتونه بالا بپره و روبه جلو حرکت کنه) وقتی که این 5 حلقه رو رد کرد در خروجی برای اون باز میشه. پیغام برنده شدن رو به اون میده اگر هم با خارها برخورد کرد بازی از اول شروع میشه.
پنجره من کلا 100*600 هست که در هر لحظه فقط 100*100 اون قابل مشاهده است و با حرکت توپ پنجره هم حرکت میکنه .
حالا من دیوار های اون رو با دستور quads رسم کردم ولی خوب همه تصویر چون از کل پنجره بزرگتر هست قابل مشاهده نیست .
منتظر راهنماییتون هستم .
مرسی
kochol
چهارشنبه 20 آذر 1387, 10:28 صبح
سلام
شما خودت توضیح بده که داری با چه ابزاری کار می کنی من اول فکر کردم 3 بعدی داری کار می کنی ولی حالا فهمیدم که 2 بعدیه
شما از چی برای این کار استفاده کردی بگو تا من هم توضیح بدم
darya_hg
شنبه 23 آذر 1387, 20:09 عصر
سلام
شما خودت توضیح بده که داری با چه ابزاری کار می کنی من اول فکر کردم 3 بعدی داری کار می کنی ولی حالا فهمیدم که 2 بعدیه
شما از چی برای این کار استفاده کردی بگو تا من هم توضیح بدم
سلام شرمنده دیر شد.
من با استفاده از دستور GL_QUADS اشکالم رو رسم کردم تیغ هایی رو هم که سر راه توپ قرار داره با استفاه از GL_LINES رسم کردم
پنجره رو هم با استفاده از این دستورات حرکت دادم
glViewport (0, 0, w, h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
حالا میشه راهنمایی کنید که چطوری یه توپ طراحی کنم که حرکت کنه وبتونه وقتی یک کلید زدم بپره و روبه جلو بره ؟
راستی چطوری پرش توپ رو باید تنظیم کرد که از حلقه ایی که ترسیم کردم رد بشه ؟
منتظر راهنماییتون هستم .(با پیگیری سریعتر)
ممنون
pswin.pooya
یک شنبه 24 آذر 1387, 18:52 عصر
سلام
مقدار x و y رو با فشرده شدن کلید ها تغییر بده این مقدار مابین صفر و یک باید باشه برای ترسیم توپ هم میتونی از یه بافت ( ترجیحا) و یا دستور glutSolidSphere استفاده کنی
glPushMatrix();
glTranslatef( x,y,0.0);
// keshidane top
glPopMatrix()
darya_hg
یک شنبه 24 آذر 1387, 23:15 عصر
سلام
مقدار x و y رو با فشرده شدن کلید ها تغییر بده این مقدار مابین صفر و یک باید باشه برای ترسیم توپ هم میتونی از یه بافت ( ترجیحا) و یا دستور glutSolidSphere استفاده کنی
glPushMatrix();
glTranslatef( x,y,0.0);
// keshidane top
glPopMatrix()
سلام
راستش من تا حالا با این دستورات کار نکردم میشه واسم توضیح بدید که این دستورات چیکار میکنه؟
اگه میشه یه مثال هم بزنید.
pswin.pooya
دوشنبه 25 آذر 1387, 12:29 عصر
این مباحث مربوط به ماتریسها و تبدیلات هستش و باید حتما یه کتاب OpenGL رو برای اونها بخونی من بارها داخل همین فروم لینک دانلود کتابهای فارسی و زبان اصلی رو برای این کار دادم. کافیه یه سرچ بزنی.
من کتاب قرمز OpenGL که مجانی هستش و اون رو میشه از سایت www.opengl.org (http://www.opengl.org) بگیری و یا کتاب Begining OpenGL game programming رو پیشنهاد میکنم. همینطور یه کتاب مجانی فارسی دیگه هم هستش که دکتر مهری نوشته. و میتونی از بلاگ فارسی www.opengl.blogfa.com (http://www.opengl.blogfa.com) هم استفاده کنی.
برای تشخیص برخورد و حرکت توپ هم می تونی یه ماتریس بسازی و از اون استفاده کنی ( در حالت ساده - این مبحث مربوط به گرافیک نیستش)
فکر کنم اینجوری جواب بهتری بگیری:
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glTranslatef(x,y,0);
// keshidane top
glPopMatrix
دستکاری کردن مرتب دریچه دید رو هم پیشنهاد نمی کنم به جای اون بهتره دوربین رو تغیر بدی. یعنی فکر نمی کنم جواب بده. دریچه دید رو تنها باید در اول برنامه ( برای یه بازی و زمانی که فقط یه دریچه دید داری) و زمانی که اندازه پنجره تغییر کردش باید تغییر بدی.
darya_hg
سه شنبه 03 دی 1387, 15:26 عصر
سلام
من نمای کلی بازی رو طراحی کردم توپ رو هم حرکت دادم یعنی میشه بطرف چپ و راست و
بالا و پایین حرکت کنه
حالا چطوری میتونم تشخیص بدم که وقتی توپ به دیوار ها رسید نتونه از اونها رد بشه؟
راستی میشه بوسیله رنگ هایی که بکار بردیم مانع رو تشخیص بدیم؟
یعنی وقتی به اون رنگ مورد نظر رسید دیگه نتونه رد بشه؟
از راهنمایی های قبلیتون هم ممنونم خیلی کمکم کرد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.