如何在OpenGL中制作Pacman的角色

时间:2016-03-29 09:01:08

标签: opengl pacman

我正在尝试制作一个两个黄色的pacman(一个张开的嘴和一个普通的)以及一个幽灵,但我对openGL很不错。

有人可以给我代码来制作它们吗?

1 个答案:

答案 0 :(得分:3)

OpenGL只是一种绘制东西的方式。你需要弄清楚你想要绘制什么。虽然pacman是一个相当简单的形状:它只是一个圆弧。

我假设您已经知道如何绘制三角形。圆圈本质上是一组具有共同中点的三角形:

circle with triangles

如果将其划分为足够的三角形,它将在屏幕上显得完全平滑。最佳数量将根据您的pacman的大小而有所不同。

现在为了制作"嘴",只需在一个地方删除一些顶点即可。 pacman的嘴形成一个特征性的开口,它在它移动的方向上对齐,并在两端打开":

pacman shape

现在,假设您使用简单的循环(伪代码)绘制三角形:

for (i : (0, 360)) {
    rotate(i /* degrees */);  // ---------- see remark 1.
    drawTriangle();
}

要制作开场动画,你只需要从两端减去当前宽度除以一半(不是那么难看,看!):

mouthOpenPercentage = 0.5; // varies from 0 to 1
fullyOpenMouthSize = 0.1; // 10% of the circle, so around 36 deg
numberOfSegments = 360;
mouthOpenSegments = fullyOpenMouthSize * mouthOpenPercentage * numberOfSegments / 2;

for (i : (mouthOpenSegments, numberOfSegments - mouthOpenSegments)) {
    rotate(i /* degrees */);
    drawTriangle();
}

如果它出来,例如在顶部而不是右边,只需先按所需的角度旋转到"指向"它朝着你想要的方向发展。

1。我认为rotate表示"绝对轮换"。牢记这一点。