こんにちは。FlutterFlow公式のYoutubeで昔のマリオのようなレトロゲームを作ってみたという動画がありましたね。Endless Runner Games with FlutterFlow: Players & Obstacles Movement

これが面白そうだったので、試しに真似して作ってみました。

こんな感じです。

まずはシンプルに敵が向かってきて、主人公はジャンプして避ける、それだけのアプリになります。簡単ですね!今はまだ敵にあたっても素通りしちゃいますが(笑)、その辺も問題なく実装できそうです。


ノーコードで、一切コードも書かずにこんなのゲームができるのってすごいですよね。

では概要を説明したいと思います。

細かい作り方は下の方でYoutube動画のリンクがあるのでそちらも参考にしてください。

UI作成

まずはUIを作成します。今回はデータベースの接続も要らないので簡単です。

以下のようにstackを配置し、その上にプレイヤー画像と敵の画像(この場合は炎)のを配置します。あとは左上にスタートボタンを置いたらUIはほぼ完了です。

AlignmentのX座標とY座標

ここが一番のポイントになります。以下画像のAlignmentのところを見てください。
プレイヤーのX、Y座標は(-1, 1)になっています。(-1, 1)が左したなんですね。

炎の位置は(1, 1)になります。画面の左上の位置は(-1, -1)、右上は(1, -1)です。
画面中央は、(0, 0)です。

これを前提に作っていきます。

Local Page Stateにプレイヤーと敵のX、Y座標を保持

以下のように座標を保持します。

  • fireXAlignmentに炎のX座標を保持

  • playerYAlignmentにプレイヤーのY座標を保持

  • playerInitialYにプレイヤーの初期Y座標(1)を保持

  • fireInitialXに炎の初期X座標(1)を保持

  • jumpIsAscendingにジャンプした時に上昇中か否かを保持

  • jumoPeakHeightにジャンプした時の最大の高さを保持

こんな感じです。

スタートボタンの実装

次にスタートボタンを押した時の挙動です。以下のようにStart Periodic Actionを設定し、インターバル時間毎に繰り返し処理を行うようにします。

次に、以下のように炎のX座標をデクリメントしていき(つまり少しずつ左に移動するようにする)、敵が迫ってくるような挙動を作ります。

その後にはある一定の位置まで来たらX座標を元に戻してまたループして襲ってくるような動きにしました。

プレイヤーのジャンプアクションを定義

最後はジャンプした時の挙動です。Stackのクリックアクションに書いていきます。

最初にjumpIsAscendingをTrue(上に上がってる状態)にセットします。

そこからPeriodic Actionをスタートします。

あとは、ジャンプが上昇中の場合はプレイヤーのY座標を少しずつ減らして(つまりプレイヤーは上に移動する)、高さがjumoPeakHeightを超えた時にはjumpIsAscendingをFalseにします。(左側の赤枠のロジック)

そのあとは右側のロジックに入り、今度はプレイヤーのY座標を増やして(プレイヤーは下に移動する)あげて、地面の位置より下になったらperiodic actionを止める、、、という感じです。

これだけで完了です!簡単ですね。

Youtube動画:FlutterFlowでレトロゲーム

細かい実装方法はこちらのYoutube動画でも解説しているので興味のある方はこちらもどうぞ。

動画:FlutterFlowでレトロゲームを作ってみた①

動画:FlutterFlowでレトロゲームを作ってみた②

FlutterFlowでレトロゲーム開発:まとめ

今回はマリオ的なレトロゲームのシンプルなやつを少し作ってみました。
面白いですね。

X・Y座標の使い方やperiodic actionなど勉強になりました。

FlutterFlowでできることはどんどん増えているので、これからもキャッチアップ・発信を続けていきたいなと思いいます。

アプリ・Webサービスの開発の無料相談はこちら

FlutterFlow、Adalo、bubble、STUDIOなどのノーコードツールを使うことで、リスクを抑えて低コストでスピーディにビジネスアイデアを形にすることができます。

この機会に、温めていたビジネスアイデアを今すぐ形にしてみませんか?

弊社はスタートアップ・新規事業向けにコストを抑えた最速のアプリ・Webサービスの開発、さらにはサービス立ち上げのコンサルティングから提案を行なっております。

また、法人向けにノーコードのスクール事業を通して内製化のサポートも行っています。

アプリ/Webサービスの開発、LPなどの構築に興味のある方は、こちらからご気軽にご相談ください。