2016/03/14(月) [n年前の日記]
#1 [dxruby] DXRubyで一本道を延々と走る何かを書けないか実験
昔、PC-9801上で動いてた、夜の一本道を車で延々と走り続けるデモプログラムが好きだったのです。
アレを再現できんかなと。再現するためには、一本道を延々と生成する処理が必要だよなと。てなわけで、そのあたりをDXRubyを使って実験。
どこまでも、いつまでも、走り続ける何かができたっぽい。後はコレを3Dにしていけば、それらしくなるかなと。
ソースや画像は以下。ライセンスは CC0 / Public Domain ってことで。
_一本道を延々と走り続ける何か、のDXRubyスクリプト。roadmake.rb
飛んだ先のページで、「Download ZIP」ボタンをクリックすれば、画像も含めて一式がダウンロードできまする。
アレを再現できんかなと。再現するためには、一本道を延々と生成する処理が必要だよなと。てなわけで、そのあたりをDXRubyを使って実験。
どこまでも、いつまでも、走り続ける何かができたっぽい。後はコレを3Dにしていけば、それらしくなるかなと。
ソースや画像は以下。ライセンスは CC0 / Public Domain ってことで。
_一本道を延々と走り続ける何か、のDXRubyスクリプト。roadmake.rb
飛んだ先のページで、「Download ZIP」ボタンをクリックすれば、画像も含めて一式がダウンロードできまする。
◎ 仕組み。 :
一本道の道路は、角度を少しずつ変化させて、座標を配列に記録、みたいな感じで作ってたり。図を描いたほうが分かりやすいかな…。
実際には、2点の座標と一緒にテクスチャ番号も記録してますが。
車を走らせたり、スクロールさせるために、道路の中央の線分情報が必要だけど。上図の、2点の座標の中点を求めれば、線分の一点が求められるので…。要するに、ポリゴンを作るための座標群さえ持ってればあとはどうとでもなるな、と。もちろん、線分情報だけ持っておいて、両脇の2点の座標をその都度算出する感じでもOKでしょうけど。
DXRuby には、 _Window.draw_morph という、4点を与えて四角形のテクスチャを変形描画できる機能があるので、ソレを使って道路の各片を描画してます。
実際には、2点の座標と一緒にテクスチャ番号も記録してますが。
車を走らせたり、スクロールさせるために、道路の中央の線分情報が必要だけど。上図の、2点の座標の中点を求めれば、線分の一点が求められるので…。要するに、ポリゴンを作るための座標群さえ持ってればあとはどうとでもなるな、と。もちろん、線分情報だけ持っておいて、両脇の2点の座標をその都度算出する感じでもOKでしょうけど。
DXRuby には、 _Window.draw_morph という、4点を与えて四角形のテクスチャを変形描画できる機能があるので、ソレを使って道路の各片を描画してます。
[ ツッコむ ]
#2 [dxruby] DXRubyでイージングの実験
イージング関数を書いて、思った通りに動くか実験。
_easetest.rb
大丈夫っぽい。それらしく動いてる。
今回は、特定の式しか使わないはずだからと関数を書いちゃったけど。DXRuby上で他にも色々とイージングを使いたいなら、DXRuby作者様が書いたモジュール(?)を使わせてもらったほうがいいのかも。ただ、以前試した時は Ruby 2.0以上じゃないと動かなかった記憶が。
_module Easing
_module Easing - mirichiの日記
_easetest.rb
大丈夫っぽい。それらしく動いてる。
今回は、特定の式しか使わないはずだからと関数を書いちゃったけど。DXRuby上で他にも色々とイージングを使いたいなら、DXRuby作者様が書いたモジュール(?)を使わせてもらったほうがいいのかも。ただ、以前試した時は Ruby 2.0以上じゃないと動かなかった記憶が。
_module Easing
_module Easing - mirichiの日記
[ ツッコむ ]
#3 [dxruby] 角度を滑らかに変化させられるか実験
DXRubyを使って、角度を滑らかに変化させられるか実験。イージングを使ってガクッと切り替わらないようにできないかな、どうかな、と。
_anglemove.rb
滑らかに変化してるように見える。大丈夫そう。
_anglemove.rb
滑らかに変化してるように見える。大丈夫そう。
[ ツッコむ ]
#4 [prog] Gistにアップロードしたソースをこの日記ページに埋め込んでみたり
ちゃんと表示できてるかな。どうかな。
今までは、自宅サーバにソースファイルをテキストファイルとしてアップロードして、リンクを張って、かつ、ページ内にコードをコピペして残してたけど。Gist を利用するのと比べて、どっちが楽なのだろう。ちょっと判断つかないな…。
考えてみたら、GistのソレはJavaScriptで埋め込まれてるから、検索サイトが中身を見てくれない、ような気もする。でも、Gistのページのほうを拾ってくれれば問題は無いのか…。と思ったけど GistページのURLって https だよな…。どうなるんだろ…。
Gistにアップロードすると、改行コードが LF になっちゃう点も、ちょっと気になった。*NIX は LF だろうけど、Windows、は基本的にCRLFなので…。まあ、改行コードが違っていても各スクリプトは動くだろうから問題ないのだろうけど。むしろ文字コードのほうが…。
今までは、自宅サーバにソースファイルをテキストファイルとしてアップロードして、リンクを張って、かつ、ページ内にコードをコピペして残してたけど。Gist を利用するのと比べて、どっちが楽なのだろう。ちょっと判断つかないな…。
考えてみたら、GistのソレはJavaScriptで埋め込まれてるから、検索サイトが中身を見てくれない、ような気もする。でも、Gistのページのほうを拾ってくれれば問題は無いのか…。と思ったけど GistページのURLって https だよな…。どうなるんだろ…。
Gistにアップロードすると、改行コードが LF になっちゃう点も、ちょっと気になった。*NIX は LF だろうけど、Windows、は基本的にCRLFなので…。まあ、改行コードが違っていても各スクリプトは動くだろうから問題ないのだろうけど。むしろ文字コードのほうが…。
[ ツッコむ ]
以上、1 日分です。