بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
ابي مساعدتكم في جعل هذه الرسمة تتحرك عن طريق الاسهم
يعني لما اضغط يسار تتحرك الرسمة لليسااار
وتظل تتحرك حتى ارفع اصبعي عن الزر
وهذا هو الكود
# pragma comment (lib, "opengl32.lib")
# pragma comment (lib, "glu32.lib") //المكتبات
# pragma comment (lib, "glaux.lib")
#include <windows.h>
#include <stdio.h>
#include <gl\gl.h> //استدعاء المكتبات
#include <gl\glu.h>
#include <gl\glaux.h>
#include "in.h"
#include <glut.h>
void moraba3(float x1, float y1, float x2, float y2)//النقاط
{
glBegin(GL_QUADS);
glVertex2f(x1,y1);
glVertex2f(x2,y1); //تحديد النقاط
glVertex2f(x2,y2);
glVertex2f(x1,y2);
glEnd();
}
int DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-1.0f);
glColor3f(0.1f,2.0f,1.1f); //لون المربع
moraba3(-0.1f,-0.1f,0.1f,0.1f); //رسم المربع
return TRUE;
}
//الدالة الرئيسية
int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
char NAME_WINDOW[]="";
int X_WINDOW=640,Y_WINDOW=480,T=16;
MSG msg;
BOOL done=FALSE;
//if(MessageBox(NULL,"FULL?","SBR",MB_YESNO|MB_ICONQUESTION)==IDNO)
// {
fullscreen=FALSE;
// }
if (!CreateGLWindow(NAME_WINDOW,X_WINDOW,Y_WINDOW,T,fullscreen))
{
return 0;
}
while(!done)
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if (msg.message==WM_QUIT)
{
done=TRUE;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
if ((active && !DrawGLScene()) || keys[VK_ESCAPE])
{
done=TRUE;
}
else
{
SwapBuffers(hDC);
}
if (keys[VK_F1])
{
keys[VK_F1]=FALSE;
KillGLWindow();
fullscreen=!fullscreen;
if (!CreateGLWindow(NAME_WINDOW,X_WINDOW,Y_WINDOW,T,fullscreen))
{
return 0;
}
}
}
}
KillGLWindow();
return (msg.wParam);
}للعلم اني حاولت عدة مراات لكني فشلت
لو سمحتم اتمنى احد يشرح الخطوات لو امكن
ملاحظة: لا تتعجبوا من كتابتي لبعض الملاحظات في الكود حتى اعرف فائدة كل وااحد منها
