提交 65093fe1 编写于 作者: W wizardforcel

2020-06-21 14:18:40

上级 f48bcda3
......@@ -10,7 +10,7 @@
## 刻录小部件
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero Burning ROM)中找到此小部件。
这是我们从头开始创建的小部件的示例。 可以在各种媒体刻录应用(例如 Nero 烧录 ROM)中找到此小部件。
`custom.vb`
......
# Nibbles
# 贪食蛇
> 原文: [http://zetcode.com/gui/vbgtk/nibbles/](http://zetcode.com/gui/vbgtk/nibbles/)
在 Visual Basic GTK# 编程教程的这一部分中,我们将创建 Nibbles 游戏克隆。
在 Visual Basic GTK# 编程教程的这一部分中,我们将创建贪食蛇游戏克隆。
Nibbles 是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
贪食蛇是较旧的经典视频游戏。 它最初是在 70 年代后期创建的。 后来它被带到 PC 上。 在这个游戏中,玩家控制蛇。 目的是尽可能多地吃苹果。 蛇每次吃一个苹果,它的身体就会长大。 蛇必须避开墙壁和自己的身体。
## 开发
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“ Game Over”消息。
蛇的每个关节的大小为 10px。 蛇由光标键控制。 最初,蛇具有三个关节。 游戏立即开始。 游戏结束后,我们在窗口中心显示“`Game Over`”消息。
`board.vb`
......@@ -378,7 +378,7 @@ Dim r As Integer = rand.Next(RAND_POS)
```
我们得到一个从 0 到 RAND_POS-1 的随机数。
我们得到一个从 0 到`RAND_POS-1`的随机数。
```
apple_x = r * DOT_SIZE
......@@ -387,7 +387,7 @@ apple_y = r * DOT_SIZE
```
这些行设置了 apple 对象的 x,y 坐标。
这些行设置了`apple`对象的 x,y 坐标。
```
If inGame
......@@ -407,7 +407,7 @@ End If
每 140 毫秒,将调用`OnTimer`方法。 如果我们参与了游戏,我们将调用三种构建游戏逻辑的方法。 否则,我们返回`False`,它将停止计时器事件。
Board 类的`OnKeyDown`方法中,我们确定按下的键。
`Board`类的`OnKeyDown`方法中,我们确定按下的键。
```
If key = Gdk.Key.Left AndAlso Not right
......@@ -418,7 +418,7 @@ End If
```
如果单击左光标键,则将`left`变量设置为 true。 在`Move`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
如果单击左光标键,则将`left`变量设置为`true`。 在`Move`方法中使用此变量来更改蛇对象的坐标。 还要注意,当蛇向右行驶时,我们不能立即向左转。
`nibbles.vb`
......@@ -503,4 +503,4 @@ vbnc -r:/usr/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
```
这是使用 GTK# 库和 Visual Basic 编程语言编写的 Nibbles 电脑游戏。
\ No newline at end of file
这是使用 GTK# 库和 Visual Basic 编程语言编写的贪食蛇电脑游戏。
\ No newline at end of file
......@@ -73,7 +73,7 @@ self.set_size_request(250, 150)
```
我们将窗口的大小设置为 250x150px
我们将窗口的大小设置为`250x150px`
```
self.set_position(gtk.WIN_POS_CENTER)
......
......@@ -110,7 +110,7 @@ fix.put(image1, 20, 20)
```
我们将第一个图像放置在 x = 20,y = 20 坐标处。
我们将第一个图像放置在`x = 20``y = 20`坐标处。
```
self.add(fix)
......@@ -310,7 +310,7 @@ table = gtk.Table(5, 4, True)
```
我们创建一个具有 5 行 4 列的表小部件。 第三个参数是齐次参数。 如果设置为 true,则表中的所有小部件都具有相同的大小。 所有窗口小部件的大小等于表容器中最大的窗口小部件。
我们创建一个具有 5 行 4 列的表小部件。 第三个参数是齐次参数。 如果设置为`true`,则表中的所有小部件都具有相同的大小。 所有窗口小部件的大小等于表容器中最大的窗口小部件。
```
table.attach(gtk.Button("Cls"), 0, 1, 0, 1)
......@@ -436,7 +436,7 @@ table.attach(halign, 0, 1, 0, 1, gtk.FILL,
```
这段代码创建了一个向左对齐的标签。 标签放置在 Table 容器的第一行中。
这段代码创建了一个向左对齐的标签。 标签放置在`Table`容器的第一行中。
```
wins = gtk.TextView()
......
......@@ -206,7 +206,7 @@ key, mod = gtk.accelerator_parse("<Control>N")
```
`gtk.accelerator_parse()`函数解析指定的加速器字符串,并返回一个 2 元组,其中包含与加速器相对应的 keyval 和修饰符掩码。
`gtk.accelerator_parse()`函数解析指定的加速器字符串,并返回一个 2 元组,其中包含与加速器相对应的键值和修饰符掩码。
```
newi.add_accelerator("activate", agr, key,
......
......@@ -15,9 +15,9 @@ handler_id = button.connect("clicked", self.on_clicked)
```
在这里,我们使用`GObject`类的`connect()`方法((`GtkButton``GObject`))将回调 on_clicked()连接到名为`clicked`的信号。
在这里,我们使用`GObject`类的`connect()`方法((`GtkButton``GObject`))将回调`on_clicked()`连接到名为`clicked`的信号。
`connect()`方法返回一个处理程序 ID,用于唯一标识回调方法。 该 id 可以与以下方法一起使用:
`connect()`方法返回一个处理程序 ID,用于唯一标识回调方法。 该 ID 可以与以下方法一起使用:
```
def disconnect(handler_id)
......@@ -42,7 +42,7 @@ def handler_unblock(handler_id)
信号和事件之间的唯一联系是信号用于从 X 服务器发送有关事件的通知。
信号是`gtk.Object`及其子类的功能,事件是 Gdk / Xlib 概念。
信号是`gtk.Object`及其子类的功能,事件是 Gdk/Xlib 概念。
## 简单的例子
......@@ -126,7 +126,7 @@ def on_clicked(self, widget):
```
这是`on_clicked()`方法。 它有两个参数。 widget 参数是触发该信号的对象。 在我们的例子中,它是退出按钮。 不同的对象发送不同的信号。 发送到方法的信号和参数可以在 PyGTK 库的参考手册中找到。 [pygtk.org/docs/pygtk/index.html](http://pygtk.org/docs/pygtk/index.html)
这是`on_clicked()`方法。 它有两个参数。 `widget`参数是触发该信号的对象。 在我们的例子中,它是退出按钮。 不同的对象发送不同的信号。 发送到方法的信号和参数可以在 PyGTK 库的参考手册中找到。 [pygtk.org/docs/pygtk/index.html](http://pygtk.org/docs/pygtk/index.html)
## 创建自定义信号
......@@ -245,7 +245,7 @@ gobject.type_register(Sender)
## 预定义的信号处理程序
PyGTK 中的对象可能具有预定义的信号处理程序。 这些处理程序以 do_ *开头。 例如`do_expose()``do_show()``do_clicked()`
PyGTK 中的对象可能具有预定义的信号处理程序。 这些处理程序以`do_*`开头。 例如`do_expose()``do_show()``do_clicked()`
`move.py`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册