Minecraftとタートルと僕スマートフォン用の表示で見るMinecraftとタートルと僕PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。こちらのページは更新が滞っており、情報が古くなりつつあります。新しいCC情報サイトをはじめましたので、もしよければご参照ください。今後ともよろしくお願い申し上げます。Minecraftはじめに前回は無線通信システムについて概要を説明しました。APIを紹介しつつ、実際に動かしてみましょう。Modemの装着方向を確認します。その方向を引数にrednet.open()関数を実行することで、周辺機器を使用可能な状態にします。イメージとしては、チャンネル回線を開く準備をしていると思えばよいでしょう。メッセージを送信する側も受信する側も、必ず最初に使用準備をしてください。モデムは、タートルならば右側に装着されていますし、コンピュータならば任意の方向に装着することができます。装着された周辺機器の方向を考えるとき、コンピュータ(画像中で黄色)ならば、プレイヤーとコンピュータ画面が向かい合った状態でプレイヤーから見た方向を考えます。画像中でモデムが装着されているのはプレイヤーから見て右側なので、rightです。それに対してタートル(画面中で赤)では、タートルから見た方向を考えます。画像ではタートルの右手側にモデムが装着されているので、こちらもrightと指定します。コンピュータ(タートル)を設置したときに、そのまま素直にプレイヤーから見てどちら側かで判断しても良いかもしれません。メッセージを送信するrednet.send()関数によって、指定したチャンネルに「文字列」を送信します。送信先コンピュータIDをあらかじめ調べておき、そのIDと同じチャンネルIDを使ってください。ID2のコンピュータにメッセージを送信したいのならば、チャンネル2を使います。メッセージ文字列)メッセージ送信に成功したらこの関数はtrueを返す。注意したいのは、「送信」に成功であって、相手が「受信したかどうか」は保証されない。自分のIDのチャンネルを監視しつつ待機。メッセージ文字列が流れてきたら受信する。BROADCAST(同時通信)用のチャンネルである65535に流れてきたメッセージも受け取ることができます。この関数は受信チャンネルを選ぶことはできません。自分IDのチャンネルとBROADCASTチャンネルのみです。rednet.receive(待ち時間)引数で指定した待ち時間(秒)だけ自分ID(とBROADCAST用)のチャンネルを監視しつつ待機。待ち時間を省略したらメッセージが流れてくるまで永遠に待ち続ける。自分と送信者間の距離(数値)サンプルプログラムとてもシンプルなプログラムなので、実際に試してみると理解しやすいです。これくらいのコード量ならターミナル画面でeditコマンドを使って入力してもそれほど手間ではないですよね。以下のプログラムは、(1)受信側プログラム(=受信待機)、(2)送信側プログラム(=メッセージ送信)の順に実行してください。順番を間違えないように。受信者側のIDを調べておくのを忘れないでください。WirelessModemの装着方向と合わせて、自分の環境によってプログラムを書き換えてください。コンピュータ・タートルのIDを調べるには、ターミナル画面でidコマンドを使いましょう。(受信側であるタートルのIDは21でした。(←こちらから先に実行)(1)右側に装着されたモデムの使用準備。(2)自分のIDのチャンネルでメッセージ待ちうけ。(3)メッセージを受信したら画面に表示。ID',senderID)ポイントは、rednet.receive()からの返ってくる3つの返値をそれぞれ変数に代入しているところです(ちなみに、このように一度に複数の変数へ代入することを多重代入と呼びます)。メッセージを画面表示するときに、誰から送られてきたメッセージなのか、そのIDも同時に表示します。(←次にこちら)(1)右側に装着されたモデムの使用準備。(2)チャンネルID21を使って「hello」というメッセージを送信。順にプログラムを動かして、最終的に受信側のコンピュータのターミナル画面に、"hello"が表示されていたら成功です。この画像では、ID20から「hello」というメッセージが送られてきたということがわかりますね。次回は、このメッセージ送信プログラムをもうすこし使いやすくします。何度でもメッセージを受け取ることができるように、受信側はメッセージを受信したらまたチャンネル監視モードに入るようループさせる送信側はプログラム実行時の引数で任意の文字列を送れるようにする。受信側を2台にして、送信側がBROADCAST(一斉通信)チャンネルにメッセージを送信したらどうなるか。―RednetAPIの解説Tweet関連記事2014-03-22ComputerCraft1.6pr7のChangeLogの試訳CC1.6pr7まで来ています。はてなブログPro「Minecraft」「ComputerCraft」について知りたいならば「お勧めコンテンツ」の『ComputerCraftとは』をご覧下さい。