集中企画

暮井慧といっしょ♪ 夏休みプログラミング! 第3回

「TouchDevelop」でどこでもWindows Phoneアプリ開発!

(12/08/23)

 こんにちは~! 今日は、Windows Phoneのアプリを開発できる「TouchDevelop」を使うよ。Windows Phoneが必要になるんだけど、窓の杜を見てるみんなは、もちろんWindows Phone持ってるよねー。もし持ってなくても、結構おもしろいアプリだから何かの参考にしてみてね。

MEMO著者プロフィール

暮井 慧(くれい けい) 17歳 都内の公立高校に通う女子高生。部活は、情報処理研究会。身体を動かすのも好きで、気が向いたときはなぜか体育会系の部活に混ぜてもらっていろんなスポーツをすることも。
「みんな、お盆休みはどうだった? 実家に帰ったりしたのかな~。私もおばあちゃんちに行ってたよ。ほんとこの時期は、道路も公共交通機関も人でいっぱいで、長時間移動はつらいよね。でもそんな長時間移動でもモバイルバッテリーがあればスマホも安心! ……なんだけど、田舎だと電波の方がなかったよ……。」

Twitter:@pronama

TouchDevelopって?

 TouchDevelopは、Windows Phoneのアプリが作れるWindows Phoneのアプリなんだ! アプリの開発がWindows Phoneだけでできるってことは、言い換えるとタッチ操作だけでプログラミングできるってこと。これ、結構すごいと思わない? どこでもプログラミングできちゃうね♪ ベッドに寝転がってプログラミングとか、お風呂でプログラミングとか、夢がひろがるよ!

 TouchDevelopは、初心者でも簡単にプログラミングできるよう作られてるから、今までプログラミングしたことなかった人もチャレンジしてみてね。簡単なツールやゲーム作りに向いてるよ。これまでアプリ開発している人もWindows Phone上の開発環境に興味あるよね? というわけで、一緒にはじめてみよっか!

TouchDevelopの特徴

 私がピックアップしたTouchDevelopの特徴を紹介していくね。

 まず、ひとつめ。TouchDevelopは、プログラミング言語の要素があるの。タッチ操作に適した特別な言語だよ。カメラやGPSとか、電話の機能、Windows Phone特有のタイルなんかも簡単に操作できるようになってて、たとえば、電話をかけるコードは次のように書くよ。あと、TouchDevelopでは、アプリとして動作するコードのカタマリを、script(スクリプト)って呼ぶから覚えてて!


 次、ふたつめ。TouchDevelopは、コードを書くための開発環境でもあるの。たいていのプログラミング言語だと、テキストエディターなんかでコーディングすると思うけど、TouchDevelopは、タップやスワイプ操作でコードが書けるように工夫されたユーザーインターフェイスが用意されてるよ。コードの入力は、横のスクリーンショットのようにボタンをタップして行うの。どう? 見た感じなんかカッコ良くない? ちなみに、ボタンは状況にあわせて必要なものが出てくるから手間が少ないんだよね。


 みっつめ。TouchDevelopで作ったスクリプトは、TouchDevelopで動かすの。つまり、アプリの実行環境でもあるんだよ。スクリプトを作って、すぐに実行して動作を確認できるよ。あ、今「TouchDevelopで作ったアプリは、TouchDevelopでしか動かせないの?」って思った? 基本はそうなんだけど、普通のWindows PhoneアプリとしてMarketplaceに公開する方法も用意されてるから安心して。詳しくは後でね。


 TouchDevelopは、Webサービスにつながってて、作ったスクリプトを簡単に公開や共有もできるんだよ。これを、Bazaar(バザー)って呼んでるよ。Windows PhoneのMarketplaceみたいな機能だね。

 スクリプトを公開するのに、Marketplaceのように審査はなくて、すぐに公開・共有できるの。スクリプトごとアップロードするから、友だちが作ったスクリプトを改造して、新しいスクリプトとして公開もできるし、バザーには、コメント機能やゲームのランキング機能なんかも用意されてるんだ。


 TouchDevelopの特徴は、ざっとこんなところだね。次は実際に使ってみようか!

