Scene 8 ですが…遅いっ。
原因は Scene 2 と 同様で、水面の表現に利用している 64x64 個のグリッドの更新が重荷になって います。描画の部分に頂点配列(glVertexPointer/glDrawArrays)を利用するよ うに書き直してみたりもしたのですが、有意な差が見られるほどの改善には至 りませんでした。
移植の最中に思い出しましたが、Ruby では
!0 == false
なのでした。$ irb.bat irb(main):001:0> some_value = 0 => 0 irb(main):002:0> !some_value => false irb(main):003:0> some_value==0 => true irb(main):004:0>
C/C++ によくあるイディオムの移植には注意が必要ですね。
GL Excess / Ruby のページも更新。 Scene 8 をダウンロードできるようにしておきました:
未実装のシーンは 10 と 11。残りは 2 個となりました。
※ Scene 2 と 8 は動作が非常に遅くなってしまっています。 そこで glxsruby にもオリジナルと同様、更新のタイプステップを変更する機能が実装されています。 アプリケーション起動後に以下の操作を行ってください:
- 'a' を押すと @step += 1 (更新速度アップ)
- 'z' を押すと @step -= 1 (更新速度ダウン)
画面表示が遅い場合には、'a' をしばらく押しっぱなしにしておくと吉です。。