在玩游戏时,我很好奇我可以构建什么。 据我了解,大多数游戏引擎都是以C ++作为主要语言编写的。 对我来说,问题是我目前唯一知道的语言是Ruby(而且我只知道基本知识)。 事实证明,如果我想伸手去尝试游戏,这不是一个大问题。 实际上有一个叫做Gosu的东西,它是针对Ruby和C ++的2D游戏开发库。

在我们的课程中,我们可能希望游戏使用图像或字体进行初始化。 图像带有两个参数,即窗口(当前类)和路径。 字体有3个参数,分别是窗口,字体和想要字体的大小。
@background = Gosu::Image.new(self, 'path to image')
@font = Gosu::Font.new(self, "Futura", height / 20)
要显示图像和字体,我们需要显示图像并将其添加到draw方法中,该方法将使用X,Y和Z坐标作为参数。 看起来很奇怪,但是屏幕的左上角是0、0(X,Y)。 向右增加X,向下增加Y。
为了绘制字体,我们将创建一个包含5个参数的帮助方法:X和Y坐标,要显示的文本,要使用的字体和颜色。 我们将在@font变量的draw方法中调用此方法。
综上所述,我们得到以下内容(摘自Spencer Dixon的博客):
class Game < Gosu::Window
SCREEN_HEIGHT = 1000
SCREEN_WIDTH = 1000
def initialize
super(SCREEN_WIDTH, SCREEN_HEIGHT, false)
@background = Gosu::Image.new(self, 'img/background.png')
@large_font = Gosu::Font.new(self, "Futura", SCREEN_HEIGHT / 20)
end
# Mandatory methods in order for gosu to work (draw & update)
def draw
@background.draw(0,0,0)
draw_text(80, 170, "Player Choice", @large_font, 0xffffd700)
draw_text(650, 170, "Computer Choice", @large_font, 0xffffd700)
end
def update
# Automatically calling #button_up/button_down 60 frames per second
end
# Methods I created to help make the game
def draw_text(x, y, text, font, color)
font.draw(text, x, y, 3, 1, 1, color)
end
end
Game.new.show
由于没有经验,我不是最好继续解释这一点,但是基本思想是,您想为每个要拥有的资源创建一个类。 最后,您需要在运行游戏的文件中需要所有资源。 要对此进行更深入的阅读,请查看我的资料中的2个博客。 他们提供了更多有关添加声音和播放器输入等其他内容的详细信息。
查阅这些资料以获得更详细的解释。 我从他们那里得到了例子。
Gosu编程语言
类型推断使一切保持干净var aString =“ Hello Gosu!”
gosu-lang.github.io
https://www.spencerdixon.com/blog/gosu-tutorial.html
http://dreamingechoes.github.io/game/gosu/ruby/become-a-videogame-developer-master-with-gosu-and-ruby/