Webプログラマの夏休み PHPでNゲージ模型を自由自在に動かそう[動画つき]

第5回 補講:ポイントと同時走行

この記事を読むのに必要な時間:およそ 2 分

レイアウトエディタでの入力

第3回でご紹介したシミュレータは,レール1の端とレール2の端が同じ座標の場合に,片方のレールの端まで車両が進むと,引き続きもう片方のレールで走行を続けるようになっています。レールどうしの角度などは関係ありません。そのため,今回のような交差するレールを,シミュレータに入力する場合は,注意が必要です。

まず,2本のレールが単に交差している場合,問題はありません。このシミュレータでは,レールが交差していても,相手のレールとの干渉はありません。

しかし,交差している点でレールをいったん切ってしまうと,この座標に4つのレールの端が重なっていることになり,シミュレータは次にどのレールに車両を進めればよいかわからなくなってしまいます。このような車両はエラー状態となり,画面左上に移動して表示されます(レイアウトエディタでは,この車両はレールに乗っていないため表示されず,保存すると取り除かれます⁠⁠。今回使用した交差/平行ポイントの場合,ちょうど交差しているところで配線が変わるため,この問題が発生します。

図3 交差レールの入力

図3 交差レールの入力

そこで,レールのつながっている先をシミュレータに明示するため,1箇所に4つのレールの端点を重ねるのではなく,少しずらした2箇所に,2つずつのレールの端点を重ねるようにします。こうすると,左上のレールの端点には右下のレールの端点だけが重なっており,右上のレールの端点には左下のレールの端点だけが重なっている形になるため,シミュレータは正しく車両を進めることができるようになります。

今回のシミュレータや関連ファイルは以下のリンクからダウンロードできます。

ニコニコ動画:https://www.nicovideo.jp/watch/sm8056558

おわりに

「PHPプログラマの夏休み」と題してお送りしてきたこの企画ですが,おかげさまで反響も多く,大変はげみになりました。この場をお借りして読者の皆様にお礼を申し上げます。

本連載はいったんここで終了いたしますが,リクエストなどがあればできるだけ対応させていただきたいと考えておます。ぜひコメントやメールなどでお寄せいただければと思います。

また逆に,読者の皆様の方で「こんなのをやってみた」といったものがあれば,ぜひコメント等でお知らせいただければ幸いに存じます。

ありがとうございました。

著者プロフィール

木元峰之(きもとみねゆき)

独立系ソフトハウスに8年間勤務,パッケージソフトの開発や記事執筆などを行う。現在はフリーのコンサルタント。SWESTなどのワークショップで分科会のコーディネータを務める。デジタル回路設計歴30年,プログラミング歴27年。

きもと特急電子設計
URL:http://business.pa-i.org/