Opengl在每次点击中添加一个新对象?

Opengl在每次点击中添加一个新对象?

问题描述:

void onClick(int button, int state, int x, int y) { 
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) 
    drawHouse(x,y); 
} 

你好,Opengl在每次点击中添加一个新对象?

我有一个问题有关的OpenGL的onclick功能。我画了一个对象(原始房屋),我想要显示它,当我点击鼠标。我怎样才能做到这一点?

我的老师给出了这个命令:“在用户按下鼠标左键后添加一个新的对象,在第一部分定义,每次点击都会在点击位置添加一个新对象,最多可创建10个对象在屏幕上。然后,每个点击后一个新的对象应该更换的第一个对象。

感谢您的帮助......

+2

你尝试过什么? – HolyBlackCat

+0

如何将鼠标位置存储在长度为10的数组中?每次点击都会向数组添加一个新条目。如果数组已满,则条目将被覆盖。 – Rabbid76

+0

@HolyBlackCat不,我卡在那里... – hsntrk

一个可能soultion将存储在与10长度的阵列鼠标位置。每次点击都会向数组添加一个新条目。如果数组是满的,条目被覆盖:

#define MAX_OBJ 10 

int pos_x[MAX_OBJ], pos_y[MAX_OBJ]; 
int count = 0; 
int next_i = 0; 

void onClick(int button, int state, int x, int y) 
{ 
    if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) 
    { 
     pos_x[next_i] = x; 
     pos_y[next_i] = y; 
     next_i ++; 
     if (next_i == MAX_OBJ) next_i = 0; 
     if (count < MAX_OBJ) count ++; 
    } 
} 

在主循环中可以得出对象已知的位置:

for(int i = 0; i < MAX_OBJ; ++ i) 
    drawHouse(pos_x[i], pos_y[i]);