プログラミングの「繰り返しの入れ子」「条件分岐」でMinecraftの世界を自由自在に変えちゃおうマイクラで始めるプログラミング入門(4)(2/2 ページ)

» 2016年02月22日 05時00分 公開
[薬師寺国安PROJECT KySS]
前のページへ 1|2       

「Scratch2MCPI」では基本的に、日本語の入力ができない

 「猫」に「Xが●●、Yは●●です。」と日本語で表示したいのだが、基本的に、「Scratch2MCPI」では日本語の入力ができない。有志がライブラリを作っていたので、それをインストールしてみたのだが、私の場合は、「Scratch2MCPI」が起動しなくなる不具合に見舞われ、直接日本語を入力することは諦めた。

 そこで、手間が掛かるがRaspbianの「テキストエディタ」で、表示したい文を書いて、「切り取り」して貼り付けている。貼り付ける場合は、貼り付けなどのメニューは出ないので「Ctrl」+「v」キーで貼り付ける必要がある。

「pollBlockHits」と「スライダーセンサーの値」でたたいたブロックの座標を取得できる

 どのブロックをたたいたかの情報は「制御」分類の命令の一つ「pollBlockHits」で取得できる。

 たたいたブロックのX座標は「blockEventX」で取得できる。Y座標は「blockEventY」、Z座標は「blockEventZ」で取得が可能だ。これらは「調べる」分類の「スライダーセンサーの値」に表示される。ただし、初期の状態では表示されない。これらを表示させるためには、「pollBlockHits」命令を実行する必要がある。

条件によって処理を変える「条件分岐」

 このように、任意のブロックをたたいて、その座標を取得できれば、この値を使って「条件分岐」もできるようになる。

 「条件分岐」とは、ある条件に合う場合は、処理Aを行い、条件に合わない場合は別の処理Bを行うということだ。動画2の中では簡単な「条件分岐」として、たたいたブロックのX座標「blockEventX」の値が4の場合は「猫」に「こんにちは」と言わせて、4ではない場合は、何も言わないとしている。

 この「条件分岐」もプログラミングでは、よく使うことである。「条件分岐」も先ほどの「繰り返し」と同じく、「入れ子」にできるし、さらに「条件分岐」や「繰り返し」を組み合わせることで、複雑なプログラムを作ることができる。いろいろ試してみてほしい。

【応用】壁を作って、たたいた位置にあるブロックを消したり変えたりするプログラミング

まずは自分で考えてやってみよう

 最後に、Minecraft Piの世界に、壁(ブロックの集まり)を作って、たたいた位置のブロックを消したり(図3)、たたいた位置のブロックを、他の種類のブロックに変更させる(図4)プログラミングを解説する。

図3 たたいた位置のブロックを消している
図4 たたいた位置のブロックの種類を他のブロックの種類に変更させている

 今までの動画の中で解説していた内容を理解していれば、きっと作ることができるプログラムだ。応用編として、まずは自分で試してみてほしい。

解答動画

 どうだろうか。答えは動画3で解説している。

動画3 壁を作成して、たたいた位置のブロックを消したり、他のブロックに変更する

 壁を作成するには、直接「ホットバー」からブロックを選択して、マウスの右クリックでブロックを積み上げて壁を作成することも可能だが、今回は、今までに学んできたプログラミングで壁を作成する方法を採用している。

 前回も解説したが、ブロックを消すのには、blockTypeIdに「0(空気)」を指定することで、ブロックを消すことができる。

 他のブロックに変更させるには、「演算」分類にある「1から10までの乱数」をblockTypeIdに適用して、ブロックの種類をランダムに変更して表示させる。

 乱数を指定する場合は、できるだけ連番の数値を指定した方がいいが、意外と途中で数値が抜けていて連番にならない。そういった場合は「1から5」までというように、短い数値を指定するといいだろう。短い間隔の数値の間では、同じブロックの出現率も高まるが、今回はプログラミングの学習であるため、乱数で同じ数値が表示されても問題ないだろう。ただ、乱数で存在しない値が出現した場合は、ブロックに変化はない。

次回は、立派な「マイクラ建築士」を目指して、さらに応用

 次回は、最終回。「Scratch2MCPI」からMinecraft Pi上に、さらにいろいろな形のブロックを作ってみる。

 また、「サンプルをアレンジしてみる」方法も解説する。この「Scratch2MCPI」には何点かのサンプルも付属している。その中から、面白いサンプルを紹介する。このサンプルを応用して、いろいろなブロックを作ってみよう。

 Minecraftの世界では、ブロックを複雑に積み上げることで、塔や壁だけではなく、「家」「店」などの複雑な建築物や「山」、さらにはそれらを組み合わせて「町」「風景」まで作ってしまう「マイクラ建築士」と呼ばれる人たちもいるのだ。

 プログラミングで立派なマイクラ建築士を目指すヒントを示すので、楽しみにしてほしい。

参考書籍

著者紹介

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。