MEMOTouchDevelop

 TouchDevelopは、Microsoft Researchっていうマイクロソフトの研究部門が開発しているの。2011年から開発・公開されていて、私がこれを書いているときのバージョンは2.9だよ。活発にアップグレードされていて、次の2.10では「code synthesis」っていうユーザーが入力したキーワードからコードを生成する機能がつくみたいだよ!

 教育目的の利用も想定されていて、米国の話だけど、実際に学校で使ったり、プログラミングに興味のある女性をターゲットとしたイベントで使われていたりするよ。あと、先生向けの資料や、研究部門っぽく論文チックな資料もあるから興味ある人はこっちもチェックするといいかもね。

TouchDevelop - Microsoft Research
http://research.microsoft.com/en-us/projects/touchdevelop/
TouchDevelop - create apps on your phone
https://www.touchdevelop.com/
TouchDevelop - code synthesis
https://www.touchdevelop.com/help/synthesis

TouchDevelopを触ってみよう!

 最初に言ったようにTouchDevelopはWindows Phoneのアプリだから、Marketplaceからインストールするよ。「TouchDevelop」で検索して、インストールしてね。

 あーっと! 言い忘れてたんだけど、TouchDevelopのアプリは英語なの。でも、Windows Phoneユーザーは、このぐらい苦行でもなんでもないよね!

 みんな、インストールできたかな? じゃあ早速アプリを起動してみて! はじめて起動したときはライセンスに同意する画面がでるよ。で、その後に表示されるhome画面はこんな感じ。

 「new」、「top」「featured」「tags」は、全部バザーで公開されているアプリ(スクリプト)を見る項目だよ。上のメニューにある「installed」を見ると、はじめからサンプルスクリプトがインストールされているのがわかるから、後でいろいろいじってみてね。

 さて、TouchDevelopを活用するには、Windows Liveアカウント(Microsoftアカウント)か、Facebookのアカウントでログインが必要だよ。バザー機能を使うのに必要だからログインしておこう。右上の「log in」をタップしてログインしてね。

 ログインすると、home画面でログインしているユーザーが表示されるの。最初は「User+番号」って名前になってるけど、もちろん編集もできるからね。

はじめてのスクリプト

 さっそくだけど、アプリ作ってみよっか! チュートリアルも用意されていて、home画面の「Take the tour!」をタップして、指示通りに進めていけばアプリが作れるよ。じゃあ、その内容を順番に見ていこう! 作れるアプリは、ケータイを振ったらランダムに音楽を再生するっていうものだよ。

 まず、「Take the tour!」をタップしてみて。あ、もちろん、このチュートリアル機能を使わなくても、同じように操作すればアプリできるからね。少し補足しながら進めるけど、わからなくてもとりあえず進めてアプリを完成させてみよう!

 新しくスクリプトを作るには、home画面の一番下、アプリケーションバーにある[+]ボタンをタップして始めるよ。

 ボタンをタップしたら、スクリプトの名前(アプリの名前ってことだよ)を入力しよう。はじめから「my script」って入力されているから、今はこのままでOKだよ。変えたいときは日本語も使えるから[create]ボタンをタップして決定してね。

 これで、スクリプトの画面に移動したよ。作ったスクリプトにはランダムでアイコンが選ばれるんだけど、いつでも変更できるからね。スクリプトの名前や説明も編集できるよ。

 次は、「events」の右側にある「+」をタップしよう。events(イベント)は、電話を振ったり、ディスプレイ画面を上に向けたり、横に向けたりした「イベント」を起点に何か処理するときに使うものなの。

 イベントの一覧の中から、ここでは、電話を振ったときを表す「shake」をタップしてね。

 次は、shakeイベントが発生したときのコードの画面が表示されたよ。「do nothing」って書いてあるでしょ? 今のままだと電話を振ったとき「何もしない」ってことだね。

 「do nothing」部分をタップすると、編集用のボタンが出てくるから左上の[edit(編集)]をタップしよう。

 このとき、「do nothing」の行だけ選択してね。左にどの行が選択されているか表示されるから確認して。画面を上下にスワイプすると、選択範囲を変えられるから試してみて!

 次は、コードを1行書く画面。ここに画面下側のボタンを使って「ケータイに入っている音楽をランダムに選んで再生する」っていう処理を入力するからね。複雑な処理だと何行もコードを書くけど、この程度なら1行だけでできちゃうんだ。

 まず、[media]ボタンをタップ。

 上の画面に「media」って出たでしょ? 続いて[songs]ボタンをタップ。

 「media→songs」ってなったね。続けて[random]ボタンをタップするよ。

 最後は、[play]ボタンをタップ! なんとなくこう、雰囲気で意味わかるでしょ? 一応おさらいすると、TouchDevelopでは音楽(songs)は、media(メディア)っていうグループに分類されてるの。だから、メディア(media)の中の音楽(songs)まで選んで……、ランダム(random)にひとつえらんで、再生(play)というコマンドを選んだわけ。

 このスクリプトを書いた場所は、ケータイを振ったときを表す「shake」イベントの中だから、ケータイを振ったら、ケータイに入っている音楽をランダムに選んで再生するっていう動作が実現できるってこと!

 触ってて気づいたと思うけど、下側の2段のボタンは、今入力できるボタンだけが出てくるの。入力できるボタンの数が多くて2段に収まらないときは、ボタンの上で上下か左右にスワイプすれば、ボタンの種類が変わるからね。右下の「next suggestions」って書いてあるボタンでも切り替えられるし、虫眼鏡の[there’s more]って書いてあるボタンで検索して探すこともできるよ。あと、上側2段のボタンは固定で、数字の入力や、スクリプトを修正するときに使うからね。

