提交 82a723e8 编写于 作者: W wizardforcel

2020-06-21 11:09:16

上级 086cbc8b
......@@ -216,7 +216,7 @@ button.AllowDrop = true;
```
我们将`AllowDrop`属性设置为 true。 默认情况下不启用删除。
我们将`AllowDrop`属性设置为`true`。 默认情况下不启用删除。
```
button.DragDrop += new DragEventHandler(OnDragDrop);
......@@ -236,7 +236,7 @@ private void OnMouseDown(object sender, MouseEventArgs e)
```
`OnMouseDown()`方法中,我们初始化了 drap &放置过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖动&放置操作期间复制文本或移动文本。
`OnMouseDown()`方法中,我们初始化了拖放过程。 我们使用`DoDragDrop()`方法启动该过程。 `DragDropEffects.Copy`参数指定操作的类型。 实质上,我们可以在拖动&放置操作期间复制文本或移动文本。
```
private void OnDragEnter(object sender, DragEventArgs e)
......@@ -246,7 +246,7 @@ private void OnDragEnter(object sender, DragEventArgs e)
```
当鼠标指针进入放置目标控件的区域时,将启动`DragEnter`事件。 必须设置`Effect`属性。 拖动源和放置目标的 DragDropEffects 必须相等。 否则,该操作将无法进行。
当鼠标指针进入放置目标控件的区域时,将启动`DragEnter`事件。 必须设置`Effect`属性。 拖动源和放置目标的`DragDropEffects`必须相等。 否则,该操作将无法进行。
```
private void OnDragDrop(object sender, DragEventArgs e)
......
......@@ -4,7 +4,7 @@
在 Mono Winforms 教程的这一部分中,我们将进行绘图。 当我们想要更改或增强现有控件时,将使用绘图。 或者,如果我们要从头开始创建自定义控件。 要进行绘图,我们使用 Winforms 库提供的绘图 API。 绘图是在一种方法中完成的,我们将其插入`Paint`事件。
`System.Drawing`名称空间提供对`GDI+`基本图形功能的访问。 System.Drawing.Drawing2D,System.Drawing.Imaging 和 System.Drawing.Text 命名空间中提供了更高级的功能。 `Graphics`类提供了在表单上绘图的方法。
`System.Drawing`名称空间提供对`GDI+`基本图形功能的访问。 `System.Drawing.Drawing2D``System.Drawing.Imaging``System.Drawing.Text`命名空间中提供了更高级的功能。 `Graphics`类提供了在表单上绘图的方法。
## 直线
......
# Mono Winforms 中的 Snake
# Mono Winforms 中的贪食蛇
> 原文: [http://zetcode.com/gui/csharpwinforms/snake/](http://zetcode.com/gui/csharpwinforms/snake/)
在 Mono Winforms 编程教程的这一部分中,我们将创建一个 Snake 游戏克隆。
在 Mono Winforms 编程教程的这一部分中,我们将创建一个贪食蛇游戏克隆。
## Snake 游戏
## 贪食蛇游戏
Snake 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。
贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。 该游戏有时称为 Nibbles 。
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 通过按下光标键之一开始游戏。 如果游戏结束,我们将在棋盘中间显示“ Game Over”消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 通过按下光标键之一开始游戏。 如果游戏结束,我们将在棋盘中间显示“`Game Over`”消息。
`Board.cs`
......@@ -236,7 +236,7 @@ public class Board : UserControl {
首先,我们将定义游戏中使用的常量。
`WIDTH``HEIGHT`常数确定电路板的大小。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数。 (900 = 300 * 300/10 * 10`RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。
`WIDTH``HEIGHT`常数确定电路板的大小。 `DOT_SIZE`是苹果的大小和蛇的点。 `ALL_DOTS`常数定义了板上可能的最大点数。 (`900 = 300 * 300 / 10 * 10``RAND_POS`常数用于计算苹果的随机位置。 `DELAY`常数确定游戏的速度。
```
private int[] x = new int[ALL_DOTS];
......@@ -332,4 +332,4 @@ class MApplication {
Figure: Snake
这是使用 Mono Winforms 库编程的 Snake 游戏。
\ No newline at end of file
这是使用 Mono Winforms 库编程的贪食蛇游戏。
\ No newline at end of file
......@@ -29,7 +29,7 @@ GNOME 是一个桌面环境,是在计算机操作系统之上运行的图形
如果您的系统上安装了 OpenJDK 或任何其他非标准 Java 开发工具包,则运行配置脚本,其路径指向已安装的 Sun JDK。
成功构建 Java Gnome 库之后,应该有两个文件。 `gtk-4.0.jar``libgtkjni-4.0.10.so`。 如果您已经下载了 java-gnome 4.0.10。
成功构建 Java Gnome 库之后,应该有两个文件。 `gtk-4.0.jar``libgtkjni-4.0.10.so`。 如果您已经下载了`java-gnome` 4.0.10。
启动 Java Gnome 应用存在一个长期存在的问题。 通常,您需要创建一个脚本来启动每个 Java gnome 应用。 根据该网站,此问题已解决,但对我不起作用。 我通过复制`gtk-4.0.jar`所在的`libgtkjni-4.0.10.so`进行了变通。
......
......@@ -222,7 +222,7 @@ try {
```
我们从磁盘上的文件加载 pixbuf
我们从磁盘上的文件加载`pixbuf`
```
setIcon(icon);
......
......@@ -135,7 +135,7 @@ fix.put(image1, 20, 20);
```
我们将第一个图像放置在 x = 20,y = 20 坐标处。
我们将第一个图像放置在`x = 20``y = 20`坐标处。
```
add(fix);
......@@ -386,14 +386,14 @@ Table table = new Table(5, 4, true);
```
我们创建一个具有 5 行 4 列的表小部件。 第三个参数是同质参数。 如果设置为 true,则表中的所有小部件都具有相同的大小。 所有窗口小部件的大小等于表容器中最大的窗口小部件。
我们创建一个具有 5 行 4 列的表小部件。 第三个参数是同质参数。 如果设置为`true`,则表中的所有小部件都具有相同的大小。 所有窗口小部件的大小等于表容器中最大的窗口小部件。
```
table.attach(new Button("Cls"), 0, 1, 0, 1);
```
我们在表格容器上附加一个按钮。 到表格的左上方单元格。 前两个参数是单元格的左侧和右侧,后两个参数是单元格的顶部和左侧。 换句话说,它到达表容器的第一个单元格。 在 0、0
我们在表格容器上附加一个按钮。 到表格的左上方单元格。 前两个参数是单元格的左侧和右侧,后两个参数是单元格的顶部和左侧。 换句话说,它到达表容器的第一个单元格。 在`0, 0`
```
vbox.packStart(new Entry(), false, false, 0);
......@@ -498,7 +498,7 @@ public class GBoxes extends Window {
```
在我们的代码示例中,我们有一个垂直的基本框和另外三个水平的框。 我们有三个按钮。 我们将看到 expand 和 fill 参数的组合将如何影响布局。
在我们的代码示例中,我们有一个垂直的基本框和另外三个水平的框。 我们有三个按钮。 我们将看到`expand``fill`参数的组合将如何影响布局。
我们在垂直框内放置三个按钮。 `packStart()`方法的第一个参数是小部件,我们将其放入容器中。 第二个参数是扩展,第三个参数是填充,最后一个参数是填充。
......@@ -507,21 +507,21 @@ hbox1.packStart(button1, false, false, 0);
```
在这种情况下,expand 和 fill 均为假。 该按钮不会增长,并保持其初始位置。
在这种情况下,`expand``fill`均为假。 该按钮不会增长,并保持其初始位置。
```
hbox2.packStart(button2, true, false, 0);
```
在这里,expand 参数设置为 true。 此按钮窗口小部件将获得额外的空间,但窗口小部件不会增大或缩小。 因此,在我们的例子中,按钮将水平居中并保持其初始大小。
在这里,`expand`参数设置为`true`。 此按钮窗口小部件将获得额外的空间,但窗口小部件不会增大或缩小。 因此,在我们的例子中,按钮将水平居中并保持其初始大小。
```
hbox3.packStart(button3, true, true, 0);
```
最后,我们将两个参数都设置为 true。 这将导致按钮占用分配给它的所有水平空间。
最后,我们将两个参数都设置为`true`。 这将导致按钮占用分配给它的所有水平空间。
![Expand and fill parameters](img/7537ec4018529a63189369f18383de3a.jpg)
......
......@@ -282,7 +282,7 @@ align2.add(activate);
```
激活按钮的大小已调整为 80x30 像素。 它放置在`Alignment`小部件内,因此它不会缩小或增长。
激活按钮的大小已调整为`80x30`像素。 它放置在`Alignment`小部件内,因此它不会缩小或增长。
```
Button ok = new Button("OK");
......@@ -483,7 +483,7 @@ hbox1.packStart(combo1);
```
在第一行中,我们创建两个标签和两个组合框。 在上面的代码中,标签保留其位置和大小。 当我们调整窗口大小时,组合框会扩展和增长。 所有这些都由 expand 和 fill 参数控制。
在第一行中,我们创建两个标签和两个组合框。 在上面的代码中,标签保留其位置和大小。 当我们调整窗口大小时,组合框会扩展和增长。 所有这些都由`expand``fill`参数控制。
在第二行中,我们有两个框架。 每个框架都有两个复选框。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册