使用Ruby2D开发贪吃蛇游戏无输出+gem安装权限错误问题求助
Ruby2D贪吃蛇开发问题解决方案
1. gem安装权限报错修复
该报错是因为你使用了系统自带的Ruby环境,全局gem目录默认仅root用户有写入权限,不建议直接修改系统目录权限,可选择以下方案:
- 用户级安装:执行
gem install ruby2d --user-install,将gem安装到当前用户目录下,后续需将用户gem的可执行文件目录(一般为~/.gem/ruby/2.6.0/bin)添加到系统PATH环境变量中即可正常调用。 - Ruby版本管理工具安装:长期做Ruby开发推荐使用rbenv或rvm安装独立的用户级Ruby环境,后续安装所有gem都不会触发权限问题。
- 临时解决方案(不推荐):直接加sudo执行安装
sudo gem install ruby2d,该操作会修改系统Ruby的依赖库,可能引发后续版本冲突。
2. 代码运行无窗口问题修复
你的代码存在核心语法错误:Ruby类的实例构造方法固定为initialize,你自定义的init方法不会在调用Snake.new时自动执行,导致@positions实例变量未初始化,调用draw方法时程序会抛出空指针异常直接退出,自然不会弹出窗口。
修正后的完整代码如下:
require 'ruby2d' set background: 'navy' GRID_SIZE = 20 class Snake # 将原init方法替换为initialize构造方法 def initialize @positions = [[2,0], [2,1], [2,2], [2,3]] end def draw @positions.each do |position| Square.new(x:position[0] * GRID_SIZE, y: position[1] * GRID_SIZE, size: GRID_SIZE, color: 'white') end end end snake = Snake.new snake.draw show
修正完成后,确保ruby2d依赖安装成功,再执行代码即可弹出深蓝色背景窗口,显示初始的白色蛇身。
内容的提问来源于stack exchange,提问作者mattprowlinson
相关产品推荐
相关产品推荐