はじめての実行

 ケータイの戻るボタンを押して、イベントのスクリプト画面まで戻るよ。戻るボタンは、ケータイの左下についているボタンだよ。TouchDevelopでは、この戻るボタンを多用するから覚えておいてね。

 イベントのスクリプト画面の下側、アプリケーションバーにある三角ボタンをタップすると、スクリプトを実行するよ!

 電話を振ってみて! 音楽が再生されたかな? 当たり前だけど、ケータイに音楽が入ってないと音鳴らないよ。スクリプトの終了は、ケータイの戻るボタンでできるからね。終了したときは「script stopped」って画面に出るよ。音楽の再生はケータイの機能を呼び出しているだけだから、停止はケータイの機能を使ってね。

 どう? 簡単だったでしょ? スクリプトの実行は、スクリプトの画面にある「code」の「main」の左にある、緑色のアイコンをタップしてもできるよ。

 このアプリをWindows Phoneのスタート画面に追加するには、スクリプト画面でアプリケーションバーの右にあるpin(ピン)ボタンをタップすると追加できて、いつでもすぐに実行できるようになるよ!

はじめての公開

 最後は、バザーにスクリプトをアップロードする方法も紹介しておくね。これも簡単で、スクリプト画面からだとアプリケーションバーの左にあるpublish(公開)ボタンからできるよ。ほんとに簡単にできちゃう。だからこそ注意しなきゃいけないことがあるんだけど! いともあっさりと全世界に公開されちゃうから、スクリプトに個人情報とか入れるのは絶対ダメだよ!! ワールドワイドに晒されるよ!

 確認画面で[publish]ボタンをタップすればOK。公開すると、バザーでみんながアクセスしてダウンロードできるようになるよ。「hidden」をチェックしておくと、スクリプトの一覧には出てこないけど、スクリプトのIDを使って検索できる状態なの。友だちにだけ教えたいときなんかに使ってね。でも、公開されてるのには変わりないから注意して!

 実は、チュートリアルで作ったスクリプトは、まったく同じスクリプトが既に公開されていて、新しく公開できないの。スクリプトを自分で作って、良いのができたら公開してみてね。

 ちょっとだけ、ここでバザー機能も見てみよう。公開したアプリは「/bual」みたいな英文字のIDがつくの。これを使って簡単に検索できるから、友だちに教えるときなんかに使えるね。検索はhome画面とかにある虫眼鏡のボタンからできるよ。

 公開されているアプリのインストールは、アプリケーションバーのinstall(インストール)ボタンから。ほかのやりかたとしては、スクリプトのアイコンをタップしたらすぐにインストールして実行できるよ。

 公開されているアプリは、レビューの投稿(フォーラム機能)を使えたり、気に入ったスクリプトには、ハートマークをタップして「いいね!」をつけたりできるよ。スクリーンショットを投稿したり、タグをつけたりもできるんだよね。

 あとね、ちょっとおもしろい機能があるよ。スクリプト自体が公開されてるから、インストールして改造もできちゃうの。改造したスクリプトも公開ができるよ。その場合は、元スクリプトの派生版として公開されるからね。派生した改造スクリプトを探すときは元のスクリプトの「variations」から見れるし、改造スクリプトから元を辿りたいときは「details」の「based on」に載ってるよ。

