LoginSignup
0
0

More than 5 years have passed since last update.

サッパリ系ビスケットプログラミング#5マリオ風ゲーム/重力と左右移動

Last updated at Posted at 2019-03-10

SEの方の間でも評価が上昇傾向のビジュアルプログラミング言語、Viscuit(以下ビスケット)でマリオ風のゲームを作成していきます。#4で作ったステージに、割れたメガネを使ってコントローラのプログラムを追加します。割れたメガネについては#1をご参照ください。

※ビスケットのコーディングは全て描画で行います。こちらの記事はビスケットでのコーディングを簡潔に紹介するため、敢えてサッパリした描画のプログラムにしております。こちらをベースに、お好みの描画でオリジナリティーの高いプログラムに仕上げてくださいm(_ _)m

重力と左右移動

【ステージ、コントローラー、プログラム解説】

ステージ:マリオがジャンプ→キノコをゲットして巨大なマリオに→土管IN-OUT→地下でコインゲット→土管IN-OUT→フラッグ→クリア…という流れです
025BE6A0-A6ED-4D2E-BED2-0A8A255CC531.png
前回は左のステージに画像のようなステージを配置しました。下向き↓は、重力センサーです。こちらが配置されているところではマリオが落下します。
今回は、重力落下→十字キーで左右移動をさせるプログラムを作ります。

コントローラー(十字キーとAボタン)

Aボタンと十字キーは#1〜3のシューティングゲームでも紹介しました。
このマリオ風ゲームでは左右、左上&右上、下の5方向の命令を使います。
左右は歩行、左上&右上はジャンプの方向、下は土管に入る命令です。

今回は、左右のキーでマリオを水平移動させるプログラムを作って行きます。

重力の設定(メガネ2つ)

2670F32F-9B86-4AEE-85C0-17DC7D7C54E1.jpeg
オレンジの↓は重力センサーです。と言ってもただ↓を描いただけで、特別なものではありません。
天地創造の際は、まずはステージに重力を与えて、落下→着地ができるかチェックします。
(マリオは小と大の両方を描画しておきます。)
前回の#4でステージに重力センサーを配置しています。
まず、左のメガネにマリオ小を入れ、その下に重力センサーを入れます。
次に、右のメガネに重力センサーを入れ、その下にマリオ小を入れます。
一般的なプログラム風に訳すと
 「もしマリオ小の下に重力センサーがあれば、マリオ小は1マス下に行く」
という意味になります。
マリオ大も同様に作っておきます。(このマリオ風ゲームの製作を進めていく際、左右にジャンプした格好の大小マリオを追加していきます。こちらについては、次回#6ジャンプで解説します。)

重力のテスト(画像上:落下前 画像下:落下後)

490AD97E-3EC4-4D3B-B0D2-CAA031747A7E.jpeg
6C4C1AC1-A30C-4739-B385-730F65ADC626.jpeg
画像のように高いところにマリオを配置します。
落下後の画像のように落下して着地できれば重力の設定ができました。

左右の移動(画像上:右移動 画像下:左移動 それぞれ小マリオと大マリオ用)

701FA3CB-6502-47C8-B6EF-123B70B73BA5.jpeg
FDEF276C-5C20-4369-ACB2-C4C3ABCC79D0.jpeg
メガネは割れたメガネを(右向き3つ+左向き3つ)×2=12個 準備します。
以下、解説していきます。

マリオ小(大)の右移動(割れたメガネ2分割3つ×2セット=6個)

9497F4A8-07FD-4953-962E-0B7CB6E216F6.jpeg
ステージブロック、ハテナブロック、割れないブロックの上を左右に移動するために、プログラムを作っていきます。
まず、左のメガネ下段には十字キーを入れ、十字キー右にタッチマークを配置、左のメガネ上段にはステージブロックを入れ、1マス上には重力センサーを配置、1マス左にはマリオ小をステージブロックとオフセットして配置します。
次に、右のメガネ下段には十字キーを入れ、右のメガネ上段には左のメガネと同じ場所にステージブロックを配置し、1マス上にはマリオ小を配置、さらに1マス左には重力センサーをステージブロックとオフセットして配置します。
この作業は、割れないブロック上での右移動とハテナブロック上での右移動でも必要ですので、ブロックを差し替えた同じプログラムを作ります。
マリオ大の右移動も同様に作っておきます。

マリオ小(大)の左移動(割れたメガネ2分割3つ×2セット=6個)

E48FA803-3C24-4AB7-A221-D9FF1099760C.jpeg
右移動と同様に作ります。

一般的なプログラム風に訳すと
「もしマリオ小(大)の左(右)側にステージブロック(割れないブロック、ハテナブロック)があれば、
  左(右)ボタンが押された時、マリオ小(大)が1マス左(右)に移動する。」
という意味になります。

これで自由落下→左右移動ができるようになりました。次回は、いよいよ「ジャンプ」です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0