java - 用 Java 绘制 pacman

标签 java graphics

您好,学校练习我需要创建一个游戏,我决定创建吃 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

}

}

最佳答案

而不是使用 drawOvalfillOval ,你应该看看drawArcfillArc .

参见java.awt.Graphics .

关于嘴巴的动画:鉴于 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/

相关文章:

java - 如何在AlertDialog edittext中设置fontfamily?

java - 无法在 Java 中的文档或程序文件中创建新目录

java - Google Cloud Storage 返回 404,即使文件是使用 BlobstoreService 从 GAE 托管应用程序上传的

java - 使用JDialog与Tabbed Pane绘制不同的图片

java - 高效地处理所有游戏图 block 更新?

Java Graphics,使用点击事件改变绘图的颜色

c++ - 寻找非凸多边形的代表性平均内部点

java - Log4j 在所有类级别记录

C# Graphics.DrawString 不渲染特殊字符?

java - 内存不足 : Java heap space