您好,学校练习我需要创建一个游戏,我决定创建吃 bean 人。一切都很顺利,但我无法完成的一件事是画一个吃 bean 人和他的鬼魂..我做了椭圆形,但现在怎么办?我希望吃 bean 人的嘴在移动时也能打开和关闭。有人可以帮忙画这个吗?
下面是我到目前为止所拥有的:
package h04PacMan;
import java.awt.*;
public class DrawPacMan {
public void drawPacMan(Graphics g, int x, int y, Color color) {
g.setColor(color); // set color
g.fillOval(x, y, 50, 50); // paint
g.setColor(Color.black);
g.drawOval(x, y, 50, 50); // outline
// mouth?
}
public void drawGhost(Graphics g, int x, int y, Color color) {
g.setColor(color); // color
// here goes shape
}
}
最佳答案
而不是使用 drawOval
和fillOval
,你应该看看drawArc
和fillArc
.
关于嘴巴的动画:鉴于 pacman 不断移动,您可以将 pacman 的位置与正弦函数结合起来,以获得良好且平滑的嘴巴运动,如下所示:
angle = 20 * (Math.sin((x + y)*2*Math.PI/50) + 1); # alt. betw. 0 and 40
g.fillArc(x, y, 50, 50, angle/2, 360-angle);
这样,当吃 bean 人在迷宫中移动自己大小的距离时,他的嘴就会自动进行一次开闭循环。 (您可能需要稍微调整数字以适合您的设置。)
当然,您仍然需要一个线程来运行整个游戏,但吃 bean 人嘴巴的动画也可以通过这种方式完成,无需额外的线程。
关于java - 用 Java 绘制 pacman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787603/