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点を与えて四角形のテクスチャを変形描画できる機能があるので、ソレを使って道路の各片を描画してます。
[ ツッコむ ]
以上です。