Project1
标题: openrgss 无法启动 [打印本页]
作者: taroxd 时间: 2014-12-27 09:35
标题: openrgss 无法启动
openrgss 是 https://rpg.blue/thread-248776-1-1.html 这个东西
我安装以后,用如下代码测试
require 'openrgss'
loop { Graphics.update }
require 'openrgss'
loop { Graphics.update }
结果如下:- .../gems/openrgss-0.1.5/lib/openrgss/graphics.rb:30:in `update': undefined method `fill_rect' for nil:NilClass (NoMethodError)
复制代码 大概是 Graphics 的 entity 属性没有初始化的原因。
请问是我启动的方式不对吗?是否是需要调用一些初始化的方法?
[line]2[/line]
附:
Ruby/SDL 的安装应该没有问题,所有与 SDL 有关的库都已安装。
环境:Fedora 21 x86_64
顺便问一下,用 Ruby/SDL 制作的东西怎么打包?
作者: zeldafd 时间: 2014-12-27 10:56
本帖最后由 zeldafd 于 2014-12-27 11:16 编辑
說真...為什麼我沒看到@ENTITY有初始化過...
----------------------------UPDATE-----------------------------------------
def init
SDL.init SDL::INIT_EVERYTHING
Graphics.entity = SDL::Screen.open(Graphics.width, Graphics.height, 0, SDL::HWSURFACE|SDL::HWPALETTE)
SDL::Mixer.open(SDL::Mixer::DEFAULT_FREQUENCY, SDL::Mixer::DEFAULT_FORMAT, SDL::Mixer::DEFAULT_CHANNELS, 1536)
SDL::TTF.init
self.title = @title
end
在上面更新的話...
應該是SDL初始化錯誤, 等我再找找問題, 抱歉
----------------------------UPDATE-----------------------------------------
應該是因為你安裝的庫是64BIT,而OPENRGSS是WIN32應用, 所以應該要安裝WIN32版本的SDL庫
如果有SDL的錯誤日誌, 錯誤原因應該會是 No available video device.
希望幫到你吧
作者: taroxd 时间: 2014-12-27 12:42
zeldafd 发表于 2014-12-27 10:56 
說真...為什麼我沒看到@ENTITY有初始化過...
----------------------------UPDATE----------------------- ...
openrgss 不是纯 Ruby 实现的吗?和 64 位库有什么关系呢?
我按照 RGSS 模块的方法尝试了一下:
require 'openrgss'
include RGSS
RGSS.title = 'test'
rgss_main { loop { Graphics.update } }
require 'openrgss'
include RGSS
RGSS.title = 'test'
rgss_main { loop { Graphics.update } }
结果- undefined method `drawRect' for #<SDL::Screen:0x0000000295ea50> (NoMethodError)
复制代码 我怀疑,是不是我的 rubysdl 版本太新的原因?
毕竟 openrgss 是两年前的东西了。
作者: zeldafd 时间: 2014-12-27 13:10
taroxd 发表于 2014-12-27 12:42 
openrgss 不是纯 Ruby 实现的吗?和 64 位库有什么关系呢?
我按照 RGSS 模块的方法尝试了一下:
他的源碼引用了已安裝的SDL庫,實際上是使用本機的庫,可能是位元不同導致符號庫讀取不同,但我沒碰到這個問題。
所以所有推測也是從源碼和網上資料結合分析。
而你一開始那句RGSS.title實際已調用SDL方法,但那時SDL尚未初始化,因此亦會出錯。
在調用任何SDL類或方法必須於RGSS_main之後,因為在那時SDL才初始化。
參考網站:http://stackoverflow.com/questio ... ilable-video-device
作者: taroxd 时间: 2014-12-27 13:16
本帖最后由 taroxd 于 2014-12-27 13:18 编辑
zeldafd 发表于 2014-12-27 13:10 
他的源碼引用了已安裝的SDL庫,實際上是使用本機的庫,可能是位元不同導致符號庫讀取不同,但我沒碰到這 ...
如果不设置 title 的话,即:
require 'openrgss'
include RGSS
# RGSS.title = 'test'
rgss_main { loop { Graphics.update } }
require 'openrgss'
include RGSS
# RGSS.title = 'test'
rgss_main { loop { Graphics.update } }
结果就是- gems/openrgss-0.1.5/lib/openrgss/rgss.rb:30:in `setCaption': no implicit conversion of nil into String (TypeError)
复制代码 你没有碰到这个问题,那请问你启动的代码是什么呢?
这里不是想要用 openrgss 启动一个 RM 工程,而只是想要利用 openrgss 来执行这句代码 loop { Graphics.update } 而已。
另外,我确定我的 Ruby/SDL 可以正常工作。应该是 openrgss 使用方法上的问题。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |