diff --git a/docs/graph/3.md b/docs/graph/3.md index f7e9010f003cba1fe65a27aa1f9ceb94d267e7bf..f4b56d96c4a1e343843cc70872f7dae7b43f5482 100644 --- a/docs/graph/3.md +++ b/docs/graph/3.md @@ -271,7 +271,7 @@ public class DonutExample extends JFrame { ## 绘制图像 -当我们创建计算机游戏时,我们经常使用图像。 在下一个示例中,我们加载图像并将其绘制在板上。 如果找不到图像文件,请查看 Java 教程中的[显示图像。](/java/displayimage/) +当我们创建计算机游戏时,我们经常使用图像。 在下一个示例中,我们加载图像并将其绘制在板上。 如果找不到图像文件,请查看 Java 教程中的[显示图像](/java/displayimage/)。 `Board.java` diff --git a/docs/graph/4.md b/docs/graph/4.md index 6142c9c0bd1bd26c4e9cc5b87f830f2ff456e38e..dfb35acbb3c96c0005c16051953fd0b5a8bb0535 100644 --- a/docs/graph/4.md +++ b/docs/graph/4.md @@ -189,7 +189,7 @@ public void paintComponent(Graphics g) { ``` -自定义绘画是通过`paintComponent()`方法完成的。 请注意,我们还调用其父级的`paintComponent()`方法。 实际绘画将委托给 drawStar()方法。 +自定义绘画是通过`paintComponent()`方法完成的。 请注意,我们还调用其父级的`paintComponent()`方法。 实际绘画将委托给`drawStar()`方法。 ``` private void drawStar(Graphics g) { @@ -200,7 +200,7 @@ private void drawStar(Graphics g) { ``` -在 drawStar()方法中,我们使用`drawImage()`方法在窗口上绘制图像。 `Toolkit.getDefaultToolkit().sync()`在缓冲图形事件的系统上同步绘画。 没有这条线,动画在 Linux 上可能会不流畅。 +在`drawStar()`方法中,我们使用`drawImage()`方法在窗口上绘制图像。 `Toolkit.getDefaultToolkit().sync()`在缓冲图形事件的系统上同步绘画。 没有这条线,动画在 Linux 上可能会不流畅。 ``` @Override @@ -220,7 +220,7 @@ public void actionPerformed(ActionEvent e) { ``` -计时器反复调用`actionPerformed()`方法。 在方法内部,我们增加星形对象的 x 和 y 值。 然后我们调用`repaint()`方法,这将导致`paintComponent()`被调用。 这样,我们可以定期重绘`Board`从而制作动画。 +计时器反复调用`actionPerformed()`方法。 在方法内部,我们增加星形对象的`x`和`y`值。 然后我们调用`repaint()`方法,这将导致`paintComponent()`被调用。 这样,我们可以定期重绘`Board`从而制作动画。 ![Star](img/875be503daaea390fdb5424e7418d8c4.jpg) @@ -540,7 +540,7 @@ public class Board extends JPanel ``` -在前面的示例中,我们以特定的间隔执行任务。 在此示例中,动画将在线程内进行。 `run()`方法仅被调用一次。 这就是为什么我们在方法中有一个 while 循环的原因。 从该方法中,我们称为`cycle()`和`repaint()`方法。 +在前面的示例中,我们以特定的间隔执行任务。 在此示例中,动画将在线程内进行。 `run()`方法仅被调用一次。 这就是为什么我们在方法中有一个`while`循环的原因。 从该方法中,我们称为`cycle()`和`repaint()`方法。 ``` @Override @@ -563,6 +563,6 @@ sleep = DELAY - timeDiff; ``` -`cycle()`和`repaint()`方法可能在不同的 while 周期中花费不同的时间。 我们计算两种方法的运行时间,并将其从`DELAY`常数中减去。 这样,我们要确保每个 while 周期都在恒定时间运行。 在我们的情况下,每个周期为`DELAY` ms。 +`cycle()`和`repaint()`方法可能在不同的`while`周期中花费不同的时间。 我们计算两种方法的运行时间,并将其从`DELAY`常数中减去。 这样,我们要确保每个`while`周期都在恒定时间运行。 在我们的情况下,每个周期为`DELAY` ms。 Java 2D 游戏教程的这一部分涵盖了动画。 \ No newline at end of file diff --git a/docs/graph/5.md b/docs/graph/5.md index 4af0379952336a6fe0c22e8ed619fbb31712660f..b340e75c4d1ab7cc21e9bcba2784e014b2732ad5 100644 --- a/docs/graph/5.md +++ b/docs/graph/5.md @@ -4,9 +4,9 @@ 在 Java 2D 游戏教程的这一部分中,我们将使用精灵。 -术语 Sprite 具有多种含义。 它用于表示场景中的图像或动画。 +术语精灵具有多种含义。 它用于表示场景中的图像或动画。 -它也用于表示游戏中的任何可移动对象。 含义之一也是在游戏中封装角色的代码。 在我们的教程中,通过使用 Sprite,我们引用了一个可移动对象或其 Java 类。 +它也用于表示游戏中的任何可移动对象。 含义之一也是在游戏中封装角色的代码。 在我们的教程中,通过使用精灵,我们引用了一个可移动对象或其 Java 类。 ## 移动精灵 @@ -131,7 +131,7 @@ public void move() { ``` -`move()`方法更改子画面的坐标。 这些 x 和 y 值在`paintComponent()`方法中用于绘制子画面的图像。 +`move()`方法更改子画面的坐标。 这些`x`和`y`值在`paintComponent()`方法中用于绘制子画面的图像。 ``` if (key == KeyEvent.VK_LEFT) { @@ -403,7 +403,7 @@ public Sprite(int x, int y) { ``` -构造函数初始化 x 和 y 坐标以及`visible`变量。 +构造函数初始化`x`和`y`坐标以及`visible`变量。 `Missile.java` diff --git a/docs/graph/64.md b/docs/graph/64.md index afa104233faa50d0e921a948382e8f43fb526d90..db6515e0e2ab2b52e2dc36929da192b52b7b0456 100644 --- a/docs/graph/64.md +++ b/docs/graph/64.md @@ -259,7 +259,7 @@ const C_WIDTH = 300; ``` -`DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义画布上可能的最大点数(900 = 300 * 300/10 * 10)。 `MAX_RAND`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。 `C_HEIGHT`和`C_WIDTH`常数存储画布的大小。 +`DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义画布上可能的最大点数(`900 = 300 * 300/10 * 10`)。 `MAX_RAND`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。 `C_HEIGHT`和`C_WIDTH`常数存储画布的大小。 ``` const LEFT_KEY = 37; diff --git a/docs/graph/7.md b/docs/graph/7.md index 60bdb596238a183fad3afb78e2fbadc0fc332c53..b13015b4fe4362e004fcdec2d445f0d740213ea3 100644 --- a/docs/graph/7.md +++ b/docs/graph/7.md @@ -2,7 +2,7 @@ > 原文: [https://zetcode.com/tutorials/javagamestutorial/puzzle/](https://zetcode.com/tutorials/javagamestutorial/puzzle/) -在 Java 游戏教程的这一部分中,我们创建一个 Java Puzzle 游戏克隆。 源代码和图像可以在作者的 Github [Java Swing 益智游戏](https://github.com/janbodnar/Puzzle-game-in-Java-Swing)存储库中找到。 +在 Java 游戏教程的这一部分中,我们创建一个 Java 解谜游戏克隆。 源代码和图像可以在作者的 Github [Java Swing 益智游戏](https://github.com/janbodnar/Puzzle-game-in-Java-Swing)存储库中找到。 ## Java 益智游戏要点 @@ -489,7 +489,7 @@ private void updateButtons() { ``` -`updateButtons()`方法将列表映射到面板的网格。 首先,使用`removeAll()`方法删除所有组件。 for 循环用于通过`buttons`列表,将重新排序的按钮添加回面板的布局管理器。 最后,`validate()`方法实现了新的布局。 +`updateButtons()`方法将列表映射到面板的网格。 首先,使用`removeAll()`方法删除所有组件。 `for`循环用于通过`buttons`列表,将重新排序的按钮添加回面板的布局管理器。 最后,`validate()`方法实现了新的布局。 ``` private void checkSolution() { diff --git a/docs/graph/8.md b/docs/graph/8.md index f24e5ad0fcdbdb4e239c63b7970b15ed81a6fdc5..f8e314be0806ac7a706f6ccc1a6749e1654a86bd 100644 --- a/docs/graph/8.md +++ b/docs/graph/8.md @@ -1,16 +1,16 @@ -# Java Snake +# Java 贪食蛇 > 原文: [https://zetcode.com/tutorials/javagamestutorial/snake/](https://zetcode.com/tutorials/javagamestutorial/snake/) -在 Java 2D 游戏教程的这一部分中,我们创建一个 Java Snake 游戏克隆。 源代码和图像可以在作者的 Github [Java-Snake-Game](https://github.com/janbodnar/Java-Snake-Game) 存储库中找到。 +在 Java 2D 游戏教程的这一部分中,我们创建一个 Java 贪食蛇游戏克隆。 源代码和图像可以在作者的 Github [Java-Snake-Game](https://github.com/janbodnar/Java-Snake-Game) 存储库中找到。 -## Snake +## 贪食蛇 -Snake 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。 +贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。 -## Java Sname 游戏的开发 +## Java 贪食蛇游戏的开发 -蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则在面板中间显示“ Game Over”消息。 +蛇的每个关节的大小为 10 像素。 蛇由光标键控制。 最初,蛇具有三个关节。 如果游戏结束,则在面板中间显示“Game Over”消息。 `Board.java` @@ -275,7 +275,7 @@ private final int DELAY = 140; ``` -`B_WIDTH`和`B_HEIGHT`常数确定电路板的尺寸。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数(900 =(300 * 300)/(10 * 10))。 `RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。 +`B_WIDTH`和`B_HEIGHT`常数确定电路板的尺寸。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数(`900 = (300 * 300) / (10 * 10)`)。 `RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。 ``` private final int x[] = new int[ALL_DOTS]; @@ -283,7 +283,7 @@ private final int y[] = new int[ALL_DOTS]; ``` -这两个数组存储蛇的所有关节的 x 和 y 坐标。 +这两个数组存储蛇的所有关节的`x`和`y`坐标。 ``` private void loadImages() { @@ -334,7 +334,7 @@ private void checkApple() { ``` -如果苹果与头部碰撞,我们会增加蛇的关节数。 我们称`locateApple()`方法为随机放置一个新的 Apple 对象。 +如果苹果与头部碰撞,我们会增加蛇的关节数。 我们称`locateApple()`方法为随机放置一个新的`Apple`对象。 在`move()`方法中,我们有游戏的密钥算法。 要了解它,请看一下蛇是如何运动的。 我们控制蛇的头。 我们可以使用光标键更改其方向。 其余关节在链上向上移动一个位置。 第二关节移动到第一个关节的位置,第三关节移动到第二个关节的位置,依此类推。 @@ -432,4 +432,4 @@ pack(); Figure: Snake -这是 Java 中的 Snake 游戏。 \ No newline at end of file +这是 Java 中的贪食蛇游戏。 \ No newline at end of file diff --git a/docs/graph/9.md b/docs/graph/9.md index ccc0dfffd3191855f69f0ba25928193b75ec6973..1872d897955d5c733a0635bd9253ea302d3d7490 100644 --- a/docs/graph/9.md +++ b/docs/graph/9.md @@ -4,7 +4,7 @@ 在 Java 2D 游戏教程的这一部分中,我们创建一个简单的 Breakout 游戏克隆。 源代码和图像可以在作者的 Github [Java-Breakout-Game](https://github.com/janbodnar/Java-Breakout-Game) 存储库中找到。 -Breakout 是一款最初由 Atari Inc.开发的街机游戏。该游戏创建于 1976 年。 +Breakout 是一款最初由 Atari Inc. 开发的街机游戏。该游戏创建于 1976 年。 在此游戏中,玩家移动屏幕上的桨叶并弹起一个或多个球。 目的是销毁窗口顶部的砖块。 @@ -367,7 +367,7 @@ public class Paddle extends Sprite { ``` -这是`Paddle`类。 它封装了 Breakout 游戏中的 paddle 对象。 操纵杆通过左右箭头键控制。 通过按箭头键,我们设置方向变量。 通过释放箭头键,将`dx`变量设置为零。 这样,桨停止移动。 +这是`Paddle`类。 它封装了 Breakout 游戏中的桨对象。 操纵杆通过左右箭头键控制。 通过按箭头键,我们设置方向变量。 通过释放箭头键,将`dx`变量设置为零。 这样,桨停止移动。 ``` void move() { @@ -387,7 +387,7 @@ void move() { ``` -桨叶仅在水平方向上移动,因此我们仅更新 x 坐标。 如果条件确保桨不通过窗口边缘。 +桨叶仅在水平方向上移动,因此我们仅更新`x`坐标。 如果条件确保桨不通过窗口边缘。 `com/zetcode/Board.java` @@ -809,7 +809,7 @@ if (bricks[i].getRect().contains(pointTop)) { ``` -如果球撞击砖的底部,我们将改变球的 y 方向; 它下降了。 +如果球撞击砖的底部,我们将改变球的`y`方向; 它下降了。 `com/zetcode/Breakout.java`