MENU

Flutter初心者がテトリスを作ってみた話【効果音・BGM・スマホインストールまで】

Flutterを使えば、初心者でもスマホで遊べるゲームアプリを作ることができます。

今回実際に作ったテトリスには、次のような機能を入れることができました。

  • ライン消去の効果音
  • プレイ中のBGM
  • NEXTブロック表示
  • ハイスコア保存
  • 一時停止機能
  • スワイプ操作
  • スマホにインストールして遊べる

最初は「本当にできるのかな…」という感じでしたが、一つずつ進めることで、ちゃんとゲームとして遊べるレベルまで完成しました。

この記事では、その流れを私でも出来たように初心者目線でまとめます。


目次

Flutterでゲームを作る理由

FlutterはGoogleが開発しているアプリ開発ツールです。

一番の特徴は、1つのコードでスマホアプリが作れるというところです。

例えば、

  • Androidアプリ
  • iPhoneアプリ

どちらも同じコードで作ることができます。

最初は難しそうに見えますが、慣れてくると「UIが作りやすい」と感じることが多いです。


今回作ったテトリスの機能

最終的に下のような機能を追加して本格的なものに仕上げました。

機能内容
基本テトリスブロック落下
効果音ライン消去音
BGMゲーム中の音楽
NEXT表示次のブロック
レベルスピードアップ
ハイスコア最高記録保存
一時停止ゲーム停止
スワイプ操作スマホ操作

かなりゲームっぽくなります。

めいぶ

追加してかなりゲームらしく仕上がりました!


効果音を追加する

まず最初に追加したのは効果音です。

テトリスでラインが消えたときに「シャキーン!」みたいな音が鳴ると、かなりゲームらしくなります。

Flutterでは audioplayers というパッケージを使います。

pubspec.yaml に追加します。

dependencies:
  flutter:
    sdk: flutter
  audioplayers: ^5.2.1

そのあとターミナルで次を実行します。

flutter pub get

音ファイルの配置

プロジェクトの中に次のフォルダを作ります。

assets
 └ audio
     └ line.mp3

そして pubspec.yaml に登録します。

めいぶ

pubspec.yaml は、Flutterアプリの「設定ファイル」です。

簡単に言うと、

このアプリは「何を使って動くのか」をFlutterに伝えるファイル

Flutterプロジェクトでは、とても重要なファイルの1つです。

flutter:
  uses-material-design: true

  assets:
    - assets/audio/line.mp3

これでFlutterから音を読み込めるようになります。


BGMを追加する

次にBGMです。

ゲーム中に音楽が流れると、雰囲気がかなり変わります。

bgmPlayer.setReleaseMode(ReleaseMode.loop);
bgmPlayer.play(
  AssetSource('audio/bgm.mp3'),
);

この設定をすると、BGMがループ再生されます。つまり、ゲーム中ずっと音楽が流れ続けます。


NEXTブロック表示

テトリスを遊んだことがある人なら分かると思いますが、次に落ちてくるブロックが見えるとかなり遊びやすくなります。

そこで次のブロックを保存する変数を作ります。

Tetromino? nextType;

画面の横に表示することで、「次はこの形が来るんだな」と分かるようになります。


ハイスコア保存

ゲームを作るならやっぱり最高記録は残したいですよね。

Flutterでは shared_preferences という仕組みを使うと、スマホにデータを保存できます。

例えば

prefs.setInt('tetris_high_score', score);

こうすることで、アプリを閉じてもハイスコアが残ります。


一時停止機能

ゲームを作っていると意外と欲しくなるのが一時停止です。

例えば、

  • 電話がかかってきた
  • ちょっと休憩したい

そんなときに便利です。

Flutterではタイマーを止めるだけで実装できます。

timer?.cancel();

再開するときは

_startTimer();

を呼びます。


スマホ操作(スワイプ)

ボタン操作でも遊べますが、スマホならやっぱりスワイプ操作が自然です。

例えば

操作動き
右スワイプ右移動
左スワイプ左移動
下スワイプ落下
タップ回転

これを Flutter の GestureDetector で実装できます。


無料で使えるBGMサイト

ここで今回使った無料の音素材サイトを紹介します。

効果音ラボ

効果音ラボは、無料で使える効果音をダウンロードできる日本の人気サイトです。
ゲーム制作や動画編集、アプリ開発などで使える効果音が、初心者でも簡単に手に入ります。

>>効果音ラボ

https://soundeffect-lab.info

OtoLogic

>>OtoLogic

https://otologic.jp

OtoLogic(オトロジック)は、無料で高品質な効果音をダウンロードできる日本の音素材サイトです。
特に、アプリやゲーム、動画制作などで使いやすいシンプルで実用的な効果音が多いのが特徴です。

魔王魂

>>魔王魂

https://maou.audio

魔王魂(まおうだましい)は、無料で高品質なBGMや効果音をダウンロードできる音素材サイトです。
ゲーム制作や動画制作でよく使われており、特にBGMの種類が豊富なことで有名です。


スマホにインストールする方法

Flutterアプリは、最終的に APKファイル を作ります。

ターミナルで

flutter build apk

を実行すると

app-release.apk

というファイルが作られます。

そのファイルをスマホへ送ってインストールすると、自分のゲームがスマホで遊べます。

これはなかなか感動します。


開発中によく出たエラー

今回一番多かったエラーはこれです。

Duplicate mapping key

原因は

uses-material-design: true

を2回書いてしまうことでした。

YAMLでは同じ設定を2回書くとエラーになります。


まとめ

Flutterでゲームを作る流れはこんな感じです。

  1. Flutterプロジェクト作成
  2. テトリスロジック作成
  3. 効果音追加
  4. BGM追加
  5. NEXT表示
  6. ハイスコア保存
  7. APK作成
  8. スマホインストール

最初は難しく感じますが、一つずつ進めれば確実に形になります。


最後に

今回テトリスを作ってみて感じたのは、プログラミングは完成したときが一番楽しいということです。

特に自分の作ったゲームがスマホで動いた瞬間は、かなり嬉しい体験でした。

完璧なコードを書こうとしなくて大丈夫です。まずは小さく作って動かしてみること。それだけで、プログラミングは一気に楽しくなります。

めいぶ

今後もChatGPT×Flutterの記事を書いていきます!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

meibuのアバター meibu 中年ブロガー

【このブログを書いている人】
こんにちは、meibuです!
読者の「ちょっと気になる」「でも難しそう…」をやさしく解決したくてこのブログを始めました。

🔹プロフィールまとめ
◎ 本業は運送業の管理職
 → 現場からマネジメントまで幅広く経験

● 趣味はパソコン・ランニング・情報収集

●興味のあるテーマ:
 副業 / ChatGPT

● 発信スタイルは…
 → 「初心者にもわかりやすく」+「図解・たとえ話も使って解説」

● ブログの目的:
 日常に“ちょっと得する”選択肢を増やすこと
管理職の悩みを最近少し書いています

🔸こんな人に読んでほしい!
ChatGPTってなに?使い方がわからない方
管理職の職位に悩んでいる人
忙しいけど、自分の未来のために動きたい方

● 「読んでよかった!」と思える情報を、これからもコツコツ更新していきます!
当ブログはアフェリエイト広告を利用しています。

コメント

コメントする

目次