Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
82a723e8
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
9 个月 前同步成功
通知
2
Star
157
Fork
40
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zetcode-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
82a723e8
编写于
6月 21, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-21 11:09:16
上级
086cbc8b
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
22 addition
and
22 deletion
+22
-22
docs/gui/191.md
docs/gui/191.md
+3
-3
docs/gui/192.md
docs/gui/192.md
+1
-1
docs/gui/193.md
docs/gui/193.md
+7
-7
docs/gui/195.md
docs/gui/195.md
+1
-1
docs/gui/196.md
docs/gui/196.md
+1
-1
docs/gui/197.md
docs/gui/197.md
+7
-7
docs/gui/198.md
docs/gui/198.md
+2
-2
未找到文件。
docs/gui/191.md
浏览文件 @
82a723e8
...
...
@@ -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)
...
...
docs/gui/192.md
浏览文件 @
82a723e8
...
...
@@ -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`
类提供了在表单上绘图的方法。
## 直线
...
...
docs/gui/193.md
浏览文件 @
82a723e8
# 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
docs/gui/195.md
浏览文件 @
82a723e8
...
...
@@ -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`
进行了变通。
...
...
docs/gui/196.md
浏览文件 @
82a723e8
...
...
@@ -222,7 +222,7 @@ try {
```
我们从磁盘上的文件加载
pixbuf
。
我们从磁盘上的文件加载
`pixbuf`
。
```
setIcon(icon);
...
...
docs/gui/197.md
浏览文件 @
82a723e8
...
...
@@ -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
)
...
...
docs/gui/198.md
浏览文件 @
82a723e8
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录