mieki256's diary



2016/07/03() [n年前の日記]

#1 [dxruby] DXRubyのバージョンをアップグレードしたいのだけど

どうやればいいんだろう…。

「DXRuby って何?」 … Rubyというプログラミング言語からWindowsのDirectXを使えるようにする、ライブラリ? モジュール? パッケージ? …とにかくそういうアレです。

「DirectX って何?」 … Windows上でゲームを作りやすくするための機能、ですかね。画像を高速に描画できたり等、色々できます。

要するに、Ruby + DXRuby を使えば、Windows上で動く2Dゲームが作れるよ、ってことなんですが。

それはさておき。 DXRuby は gem も用意されてるから…gemで上書きインストールすればいいのだろうか。

「gem って何?」 …Rubyのライブラリをインターネット経由で簡単にインストールできる仕組み、とでも言えばいいのかな。例えば gem install dxruby と打つだけで、dxruby をインストールできちゃいます。

とりあえず、今まで入ってたバージョンを確認。
> ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.2"
irb(main):003:0> exit
手元の環境では、DXRuby 1.4.2 を今まで使ってたらしい。

ちなみに、irb --noreadline とオプションをつけてるのは、 _自分の環境では readline を無効にしないと irb が固まる からです。

gem で公開されてる DXRuby のバージョンを確認。
> gem search -r dxruby

*** REMOTE GEMS ***

dxruby (1.4.4, 1.4.0 mswin32)
dxruby_rp5 (0.0.4)
dxruby_sdl (0.0.14)
DXRuby 1.4.4 が登録されてるっぽい。

gem を使って上書きインストールしてみる。
> gem install dxruby

Fetching: dxruby-1.4.4.gem (100%)
Successfully installed dxruby-1.4.4
Parsing documentation for dxruby-1.4.4
Installing ri documentation for dxruby-1.4.4
Done installing documentation for dxruby after 1 seconds
1 gem installed

DXRubyのバージョンを確認してみる。
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.2"
irb(main):003:0> exit

アレレ? DXRuby は 1.4.2 のままだぞ…? どうなってるんだ?

インストールされてる gem の一覧を確認してみる。
> gem list

(中略)
dxruby (1.4.4)
(中略)
うむむ…。こっちは、DXRuby 1.4.4 が入ってるように見えるな…。

よくわからんので、gem版はアンインストール。
> gem uninstall dxruby
Successfully uninstalled dxruby-1.4.4

たしか以前は、 _ダウンロードファイル一覧 - DXRuby - OSDN から入手したファイルでインストールした記憶があるのだけど。コレをアンインストールしてから gem でインストールすればいいのかな。でも、アンインストールするには、どうしたら…。

install.rb を眺めてみた。
(中略)
require 'rbconfig'
require 'fileutils'
include RbConfig

if CONFIG["ruby_version"] != "2.2.0" then
  puts "このバイナリは2.2系じゃないと動かせません"
  exit
end

if CONFIG["arch"] =~ /64/ then
  puts "32bit版じゃないと動かせません"
  exit
end

FileUtils.mkdir_p(CONFIG["sitearchdir"])
file = CONFIG["sitearchdir"] + "/" + "dxruby.so"
FileUtils.install("dxruby.so" , file, :preserve => true)
file = CONFIG["sitearchdir"] + "/" + "dxrubyex.so"
FileUtils.install("dxrubyex.so" , file, :preserve => true)

puts "DXRubyのインストールに成功しました"
どうやら、CONFIG["sitearchdir"] で指定されたフォルダの中に、dxruby.so と dxrubyex.so をコピーしているらしい。

CONFIG["sitearchdir"] って、どこを指定しているんだろう?
> irb --noreadline
irb(main):001:0> require 'rbconfig'
=> false
irb(main):002:0> include RbConfig
=> Object
irb(main):003:0> CONFIG["sitearchdir"]
=> "C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/i386-msvcrt"
irb(main):004:0> exit
自分の環境の場合は、Ruby 2.2インストールフォルダ\lib\ruby\site_ruby\2.2.0\i386-msvcrt になってるらしい。覗いてみたら、たしかに dxruby.so と dxrubyex.so が入ってた。

この2つのファイルを削除すればアンインストールできる、ということかな…。削除してみるか…。

削除した状態で、require "dxruby" ができるか確認。
> irb --noreadline
irb(main):001:0> require "dxruby"
LoadError: cannot load such file -- dxruby
        from C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from (irb):1
        from C:/Ruby/Ruby22/bin/irb:11:in `<main>'
irb(main):002:0>
「dxruby なんて見つからねえよ!」と怒られた。さっきの2つのファイルを削除しただけで、アンインストールできたっぽい。

gem install dxruby でインストールし直してみる。
> gem install dxruby
Fetching: dxruby-1.4.4.gem (100%)
Successfully installed dxruby-1.4.4
Parsing documentation for dxruby-1.4.4
Installing ri documentation for dxruby-1.4.4
Done installing documentation for dxruby after 0 seconds
1 gem installed
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.4"
irb(main):003:0> exit

バージョンが 1.4.4になってる。DXRuby 1.4.4 にアップグレードできたっぽい。

しかしコレ、gem でインストールした場合は、dxruby.so はどこに入っているのだろう。

ファイル検索してみたら、Rubyインストールフォルダ\lib\ruby\gems\2.2.0\gems\dxruby-1.4.4\ に入ってた。

一応、 _Home - mirichi/dxruby-doc Wiki で公開されてるサンプルファイル群を動かしてみたけど。自分の環境、Core i5 2500 + GeForce GTX 750 Ti + Windows 10 x64 では動いてるように見える。

ただ、 _DXRuby1.4.4(´・ω・`) - mirichiの日記 によると、「Window.draw_box を使うと不正終了するから Window.draw_line で代替してくれ」と書いてあった。修正されるまで、ちょっと気を付けておかねば…。

以上です。

過去ログ表示

Prev - 2016/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project