Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

こちらのページは更新が滞っており、情報が古くなりつつあります。新しいCC情報サイトをはじめましたので、もしよければご参照ください。今後ともよろしくお願い申し上げます。

「百億のマインクラフトと千億のタートル」(https://hevo2.hatenablog.com/)

ComputerCraft

ComputerCraft1.6の更新内容(予定)をまとめてみた

CC1.6の更新内容 CC公式ページにあるCC1.6更新内容をまとめてみました。 公式ページに更新項目を挙げてあるのですが、その内容の説明がTwitterでのやり取りや画像だけなのでかなり断片的です。 僕の解釈と推測が多く混じっていますので、完全には信じないよ…

環境構築(4)-pastebinコマンドでCC用Luaプログラムをインストール

最近、マニアックな方向に走りすぎている気がしてきたので、 初心に戻って初心者向けチュートリアルを強化。 はじめに ネット上で公開されているComputerCraft用のLuaプログラムを、手軽にインストールする方法を紹介します。今回は、一度事前準備さえしてお…

APIを作ろう(4)-h2peripheral API の実装を解説

はじめに h2peripheral API 詳細 - Minecraftとタートルと僕 で挙げた「h2peripheral API」を実装したので、そのソースコードを公開し内容を簡単に説明します。解説なんていらない、ただインストールだけしたい、ということであれば以下のようにpastebinコマ…

h2peripheral API version0.1 詳細

(このページは、h2peripheral APIについて情報をまとめるページです。このページは随時更新します) 本APIの概要 このAPIは、周辺機器を取り扱う標準のPeripheral APIを拡張するものです。 以下の関数があります。 wrapByName(<機器種別>) 隣接している全…

ニコ動 兎と亀29の感想

CC関連動画の感想 そういえば、兎と亀29の感想書いてませんでした。このシリーズの大ファンなんですよね。 タートル=Mのイメージはこの動画で植えつけられました。ブヒッ。実際に観たのは先週でして、感想はそのときのメモから書き起こしました。 無駄にテ…

APIを作ろう(3)-Colors API を調べてコツをつかもう

はじめに 前回は失礼しました。それでは新しいAPIを実装するために、既存のAPIを調べてみましょう。「Craft OS」「Turtle OS」が提供しているAPIをいろいろ覗いてみたのですが、 小さくてシンプルという点でColors APIが参考になりそうです。今回はこのColor…

APIを作ろう(2)-初心者でも簡単に作れるAPI

はじめに それでは、APIを作ってみましょう。 コツをつかめば誰でも簡単に作れます。 APIに名前をつける ネーミングは、非常に重要です。 これをおろそかにすると使いづらくて仕方ありません。 働きを名前から想像できるように自然な名前をつけましょう。 僕…

APIを自作しよう(1) -APIとはなにか

これから、新しい連載をはじめるよ!! はじめに この連載では、以下の内容を解説する予定です。 APIとは何か。 まずはシンプルなAPIを作ってみよう(別名、初心者でもできるAPI作成) 既存のCCコンピュータAPIを見て、コツを学ぼう 色々なAPIを作ってみよう…

ComputerCraft環境構築(3)-プログラムを自動実行させる2つの方法

プログラムの自動実行について CCコンピュータおよびタートルは、再設置することで再起動(リブート)できます。あるいはターミナル画面を表示しているときに、「CTRL+R」キーを数秒間押しっぱなしにすることでも再起動できます。お手製のプログラムを実行す…

「Too long without yielding」エラー発生までの時間を検証

発端 ご飯食べながらボーっとCC公式Wiki読んでいたら次のような記述をみつけました。 http://computercraft.info/wiki/OS_(API) os.pullEvent()の説明にて Note that if a program has not attempted to pull an event in the past ten seconds, it will be …

Minecraft1.6.4とComputerCraftインストールの手順(2)

はじめに 今回は以下の内容をお送りする予定です。 Minecraft1.6.4のインストール方法 ←前回説明しました Forgeのインストール ←前回説明しました ComputerCraftのインストール ←今回 ComputerCraft環境整備 ←今回 用意するもの 前回用意したMinecraft1.6.4…

Turtles came to my house!!

昨年、Shapewaysで注文した3Dプリントタートルが届いてました。送り主の住所はEINDHOVENとあります……オランダですか!手触りはざらざらしていて少しだけ粉吹いているので、出来立てを包装したのでしょうね。 ヤスリ掛けすると良いのかな?

sleep実装からイベントを学ぶ(12)―ラジコンプログラム(2)

はじめに(動画を見て、来てくださった方へ) 上記の動画について、ラジコンプログラムの導入方法を知りたい方は2014/01/11の記事をどうぞ。 今回の記事はラジコンプログラムを解説していますが、完全な初心者には難しい内容となっています。しかし、CCの初…

sleep実装からイベントを学ぶ(11)―ラジコンプログラム(1)

はじめに 上記の動画についての概略を知りたい方は2014/01/11の記事をどうぞ。このラジコンプログラムを理解するために、今回は、前提知識であるCC無線通信を学びましょう。 無線通信について詳細な情報は全てCC非公式Wikiに書いてあります。詳しくはそちら…

タートルラジコンプログラム 紹介動画

動画撮影&ニコニコ動画に投稿してみた はじめての動画投稿、ドキドキしますね。 ほぼテスト動画なので、動画自体についてのご批判はご容赦ください。【Minecraft】 ComputerCraft ラジコンプログラム 動画の内容 先日解説した「モニタボタンによるタートル…

【補足2】既存の関数を上書きして拡張しよう

はじめに (※今回の内容は、Luaの「無名関数」についての理解が不十分だと意味不明な可能性があります。 前回の記事とセットでご利用ください)さて、前回、 「既存の関数に不満があったら書き換えちゃおうぜ!!」などとまとめましたが、 僕個人としては、T…

【補足】Luaの型は色々あるけれど関数型って特殊なんです

はじめに 今回はLuaというプログラム言語について詳しくお話しましょう。 例によって長いので、結論だけ知りたい人、特にCのポインタを理解できている人なら、最後のまとめだけ見たらOKですよ。 Luaが扱う値のタイプ Luaでは様々な値を扱いますが、その値に…

sleep実装からイベントを学ぶ(10)-モニタボタンでタートルを操作する

はじめに 今回は、モニタボタンを使ってタートルを直接操作するプログラムを紹介します。前回の最後に予想したとおり、前回のプログラムよりかなり短いですよ今回は。機能的にも前回のプログラムの一部分を使っているだけなので、前回よりも理解しやすいプロ…

sleep実装からイベントを学ぶ(9)-モニタボタンでプログラムを操作する

はじめに 今回は以下のようなプログラムを紹介します。 「モニタボタンによる画面表示操作」プログラムの仕様 コンピュータに隣接した巨大モニタを表示専用モニタとする。 表示専用モニタの中央にキャラクタ「@」を表示する。 また同時にモニタの一番上に、…

sleep実装からイベントを学ぶ(8)-インタラクティブなプログラムを作る

はじめに さて、イベントに関する連載もそろそろ大詰めです。 これまで学んだ内容をフルに使って、いろいろと操作ができる、インタラクティブなプログラムを作ってみましょう。これまで紹介したプログラムは、ターミナル画面上でマウスをクリックしたり、キ…

Minecraft 1.6.4 はじめました

これまではMinecraft1.5.2およびComputerCraft1.53で環境を作っていたのですが、 シルクタッチ採掘タートル使いたい! CC1.53での設定や環境について語っても時代遅れで需要ないんじゃ CC1.56以降ならタートルがエラーメッセージ吐いてくれるのでもっと面白…

sleep実装からイベントを学ぶ(7)-Too long without yieldingエラーの解決方法2

エラーを避けるまた別の方法 前回の記事で、「Too long without yielding」を避けるために定期的に「sleep」を入れようというお話をしました。しかし実は、これ以外にもエラーを避ける方法があります。 (これに気づいたのはつい最近なんですよね。これを踏…

sleep実装からイベントを学ぶ(6)-Too long without yieldingエラーの解決方法

はじめに CCプログラムを書いていると、必ず一度は出会う 「Too long without yielding」エラーこれを解決するために一般的に言われるのが、「sleep()を入れろ」なぜ? sleep入れたらプログラムの実行が遅くなるじゃない。 ただでさえプログラム実行という重…

sleep実装からイベントを学ぶ(補足)―ローカル変数・グローバル変数

【補足】変数名の先頭についている local ってなに? そういえば、これまで何度も使っているのに説明をしていませんでした。 良い機会ですのでLuaにおける変数の取り扱いについて説明しましょう。まず、最初に重要な項目だけ先に提示します。 他のプログラム…

sleep実装からイベントを学ぶ(5)―タイマーイベントとは

タイマーイベントってなに? 一言で言うならば、「時限発火式のイベント」です。これだけじゃあんまりなのでもう少し詳しく説明すると、 あらかじめ時間(秒)を指定してタイマーをスタートしておく。その時間が経過することで発生するのがタイマーイベント…

sleep実装からイベントを学ぶ(4)―メニュー画面を作る

ひゃっはー! ようやく仕事納めだ。年末進行やっとおわた。 更新するぜ。ちょー更新するぜ。 前回の課題について 前回出した課題は、以下のようなメニュー画面を作ることでした。 解答例 解答例は以下のとおり。 前回の「@」キャラクター移動プログラムを素直…

Christmas version CC Elf!?

イブですねぇ 名前を見たら、Turtleじゃなくて、Elfになってましたw タートルの外見が変わるのは知っていましたが、バニラのチェストまで変わるんですね。

sleep実装からイベントを学ぶ(3)―Keyイベントを使いこなす

keyイベントを使いこなす 前回予告した通り、矢印キーを使った操作についてサンプルプログラムを示しましょう。 画面出力についての注意 この手の画面描画系プログラムでは、画面ちらつき防止のためにダブルバッファリングという手法を使うのが一般的です。 …

sleep実装からイベントを学ぶ(2)―イベントとは

イベントは裏で(ひっそりと)起きているんだ! タートル君が活動しているときに、僕たちが何かの働きかけを行うと、 タートル君の裏でイベント(Event)が発生します。たとえば、自動クラフトプログラムが動いているときに、 マウスでタートルの画面をクリ…

3D Printed Turtles!

シルクタッチタートルだと!? 「ローキ資料館」経由で、タートル追加Modについて知る。 トピック - [1.6.4/1.6.2] More Turtles 【ComputerCraftアドオン/竹,豆腐連携】 • Minecraft 非公式日本ユーザーフォーラム 周辺機器を装着して、peripheral.wrap()す…