我想創建一個遊戲similare到的圖像的下拉這一個http://www.sciencekids.co.nz/gamesactivities/movinggrowing.html阻力和使用的OpenGL C++
1-如何根據來自鼠標座標移動圖像?我知道如何翻譯我喜歡多邊形而不是圖像的物體?
2-如何檢查,如果它在正確的PLCE並使其卡在那裏 我用gltranslate但圖像沒有動,並試圖copypixl但它一直複製圖像 每一個地方的鼠標點擊。
#include <windows.h>
#include <GL/glut.h>
#include <gl/glaux.h>
#pragma comment(lib,"glaux.lib")
AUX_RGBImageRec *image ;
GLsizei wh = 600, ww = 800;
//-----------------------------------------------------------------------------------------------
void display(void){
image = new AUX_RGBImageRec();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
image = auxDIBImageLoad(L"boy.bmp");
glDrawPixels(image->sizeX, image->sizeY, GL_RGB,
GL_UNSIGNED_BYTE,image->data);
glFlush();
}
//-----------------------------------------------------------------------------------------------
void mouse (int btn , int state , int x , int y){
int h = wh-y ;
if(btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
/*glPushMatrix();*/
/*glTranslatef(x , h , 0);*/
glRasterPos2i(x,h);
glCopyPixels(0,0,image->sizeX, image->sizeY,GL_COLOR);
//glPopMatrix();}
if(btn == GLUT_LEFT_BUTTON && state == GLUT_UP) {
// check if it is in right place to stuck it else will retuen to original place
}
}glFlush();
}
//-----------------------------------------------------------------------------------------------
void intiate(){
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,ww,0,wh);
}
//-----------------------------------------------------------------------------------------------
void main()
{
glutInitDisplayMode (GLUT_RGB);
glutInitWindowSize (ww, wh);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Inside my Body");
intiate();
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
}
http://stackoverflow.com/questions/20288861/mouse-drag-object-in-opengl-glut – 2016-03-16 21:25:37