Japanino(大人の科学付録)と魚釣りゲーム

大人の科学マガジンに Arduino の互換機「Japanino」と「光残像キットP.O.V」が付いてくるということで早速購入して組み立てたところ、これでなんか軽くやってみたいなと思っているうちに、それらを使った「魚釣りゲームコンテスト」なるものがあるという事なので、簡単なゲームを作って応募してみました。

作ったゲーム「カニ漁」はwonderflのサイトにアップしてるのですが、「光残像キットP.O.V」がないとPLAY出来ない為、PLAY中の動画をアップしました。


ゲームは昭和初期のオホーツク海という設定です。
船にカニが入ったら「光残像キットP.O.V」にカニが表示されるんですが、分かり難いというかこの動画では全然カニに見えませんねw
解像度が15×7ドットなのでこんなもんでしょうか。

今、思いついたんですけど、ハンドルを回すとゴマのパーティクルが落ちる「バーチャルゴマすり」とかどうでしょう?
需要ありますでしょうか?

※「魚釣りゲームコンテスト」の応募は7月14日で締め切られました。

[追記:2010.7.27]
応募期間が延長されました。

大人の科学マガジン Vol.27(8ビットマイコン)
大人の科学マガジン Vol.27(8ビットマイコン)

付録:「Japanino」 と 「光残像キットP.O.V」

書籍を表示するスクリーンセーバー

PasteBook ScreenSaver を作りました。

まず、貼り絵がペタペタと始まります。

モチーフは amazon.co.jp で販売されている書籍の表紙です。

どういった書籍が表示されるかというと、登録した検索ワードで検出された書籍の「出版日が新しい順」や「売れている順」の上位30位の中からランダムで選出したものになります。

10分ちょっと経ったらこんな感じになります。

本の詳細ページ(amazon.co.jp)へのリンクにアフィリエイトタグを付けてるんですが、トータルで1冊でも売れるといいなー。へへ。
目ぼしい本が表示された時は迷わずGETしましょう!

スクリーンセーバーのサンプル動画&ダウンロードはこちら↓
PasteBook ScreenSaver

制作事例:僕にはできる。



アクエリアスのスペシャルコンテンツ「僕にはできる。」のFlashを担当させていただきました。

ユニコーンの曲に合わせた決意表明ムービーを作成できるというコンテンツです。
作成した決意表明ムービーを友達に送ったり、スクリーンセーバーにすることもできます。

2010年いっぱいまで公開されている予定なので、みなさんも今年の目標など決意表明しちゃいましょう!

Web Site: http://www.aquarius-sports.jp/possibility/

[追記]
終了しました。

[Credit]
Client:
Coca-Cola (Japan) Co.,Ltd.
Produce: Netyear Group Co.
Planning & Direction & ArtDirection & Design & SoundDesign: SkyBabies Inc.
Photo: CROSS OVER
ServerSideProgram: SkyBabies Inc. & Twelvetoes
Flash:Kenzo Usami

AS3デバッグツール Debush の使い方

■前書き
Flashのデバッグは、ほとんどtrace()でやってるんですが、
たまにEnterFrameで値の変化を確認したい時とか、Flash Tracer(FireFoxでtraceの出力が確認できるFireFoxのアドオン)が入ってない環境で値を確認したいときもあると思います。
そういう時は確認用のTextFieldを作って値を表示させれば済むのですが、毎回それをやるのはめんどくさいです。
特にTextFieldのインスタンスをグローバルインスタンスにしたりしていると負担になり心臓に悪いです。
(みなさんは実は僕の知らない便利ツールを使ってサクッと済ませてるんでしょうか?)
そこで、毎回めんどくさいなら、すぐに値をチェックできるツールを作ってしまえということで、デバッグツール Debush(デバッシュ)を作りました。

■ダウンロード
Debush ダウンロードページ

■使い方1:基本
下の黒いエリアはSWFです。その内、黄色いパネルがDebushのエリアです。
黄色いパネルの左上部を掴んで移動させることもできます。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がDebushを表示させる為の部分です。
Debushをnewで呼び出した時の引数はdebushHandler関数をどこに置くかという指定です。
debushHandler関数内に表示したい値を記述していきます。
props配列内の(0番から始まるとして)偶数のString型の値が説明で、その偶数の値の次の値が表示したいプロパティです。
2つで1ペアになります。props配列内の値の数は好きなだけ増やせます。

package {
	import flash.display.Sprite;
	import debush.Debush;

	public class Main extends Sprite {

		public function Main() {
			addChild( new Debush(this) );
		}

		public function debushHandler(recordMode:String):void {
			var props:Array = [
				"mouseX", mouseX,
				"mouseY", mouseY,
				"ball.alpha", ball.alpha,
			];
			Debush.update(props, recordMode);
		}

	}
}

 

■使い方2:記録する
下のSWFでは1秒に1回、record関数を呼び出して緑のエリアにその瞬間の値を記録しています。
赤のrecordボタンを押しても緑のエリアにその瞬間の値を記録します。
緑のreceiveボタンはトグルボタンになっていて、ボタンが緑色の時はrecord関数の呼び出しに応じますが、ボタンがグレーの時はrecord関数の呼び出しに応じません。


このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がrecord関数の呼び出しです。static関数なのでクラス名で呼び出します。

package {
	import flash.display.Sprite;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import debush.Debush;

	public class Main extends Sprite {

		private var timer:Timer = new Timer(1000, 0);

		public function Main() {
			addChild( new Debush(this) );

			timer.addEventListener(TimerEvent.TIMER, timerHandler);
			timer.start();
		}

		public function debushHandler(recordMode:String):void {
			var props:Array = [
				"mouseX", mouseX,
				"mouseY", mouseY,
				"ball.alpha", ball.alpha,
			];
			Debush.update(props, recordMode);
		}

		// タイマーハンドラ:1秒に1回呼ばれる
		private function timerHandler(e:TimerEvent):void {
			Debush.record();
		}
	}
}

 

以上がDebush 1.0.0 の機能の全てです。

加速度センサーで演奏

上の映像で、PCモニタに映っているのはswfファイルです。
手に持っているやつは3軸加速度センサー×FIO×XBee無線モジュールです。
これでswfファイルのスティックの動きをコントロールします。

本当は手に持っているやつの動きとまったく同じ動きが出せれば良かったのですが、3軸加速度センサーからの情報だけでは厳しいようです。
3軸加速度センサーの値からは、XYZの3軸の角度情報が割り出せるので、2軸分の角度情報だけを使ってswfのスティックを動かしています。

加速度センサーとFIO

2軸分の動きしかしないんだったら特にflashを3Dにする必要もなかったんですがね。
と、後で気付きました。