ورود

View Full Version : درخواست کمک_ OpenGL _ حرکت دوبعدی



Y53D HADI
دوشنبه 17 آبان 1395, 18:05 عصر
سلام وقتتون بخیر
امیدوارم تاپیک تکراری نزده باشم چون زیاد نتونستم عمقی بگردم...:لبخندساده:

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

حالا متاسفانه از OpenGL هیچی نمیدونم و فقط در حد متوسط C++‎‎‎ بلدم...:ناراحت:

مشکل اول اینه که نتونستم هیچ آبجکتی رو حرکت بدم... و زمان هم ندارم بشینم کتابی چیزی بخونم...
مشکل دوم هم اینه که اگه حرکت بدم الگویی واسه حرکت نمیتونم بسازم (میخوام مثلا شبیه اسکرین سیور ویندوز بازیکنا اینور اونور برن الکی)

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

ببخشید طولانیش کردم:لبخندساده:

pswin.pooya
جمعه 05 آذر 1395, 14:12 عصر
این مساله بستگی به ویرایش OpenGL که استفاده می کنید بستگی داره. اما از اونجا که اکثرا توی ایران ویرایش 1.2 برای دانشگاه تدریس می شه. می تونید از دستور glTranslatef استفاده کنید:

https://www.opengl.org/sdk/docs/man2/xhtml/glTranslate.xml

البته اگر می خواهید هر شی رو بصورت جداگانه حرکت بدین باید ماتریسها رو وضعیتشون رو حفظ کنید. برای اینکار هم باید اونها رو push و pop کنید که به کمک دستورهای glPushMatrix و glPopMatrix در OpenGL ویرایش دو انجام می شن.


مثال:


glPushMatrix();

glTranslatef(0.5f, 0.0f, 0.0f);


glBegin(GL_QUADS);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.0f);
glVertex2f(0.5f, 0.5f);
glVertex2f(0.0f, 0.5f);
glEnd();
glPopMatrix();


نکته: این دستورها دیگه در ویرایش های بعد از OpenGL 1.5 حذف شده اند و شما باید ماتریس ها رو در کد C++‎‎‎ مدیریت کنید.