今すぐできちゃうスクリプト

 TouchDevelopでの開発の流れは、なんとなくわかったかな? チュートリアルで作ったスクリプト以外にも、1行から数行で作れるアプリはいろいろあるから、いくつか紹介するよ。ぜひぜひ作ってみてね。新しくスクリプトを作るのはもうわかるよね? home画面で[+]ボタンからだよ。

文字を表示する

 プログラミングの超基本、文字の表示だよ。実はこれ、スクリプトを作ったときに書いてあって、スクリプトを作ってすぐ実行すると「TouchDevelop is cool!」って表示されるの。表示したらスクリプトの実行を終了するから、画面には「script finished」と一緒に表示されるよ。

 文字を表示するコードは、「code」の「main」アクションに書いてあるの。codeにある項目は、アクションって呼んで、意味のあるコードのカタマリを書くんだ。mainアクションは特別で、スクリプトを実行したとき、最初にmainアクションに書いたコードが実行されるの。

 mainアクションのコードを見るよ。「main」部分をタップしてみて! 緑色のアイコンをタップするとスクリプトを実行しちゃうから気をつけてね。表示されたコードの画面では、「”TouchDevelop is”…→post to wall」って書いてあるでしょ? 「TouchDevelop is cool!」だけど、長い文字列はこんな風に省略して表示されるの。

 ここに別のメッセージを表示するようコードを追加するよ。[+]ボタンをタップしてみて! ラインで示されている場所に、コードを追加するよ。続いて、[command(コマンド)]ボタンをタップ。

 文字列の入力は、2段目にある["..." pic snd color]ボタンをタップ。続いて["abc"]ボタンをタップ。そして、表示する文字列を入力してね。ここは、日本語も使えるよ。後は、ケータイの戻るボタンでコード画面に戻るよ。

 この文字列を、スクリプト実行したときに画面に表示するには、[post to wall]ボタンをタップしてね。

 これで完了! wallってのはケータイの画面のことで、「”こんにちは”→post to wall」で、「こんにちは」っていう文字列をwallに送る(表示する)という動作になるわけ。表示されるか、実行して確認してみてね。ちなみに、TouchDevelopで出てくるものは、なんでもwallに送れるよ。

 コードの「→」は、左側にあるオブジェクト(文字列だったり、音楽だったりするよ)の情報を参照したり、何かコマンドを実行する(wallに表示したり、音楽を再生したりとか)ときに使うTouchDevelopの文法なんだ。ここまでで、コードの入力はだいたいつかめたでしょ? さあ、あとはさくさく進めるよ!

バイブレーションする

 ここからは、スクリプトを新しく作って、mainアクションにコードを追加して試してみてね。

 バイブレーション機能を使うには、[phone]ボタン、[vibrate]ボタンを順にタップしてコマンドを入力するよ。

 0.1の部分は、[backspace]ボタンで消して、数字ボタンで秒数を入力して変えられるよ。phone(電話)をvibrate(バイブレーションする)って意味だね。vibrateは、括弧の中の数値を変えて、秒数を決められるってわけ。

 入力したコードの「phone」や「→vibrate」部分をタップすると、ヘルプが表示されるから活用してね。[more…]をタップすると、文法の説明も表示されるよ。親切だよね!

カメラを使う

 カメラやマイクの機能は、senses(センサー)グループに分類されてるの。カメラの映像を画面に表示するには、[senses]、[camera]、[post to wall]ボタンを順にタップしてね。こんな風にカメラもwallに送れるんだね。これで、カメラの映像が画面に表示されるよ。

 カメラで撮影して、写真を保存するには、[senses]、[take camera picture]、[save to library]ボタンを順にタップだよ。簡単でしょ?

マイクを使う

 録音するには、[senses]、[record microphone]ボタンを順にタップ。[post to wall]で、録音した結果もwallに送れるよ。

 次は、録音した音のオクターブを変えて再生してみるよ。これは1行のコードだけじゃ実現できなくて、いわゆる「変数」を使わないとダメなんだよね。でも、実はそんなに難しくないのです! やればわかるよ!

 [senses]、[record microphone]ボタンをタップして、次に[+store in var]ボタンをタップするよ。これは、var(変数)にstore(格納する)っていうコマンドだよ。varはvariable(変数)の略だね。コードは次のようになって、録音した結果を、soundっていう変数に格納してるの。TouchDevelopの文法では、変数の定義は「var」と「:=」を使うんだ。

 soundっていう名前は、自動でついた名前なんだけど、自分で編集して変えることもできるよ。とにかく、これでsoundは、録音した結果の音を示してるの。

 新しいコードを追加するよ。コード全体の画面に戻って[+]ボタンをタップしてもいいんだけど、1行コードを編集する画面で何もないところをタップすると[+]ボタンが出てくるから、これで次の行にコードを追加しよう。

 コードの編集画面になったら、ボタンを見てみて。変数の[sound]ボタンもあるでしょ? これをタップして、[set pitch]をタップしよう。括弧の中の数字を編集してオクターブを変更してね。これでsoundのpitch(音の高さ)をset(設定)するってことだね。

 さらにコードを追加! [sound]、[play]ボタンをタップしてね。意味は、soundをplay(再生)だね。

 スクリプトを実行して録音すると、少し高い音で再生されるよ。リアルタイムじゃないけど、ボイスチェンジャーみたいな遊び方ができるかも?

ケータイを振ってプレイヤーを操作する

 次は、チュートリアルで作ったアプリの応用編みたいなものだよ。shakeイベントが起きたときに処理をするのは一緒で、音楽が再生中のときは一時停止して、それ以外のときは音楽の再生を再開するっていうアプリを作ろう。いわゆる「条件分岐」っていう処理が必要だね。

 shakeイベントにコードを書くのは、チュートリアルでしたからOKだよね。コードを追加するとき[command]ボタンじゃなくて、[if]ボタンをタップ!

 コードの編集画面を見ると、「if then」ってなってるよね。この中に「もし~なら」の条件を書くんだ。ここでは、「音楽が再生中」っていう条件を書けばOKだね。[player]、[is playing]ボタンをタップしよう。これで、player(プレイヤー)がis playing(再生中)ってことになるよ。

 再生中のとき、音楽を一時停止、つまりプレイヤーを一時停止すればいいよね。コードを追加して、[player]、[pause(一時停止)]ボタンをタップしよう。

 次は、「そうでなかったとき」の処理を書くよ。コード全体の画面に戻って「else do nothing」の行を編集してね。そうでなかったときの処理はelse以降に書くんだ。[player]、[resume(再開)]ボタンをタップしてね。これで、プレイヤーを再開だね。

 これでshakeイベント全体のコードはこんな感じになってるはずだよ。

 じゃあ、スクリプトを実行してみて! ケータイを振ると音楽の再生・一時停止が制御できるでしょ? 条件で処理を分岐するのも簡単、簡単♪

連続10枚写真を撮影する

 さてさてお次は、繰り返しの処理にトライしてみよっか。カメラの映像を10回wallに送るって処理を書いてみるね。指定した回数だけ繰り返し処理をするには[for]ボタンをタップ。

 コードの編集画面では、「for 0 ≦ … < do」ってなってるよね。カーソルのある位置に数字ボタンを使って、10って入力してみよう。これで0以上10未満、つまり10回繰り返すって意味になるんだよ。

 コードを追加して……カメラの映像をwallに送る処理を書くよ。[senses]、[camera]、[preview]、[post to wall]ボタンを順にタップしてね。preview(プレビュー)だと、カメラのプレビュー用の低品質の画像を取得できるの。画質はイマイチだけど、その分早く画像を取得できるんだよ。

 全体のコードはこんな感じになったー。forの行に「i」が表示されてるけど、これは繰り返し用の変数で、自動で命名されたんだ。10回繰り返すとき、0~9の値がiには入るわけ。今回は使ってないけどね。

 スクリプトを実行したら、ばばーん! 10回連続でカメラの画像が並べて表示されたでしょ? かんたん連写アプリだよね! というわけで、繰り返し処理もこれでOK。ほかにも繰り返しの方法はあって、[for each]、[while]ボタンを使うんだけど、今回はパスね!

 えーと、とりあえず簡単に作れるスクリプトはこれぐらいでいいかな? もっといろいろ簡単にできるから、気になるコマンドがあれば、ヘルプを見ながらいろいろさわってみてね。英語になっちゃうけど、実際に操作しながらいろいろスクリプトを作るビデオが、公式で用意されているから、これ見るのもいいかも。

MEMOスクリプトの構成要素

 ここでは、もうちょっとだけスクリプトについて詳しく紹介するよ。少し難しめなことも話すから読み飛ばしてもOK! スクリプトの画面では、「code」、「events」、「data」、「records」、「art」、「libraries」の項目があったと思うけど、スクリプトは、この6つの要素でできてるの。

actions(アクション)
 codeにある要素は、コードのカタマリで、アクションって呼ぶの。ほかのプログラミング言語でいうと、関数にあたる要素だね。アクションから別のアクションを呼び出すこともできるし、そのとき、何か値を渡して、結果の値を返すこともできるんだ。「引数」と「戻り値」って呼ばれるものだね。
events(イベント)
 イベントを起点にして呼び出されるコードのカタマリで、ケータイを振ったり、wallをタップしたりいろいろなイベントが用意されているよ。イベント一覧には、今使えるものだけ表示されるから、アクションでイベントの発生するコードを書けば、イベント一覧にイベントが増えるよ。
data(データ)
 アクションとイベントのコードの間で、データをやりとりするときに使うのがこれ。アクションとイベントからいつでも参照できる変数を作れて、こういうのを一般的にグローバル変数と呼ぶよ。よくあるプログラミング言語と違って、スクリプトを終了してもデータは残ったままだから、アプリの設定の保存なんかにも使えるの。
records(レコード)
 レコードは、特別なデータ形式の総称だよ。table(テーブル)、index(インデックス)、decorators(デコレーター)、objects(オブジェクト)の4種類があって、テーブルは行と列でデータを表すものを作れるの。インデックスは、テーブルと似てるんだけど「キー」と「フィールド」でデータを表すものなの。ほかのプログラミング言語の「ハッシュテーブル」や「連想配列」といったものに近いよ。デコレーターは、TouchDevelopで用意されているオブジェクト(音楽とか写真)に別の情報をつけて拡張できるものなんだ。最後のオブジェクトは、自分で好きなデータを定義して作れるの。
art(アート)
 アートは、サウンドと画像、色情報だよ。サウンドと画像は、Webからデータを取ってきてスクリプトで使うんだ。
libraries(ライブラリ)
 スクリプトから別のスクリプトを使うこともできるの。これが「ライブラリ」機能ね。ほかのスクリプトから使われるスクリプトを「ライブラリ」と呼ぶよ。スクリプトをライブラリとして使いたい場合は、スクリプトの設定からライブラリ化できるよ。

TouchDevelopでゲーム開発!

 ゲームを作る機能についても少し紹介しておくね。でも、ここで詳しくは紹介できないの。量的に。量的規制ってやつかな? いや関係ないか! まあとにかく、こういうこともできるんだ~って感じで雰囲気だけつかんでね。TouchDevelopで向いてるゲームは、2Dのミニゲームとかそういう系だよ。

 まず、TouchDevelopにはゲーム向けに特別なイベントが用意されてるの。それが、gameloopイベントで、約50ミリ秒おきにイベントが発生するの。これ使って、キャラクターを動かしたりするんだよ。

 次。Sprite(スプライト)って呼ばれる機能もあるんだよね。キャラクターの画像をスプライトにすれば、キャラクターを動かすとき、単純にキャラクターの位置を変えるだけで済むの。複雑な画像の合成をプログラミングする必要はないってこと。

 TouchDevelopでは、スプライトを表示する領域をBoard(ボード)って呼ぶよ。スプライトやボードを、タップやスワイプしたイベントもあるし、スプライトを移動させるコマンドも用意されてるから、キャラクターを操作するのなんかも簡単だよ。

 そして、簡易な物理エンジンも搭載してるんだよ。ボードやスプライトの摩擦係数を設定したり、ボードに重力を設定したり、スプライトの弾力性を設定したりできるよ。ただ、スプライト同士の衝突処理は自動でできないの。スプライトと、ボードに設置した障害物や、ボードの端で跳ね返る処理が自動でできるよ。
