设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2842|回复: 4
打印 上一主题 下一主题

[已经过期] openrgss 无法启动

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

跳转到指定楼层
1
发表于 2014-12-27 09:35:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
openrgss 是 https://rpg.blue/thread-248776-1-1.html 这个东西

我安装以后,用如下代码测试
RUBY 代码复制
  1. require 'openrgss'
  2.  
  3. loop { Graphics.update }


结果如下:
  1. .../gems/openrgss-0.1.5/lib/openrgss/graphics.rb:30:in `update': undefined method `fill_rect' for nil:NilClass (NoMethodError)
复制代码
大概是 Graphics 的 entity 属性没有初始化的原因。

请问是我启动的方式不对吗?是否是需要调用一些初始化的方法?



附:

Ruby/SDL 的安装应该没有问题,所有与 SDL 有关的库都已安装。

环境:Fedora 21 x86_64

顺便问一下,用 Ruby/SDL 制作的东西怎么打包?

点评

應該是因為你安裝的庫是64BIT,而OPENRGSS是32BIT應用, 所以應該要安裝32BIT的SDL庫 如果有SDL的錯誤日誌, 錯誤原因應該會是 No available video device. 希望幫到你.   发表于 2014-12-27 11:17

Lv1.梦旅人

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
帖子
941
2
发表于 2014-12-27 10:56:28 | 只看该作者
本帖最后由 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.

希望幫到你吧

点评

找到了, 我再找找是什麼問題  发表于 2014-12-27 11:09
所以初始化在哪里呢……  发表于 2014-12-27 11:09

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
 楼主| 发表于 2014-12-27 12:42:21 | 只看该作者
zeldafd 发表于 2014-12-27 10:56
說真...為什麼我沒看到@ENTITY有初始化過...

----------------------------UPDATE----------------------- ...


openrgss 不是纯 Ruby 实现的吗?和 64 位库有什么关系呢?

我按照 RGSS 模块的方法尝试了一下:

RUBY 代码复制
  1. require 'openrgss'
  2.  
  3. include RGSS
  4.  
  5. RGSS.title = 'test'
  6.  
  7. rgss_main { loop { Graphics.update } }


结果
  1. undefined method `drawRect' for #<SDL::Screen:0x0000000295ea50> (NoMethodError)
复制代码
我怀疑,是不是我的 rubysdl 版本太新的原因?
毕竟 openrgss 是两年前的东西了。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
704 小时
注册时间
2011-12-27
帖子
941
4
发表于 2014-12-27 13:10:17 | 只看该作者
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
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
 楼主| 发表于 2014-12-27 13:16:31 | 只看该作者
本帖最后由 taroxd 于 2014-12-27 13:18 编辑
zeldafd 发表于 2014-12-27 13:10
他的源碼引用了已安裝的SDL庫,實際上是使用本機的庫,可能是位元不同導致符號庫讀取不同,但我沒碰到這 ...


如果不设置 title 的话,即:
RUBY 代码复制
  1. require 'openrgss'
  2.  
  3. include RGSS
  4.  
  5. # RGSS.title = 'test'
  6.  
  7. rgss_main { loop { Graphics.update } }


结果就是
  1. 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 使用方法上的问题。

点评

有些東西我是搞錯了,他是的確只用RUBYSDLl。 不過我之前是用那個RPG Maker的檔案。但我的新電腦沒安裝這個。 加上我現在還不在家,要晚一點才可以回   发表于 2014-12-27 15:22
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-19 10:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表