我在写一个程序,允许用户通过菜单选项画出不同的形状,画出后的形状需要在同一屏幕上,但问题是在菜单中选择另一个选项画出另一个形状后,前一个形状就消失了。我该怎么解决这个?这是我的程序:
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
if (shape == 1)
{
draw_rectangle();
}
if (shape == 2)
{
draw_circle();
}
glFlush();
}
void menu(int choice)
{
switch (choice)
{
case 1:
shape = 1;
break;
case 2:
shape = 2;
break;
}
glutPostRedisplay();
}
GLCLEAR(GL_COLOR_BUFFER_BIT)
仅在DISPLAY()
中。
您必须为每个形状使用单独的布尔状态变量(regangle_shape
、circle_shape
),而不是一个指示形状的整数变量(shape
):
bool rectangle_shape = false;
bool circle_shape = false;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
if (rectangle_shape)
{
draw_rectangle();
}
if (circle_shape)
{
draw_circle();
}
glFlush();
}
void menu(int choice)
{
switch (choice)
{
case 1:
rectangle_shape = !rectangle_shape;
break;
case 2:
circle_shape = !circle_shape;
break;
}
glutPostRedisplay();
}
我对编程相对较新,我试图创建一个程序,创建一个紫色的球,我点击它向右移动,直到它离开屏幕,在那里我可以一次在屏幕上有无限个球。我已经做了一个程序来做这个,但我只能有一个在屏幕上一次,如果我点击第二次,第一个球消失,被一个新的球取代。哦,当我点击第二次时,球不是从光标所在的地方开始的,而是从最后一个球在x轴上的地方开始的。救命啊! 代码如下:
问题内容: 如何从一个活动屏幕导航到另一个活动屏幕?在第一个屏幕中,我有一个按钮,如果我单击该按钮,则必须移至另一个“活动”屏幕。 问题答案:
我可以毫无问题地实现模态抽屉。但是我想在同一个屏幕上添加两个模态抽屉,一个从左边,一个从右边。在xml中很容易做到,但是我不知道如何在Jetpack中做到这一点。
我用SpriteBatch绘制纹理,用ShapeRenderer绘制形状。 这是我在演员中的代码 并在屏幕上调用stage.draw() 它正在工作,但不可预测地抛出异常:
我想创建一个多边形从形状点。
我正在按照教程使用OpenGL在屏幕上画一个三角形。我已经正确地遵循了所有的步骤,但我只得到一个绿色屏幕,没有三角形。 这是我现在的代码。在应用程序初始化期间调用DrawScene,并在每个WM_DRAW中调用ResizeScene。我的问题是:为什么三角形没有显示在我的代码中? OpenGL版本:4.6