これって、工夫次第、使い方次第でけっこう面白いゲーム作れそうだよね!

 ここらへんの機能を使った「beat board」っていうサンプルがあるから、これを見てみるのもいいかも。

 そして! せっかくだから私も簡単なゲーム作って公開してみた! から! 参考にしてみてね♪ ケータイを傾けて垂直離着陸機を操作して、風船をゲットするゲームなんだけど、スコアとかゲームクリアの概念はないんだよね。だからそのへんは、みんなで改造してみて! いわゆるコラボだよね。私とコラボ。あるいは合作とも言う! スクリプトは、英文字のID「hchv」を入力して検索してね。

 作ったスクリプトはこんな感じだよ。結構短いでしょ?

 スクリプトでは、data(データ)やart(アート)を使ってるよ。

 mainアクションとgameloopイベントの両方で使うボードとスプライトは、dataを使う必要があるの。スクリプトのページにあるdataの横の[+]ボタンで作るからね。または、コードの入力中に変数をdata化する[promote to data]ボタンを使う方法もあるよ。

 artは、スクリプトでWebの画像やサウンドを使いたい場合に使うの。あらかじめスクリプトのページにあるartの横の[+]ボタンから作っておこう。

 ちょっと駆け足だったけど、ゲーム関連の話はおしまい!

Marketplaceに公開!

 Windows PhoneのMarketplaceで公開する方法、まだ話してなかったよね。TouchDevelopのスクリプトは、基本TouchDevelopで動かすんだけど、条件がそろえば、Marketplaceで公開できるxapファイルを、touchdevelop.comからダウンロードできるの。興味ある人はトライしてみて!

 条件は、スクリプトを公開していて、他人のスクリプトを改造したものじゃないってこと。あと、ライブラリ機能っていうのがTouchDevelopにはあって、それも使ってないっていうのが条件だね。

 xapファイルをダウンロードするには、touchdevelop.comにログインして、公開したスクリプトのページにある「create app for Marketplace」の[get start with your app…]ボタンをクリック。Marketplaceに公開するために、必要なアプリの情報の入力や、アイコンの登録、TouchDevelopのクラウドサービスの利用規約の同意なんかが必要だよ。必要事項を満たしたら、ファイルがダウンロードできるからね。

 スクリプトのページは、“https://www.touchdevelop.com/”の後にスクリプトの英文字のIDをつければアクセスできるよ。ページ上部のユーザー名をクリックして、ユーザーページにも公開しているスクリプト一覧があるから、そこからもアクセスできるからね。

 私の印象なんだけど、xapに変換して、Windows Phoneのアプリとして動かすと、うまくいかないこともあるかなって感じ。少し試行錯誤が必要かも。今後のアップデートにも期待だね。

 xapファイルを手に入れた後、Windows PhoneのMarketplaceへの登録については、普通のWindows Phoneのアプリ開発と一緒だよ。デベロッパーセンターにメンバー登録して、年間9800円のサブスクリプションの料金も必要だよ。でも、学生の場合は無料になる場合もあるから調べてみて。そのほか、詳しくはここでは紹介しないから調べてみてね。日本語情報もたくさんあるからね!

TouchDevelopをもっと知るには?

 TouchDevelopの話、どうだったかな? 簡単にプログラミングできそうって感じが伝わってるといいんだけど。TouchDevelopって結構高機能なところあるから、細かいところは全然紹介できてないんだよね。もっといろんなことできるから、おもしろそうって思った人は、いろいろいじってみて! ただ、TouchDevelopの日本語の情報ってほとんどないんだよね~。うん、がんばって!

 touchdevelop.comの「learn」のページには、チュートリアルのビデオ以外にも、「touchdevelop - programming on a phone」っていう本のPDFファイルや、授業形式のスライドもあるよ。あと、APIのリファレンスも参照できるから活用してね。

 英語だけどTouchDevelopのFacebookのページで質問もできるよ。日本語だとTwitterで同志をさがしてみるとかもありかもね。Windows Phoneと開発のハッシュタグは、#wp7dev_jpと#wpdev_jpがよく使われてるよ。

TouchDevelop | Facebook
http://www.facebook.com/TouchDevelop

 さて、夏休み企画は今回でおしまいだよ。みんな、つきあってくれてありがとう! え? もっと続けて欲しい? それはねー、私もそう思う! だけど今回はここまでなんだよねー……あ、でも、みんながたくさん応援してくれたらまた会えるかも? それじゃ! とりあえずまたね!

(暮井 慧)