ゲームアプリ (Catch the Ball)

【Android Studio】ゲームアプリ開発入門 第10回「画面の向きの固定と戻るボタンの無効化」

Sara

2023年11月 Android Studio Giraffe | 2022.3.1 で動作確認済み。

ここまでの記事はこちら

今回は

  • START ボタン
  • 画面の向きの固定
  • 戻るボタンを無効化

を実装していきます。

解説

1. START ボタン

START ボタンを押したらゲーム画面(MainActivity)に遷移するようにします。

StartActivity.java を開いて、9~11行目を追加します。

public class StartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
}
public void startGame(View view) {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
}

必要なimportは2つです。

import android.content.Intent;
import android.view.View;

2. 画面の向きを固定

次に画面の向きを Portrait(タテ方向)に固定します。

AndroidManifest.xml を開いて、13・15・17行目を追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.codeforfun.catchtheball">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.CatchTheBall">
<activity android:name=".MainActivity"
android:screenOrientation="portrait"/>
<activity android:name=".ResultActivity"
android:screenOrientation="portrait"/>
<activity android:name=".StartActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

3. 戻るボタンの無効化

戻るボタンを無効化して

  • ゲーム画面から結果画面
  • 結果画面からゲーム画面

にそれぞれ戻れないようにします。

MainActivity.java を開いて、一番最後に onBackPressed メソッドを追加します。(12・13行目)

} else {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
action_flg = true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
action_flg = false;
}
}
return true;
}
@Override
public void onBackPressed() { }
}

戻るボタンが押されても何もする必要がないので、メソッド内を空にしています。

ResultActivity.java にも同じように onBackPressed メソッドを追加してください。

onBackPressed メソッドが Deprecated(非推奨)になりました。

以下のコードに変更してください。

@Override
protected void onCreate(Bundle savedInstanceState) {
    /* 省略 */

    getOnBackPressedDispatcher().addCallback(new OnBackPressedCallback(true) {
        @Override
            public void handleOnBackPressed() {}
    });
}

4. アプリを実行

アプリを実行して、戻るボタンと画面の向きを確認してください。

次に行うこと

次回はゲームに欠かせない効果音を実装していきます。

COMMENT

Subscribe
必ずお読みください!

投稿いただいたコメントは管理者の承認後に表示されます。

コードやエラーに関するご質問の場合は、以下の3点

  1. 開発環境(OS / ブラウザ / MAMP 6.6 / Android Studio Chipmunk など)
  2. エラーメッセージ
  3. お試しになったこと

できるだけ具体的に必ず書いてください。

Notify of
guest


0 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

POINT 01

動くコード

プログラミングの文法を学んでも、そこからどのようにアプリ開発ができるのかイメージが湧きにくいものです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなどアプリとして機能するものを作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

受講期限もないので、いつでも前のレッスンに戻ることができるので安心です。

お申し込みしたその日からすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました