どんな内容か?
WioTerminalの購入時に遊べるレトロゲーム(Jumper)が激ムズですぐにゲームオーバーで進めないので簡単にするための改造方法です。
多分、購入すると5分間くらいはこのゲームで時間を消費することになります。昔懐かしいゲームウオッチを思い出します。
やり方
このゲームのソースコードが公開されているので、そのソースコードの一部を修正することで、あんなことやこんなことができるようになります。ですので、まずはそのソースコードを入手してビルドできるようにする必要があります。
環境の準備
- ArduinoIDEの環境を準備します。(詳細は省きます)
- ソースコードSeeed_Arduino_Sketchbookをダウンロードします。この中にJumperのソースが含まれます。
- ビルドするのにライブラリが必要なので、Adafruit_ZeroTimerもダウンロードします。
- ライブラリをインストールするためにArduinoIDEを起動し、スケッチ→ライブラリのインクルード→.Zip形式のライブラリのインクルードで、ダウンロードしたZipファイル(Adafruit_ZeroTimer-master.zip)を選択します。(※下部写真)
- jumper.inoをダブルクリックしJumperのコードを開きます。
- ビルドしてWioTerminalに書き込んで動けば環境はOKです。
改造方法その1:鳥を消す
ゲームをやっていると厄介なのが空を飛ぶ鳥です。この鳥がなかなか衝突判定も厳しくて邪魔キャラなので消し去ります。
コメントで//generate a birdとある下記の部分全てをコメントアウトすることで、鳥出なくなります。
つまり、抵抗の障害物をジャンプするだけのゲームにすることができます。(面白いかは別ですよ。)
//generate a bird
static bool once = true;
if (once)
{
once = false;
int i = 0;
while (current_bird_count < max_bird_count)
{
bird[current_bird_count++] = object(
pix_type_bird,
point(screen_width - raw_bird[0]->width, jump_path[i].y - 16),
raw_bird,
x_bird_speed);
i++;
}
}
else if (
current_bird_count < max_bird_count &&
random(0, rate) == 0 &&
can_generate(bird, current_bird_count))
{
debug("generate a bird");
auto i = random(0, max_jump_path);
bird[current_bird_count++] = object(
pix_type_bird,
point(screen_width - 1, jump_path[i].y - 16),
raw_bird,
x_bird_speed);
}
上記を全部コメントアウト(削除)しちゃえば、鳥は出てきません。
改造方法その2:無敵化
最終手段ですね。こちらは、1行コメントアウトするだけで無敵化することができます。単にゲームオーバーしなくするだけなんですけど。
ソースコードの中央部にこのゲームオーバーフラグを立てる場所があるので、ここをコメントアウトします。
if (collide_mask & pix_type_actor)
{
flag = game::over;
}
if (collide_mask & pix_type_actor)
{
// こんな感じです。
// flag = game::over;
}
無敵はこんな感じになります。(動画でご覧いただけます。)
その他
ベースとなるソースコードが公開されていますので、これをベースにアレンジしたゲームを作りこむのも楽しそうですね。(自分が作るとは言ってない。)


