mieki256's diary



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

#1 [dxruby] DXRubyで一本道を延々と走る何かを書けないか実験

昔、PC-9801上で動いてた、夜の一本道を車で延々と走り続けるデモプログラムが好きだったのです。

アレを再現できんかなと。再現するためには、一本道を延々と生成する処理が必要だよなと。てなわけで、そのあたりをDXRubyを使って実験。

roadmake_rb_sshot_20160314.gif

どこまでも、いつまでも、走り続ける何かができたっぽい。後はコレを3Dにしていけば、それらしくなるかなと。

ソースや画像は以下。ライセンスは CC0 / Public Domain ってことで。

_一本道を延々と走り続ける何か、のDXRubyスクリプト。roadmake.rb

飛んだ先のページで、「Download ZIP」ボタンをクリックすれば、画像も含めて一式がダウンロードできまする。

仕組み。 :

一本道の道路は、角度を少しずつ変化させて、座標を配列に記録、みたいな感じで作ってたり。図を描いたほうが分かりやすいかな…。
roadmake_about.png

実際には、2点の座標と一緒にテクスチャ番号も記録してますが。

車を走らせたり、スクロールさせるために、道路の中央の線分情報が必要だけど。上図の、2点の座標の中点を求めれば、線分の一点が求められるので…。要するに、ポリゴンを作るための座標群さえ持ってればあとはどうとでもなるな、と。もちろん、線分情報だけ持っておいて、両脇の2点の座標をその都度算出する感じでもOKでしょうけど。

DXRuby には、 _Window.draw_morph という、4点を与えて四角形のテクスチャを変形描画できる機能があるので、ソレを使って道路の各片を描画してます。

#2 [dxruby] DXRubyでイージングの実験

イージング関数を書いて、思った通りに動くか実験。

easetest_rb_ss1.gif
_easetest.rb
大丈夫っぽい。それらしく動いてる。

今回は、特定の式しか使わないはずだからと関数を書いちゃったけど。DXRuby上で他にも色々とイージングを使いたいなら、DXRuby作者様が書いたモジュール(?)を使わせてもらったほうがいいのかも。ただ、以前試した時は Ruby 2.0以上じゃないと動かなかった記憶が。

_module Easing
_module Easing - mirichiの日記

#3 [dxruby] 角度を滑らかに変化させられるか実験

DXRubyを使って、角度を滑らかに変化させられるか実験。イージングを使ってガクッと切り替わらないようにできないかな、どうかな、と。

anglemove_rb_ss1.gif
_anglemove.rb
滑らかに変化してるように見える。大丈夫そう。

#4 [prog] Gistにアップロードしたソースをこの日記ページに埋め込んでみたり

ちゃんと表示できてるかな。どうかな。

今までは、自宅サーバにソースファイルをテキストファイルとしてアップロードして、リンクを張って、かつ、ページ内にコードをコピペして残してたけど。Gist を利用するのと比べて、どっちが楽なのだろう。ちょっと判断つかないな…。

考えてみたら、GistのソレはJavaScriptで埋め込まれてるから、検索サイトが中身を見てくれない、ような気もする。でも、Gistのページのほうを拾ってくれれば問題は無いのか…。と思ったけど GistページのURLって https だよな…。どうなるんだろ…。

Gistにアップロードすると、改行コードが LF になっちゃう点も、ちょっと気になった。*NIX は LF だろうけど、Windows、は基本的にCRLFなので…。まあ、改行コードが違っていても各スクリプトは動くだろうから問題ないのだろうけど。むしろ文字コードのほうが…。

以上、1 日分です。

過去ログ表示

Prev - 2016/03 - 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