最終更新: harinezumi 2015年09月05日(土) 22:30:19履歴
コンピューターの位置(座標)を取得するAPIです。
内部的にはRednet APIを利用して他の複数のGPSホストとの距離を取得し、三辺測量を利用して現在位置を算出します。
これは現実のGPSと基本的に同じ原理であり、利用するには現実のGPS衛星に相当するGPSホストを用意しなければなりません。
内部的にはRednet APIを利用して他の複数のGPSホストとの距離を取得し、三辺測量を利用して現在位置を算出します。
これは現実のGPSと基本的に同じ原理であり、利用するには現実のGPS衛星に相当するGPSホストを用意しなければなりません。
メソッド名 | 戻り値 | 概要 |
---|---|---|
gps.locate( Number タイムアウト , Boolean デバッグ ) | { Number X座標, Number Y座標, Number X座標} / nil | GPSを利用して座標を返します。タイムアウトが設定されている場合、指定時間(省略時2秒)内にGPSホストからの応答がない場合失敗扱いしてnilを返します。デバッグをtrueにした場合、デバッグログを出力します。 |
この機能を使うためには、最低4個のホストが必要となります。
- ワイヤレスモデムの機能を利用して測量するため、GPSホストはできるだけ高い位置に接地した方がより広い範囲で利用できます。
- 4個のうち3個は同一直線上に並んでいてはいけません。また、4個目は前3つと同一平面上に存在してはいけません。
- GPSホストは"gps host"のコマンドを実行するようにしなければなりません。通常ユーザーが停止しなければこのコマンドは終了しませんが、ComputerCraftの特性としてマップの再読み込みやチャンクのアンロードで停止してしまうので何かしらの対策が必要です。
例:コンピューターのrootフォルダにstartupというファイルを作るか、"/rom/autorun"ディレクトリ内に適当な名前のファイルを作り、
shell.run("gps", "host", x座標, y座標, z座標)と記載しておくとコンピューターが何かしらの要因により再起動した場合もGPSホストが自動で起動します。
コメントをかく