2023/10/15(日) [n年前の日記]
#3 [ruby] Gosuのキーボード関連定数が少し変わっていた
Windows10 x64 22H2 + Ruby 2.6.10 x86 + Gosu 1.4.3 を使って、昔書いたサンプルを動かしていたら、警告が出ていることに気づいた。
「Gosu::KbEscape は廃止された」と出ている…。
そのあたりの変更内容についてググってみたけど全然出てこない。なんだか Google の検索精度がどんどん悪化してる気がする…。
それはさておき、何を代わりに使うことになったのやら。
>ruby 06_gosu_fps_test.rb 06_gosu_fps_test.rb:205: warning: constant Gosu::KbEscape is deprecated
「Gosu::KbEscape は廃止された」と出ている…。
そのあたりの変更内容についてググってみたけど全然出てこない。なんだか Google の検索精度がどんどん悪化してる気がする…。
それはさておき、何を代わりに使うことになったのやら。
◎ KbEscape は KB_ESCAPEになっていた :
_Module: Gosu - Documentation for gosu (1.4.6)
「KB_ESCAPE」という定数が目に入った。コレにしろということだろうか。
_Ruby Tutorial - gosu/gosu Wiki - GitHub
サンプルソースの中に Gosu::KB_ESCAPE という記述があった。やはりコレに変えないといかんらしい。
どの時点で変わったのか少し調べてみたけれど。
_Comparing v1.0.3...v1.0.4 - gosu/gosu-examples - GitHub
Gosu ではなくて、gosu-examples の変更点だけど、1.0.3 から 1.0.4 になる時に KbEscape から KB_ESCAPE に変更されてる。その時期より前にGosu側で変更されていたということだろうな…。2017年頃に修正されてるから、随分昔に仕様が変わっていたらしい。
_Gosu examples: available keys? - Issue #576 - gosu/gosu - GitHub
上記のやり取りによると、Gosu::KbSpace も Gosu::KB_SPACE になってる模様。
「KB_ESCAPE」という定数が目に入った。コレにしろということだろうか。
_Ruby Tutorial - gosu/gosu Wiki - GitHub
サンプルソースの中に Gosu::KB_ESCAPE という記述があった。やはりコレに変えないといかんらしい。
どの時点で変わったのか少し調べてみたけれど。
_Comparing v1.0.3...v1.0.4 - gosu/gosu-examples - GitHub
Gosu ではなくて、gosu-examples の変更点だけど、1.0.3 から 1.0.4 になる時に KbEscape から KB_ESCAPE に変更されてる。その時期より前にGosu側で変更されていたということだろうな…。2017年頃に修正されてるから、随分昔に仕様が変わっていたらしい。
_Gosu examples: available keys? - Issue #576 - gosu/gosu - GitHub
上記のやり取りによると、Gosu::KbSpace も Gosu::KB_SPACE になってる模様。
◎ 他の定義も無くなっていた :
別のスクリプトについても動作確認していたら、他にも定義が無くなっていたものが多数あった。
Gosu::KbLeft は Gosu::KB_LEFT に、Gosu::KbRight は Gosu::KB_RIGHT に、他もそんな感じで修正しないといかんようだなと…。要するに、Gosu::Kb* という記述があったら、Gosu::KB_* にして、かつ、KB_ 以降を大文字にしないといけない模様。
> ruby 07_input_test.rb 07_input_test.rb:43: warning: constant Gosu::KbLeft is deprecated 07_input_test.rb:43: warning: constant Gosu::GpLeft is deprecated 07_input_test.rb:48: warning: constant Gosu::KbRight is deprecated 07_input_test.rb:48: warning: constant Gosu::GpRight is deprecated 07_input_test.rb:53: warning: constant Gosu::KbUp is deprecated 07_input_test.rb:53: warning: constant Gosu::GpUp is deprecated 07_input_test.rb:58: warning: constant Gosu::KbDown is deprecated 07_input_test.rb:58: warning: constant Gosu::GpDown is deprecated 07_input_test.rb:63: warning: constant Gosu::KbZ is deprecated 07_input_test.rb:63: warning: constant Gosu::GpButton0 is deprecated
Gosu::KbLeft は Gosu::KB_LEFT に、Gosu::KbRight は Gosu::KB_RIGHT に、他もそんな感じで修正しないといかんようだなと…。要するに、Gosu::Kb* という記述があったら、Gosu::KB_* にして、かつ、KB_ 以降を大文字にしないといけない模様。
◎ 手元のスクリプトを修正 :
せっかくだから、GitHub にアップロードしてあった Gosu のサンプル群も修正しておいた。
_GitHub - mieki256/gosu_examples_mieki256: Ruby + Gosu examples by mieki256.
_GitHub - mieki256/gosu_examples_mieki256: Ruby + Gosu examples by mieki256.
[ ツッコむ ]
以上です。