アンドロイドアプリ作成に挑戦!

アバター
gont
記事: 1
登録日時: 14年前
住所: 埼玉県

アンドロイドアプリ作成に挑戦!

投稿記事 by gont » 13年前

BallFire.png
BallFire.png (53.84 KiB) 閲覧数: 211 回
こんばんは。

アンドロイドアプリ作成に挑戦しようと思い、ミニゲームを作ってみました。
■タイトル:BallShot
■ゲーム内容:カラフルなボールが浮かんでいます。狙いを定めて撃ちましょう!

■操作方法:
画面をタップ→照準の位置へ向けて弾丸を発射します。
画面を押しながらスライド→照準の位置を移動します。

■画面のレイアウト:
真ん中の黒い丸→主人公です。
左上の数値→FPSです。
上のTIME→残り時間です。0でおしまいです。
右上のPOINT→得点です。高得点を目指しましょう!!!
左下のRボタン→リロードボタンです。タップすると残弾数が全回復します。
左下の青いゲージ→残弾数です。空っぽだと弾が発射できません。15発が最大です。
赤い丸十字→照準です。連射すると十字が広がってしまい、集弾性が悪くなります。
カラーボール→ターゲットです。撃ちましょう!
右下の黄色い枠:黄色いボールを破壊するとアイテムが選択できます。好きなアイテムをタップ!

■左から順番にアイテムの説明:
インパクト→弾丸をヒットさせたターゲットの動きが少しだけ止まります。
ロングマグ→最大30発まで連射できるようになります。
スナイパー→照準が広がらなくなります。

■黄色いボールは2回しか出現しません。自分の好きなアイテムの組み合わせで高得点を目指してください。

★BGM:http://panicpumpkin.omiki.com/
PANICPUMPKIN様よりお借りしました。
★効果音:http://osabisi.sakura.ne.jp/m2/
ザ・マッチメイカァズ様よりお借りしました。


上記のような内容です。


が、しかし一応遊べる状態ではあるのですが、未解決の問題があります。
アプリの終了処理です。
作っている最中に気が付かなかったのですが、アンドロイドのアプリって、戻るボタンなどで終了しても
中身が残ってしまうんですね。
finish()等を使って終了等も試したのですが、中々思ったような挙動をしてくれません。
staticなヤツを使いまくっているのが原因だろうか?
コイツの解決策が思いつかず、結局あきらめました。(おぃw

戻るボタンでアプリはひとまず停止しますが、最初からやり直すには、
ホームボタンで戻ってからタスクマネージャ等で強制終了させないといけないという仕様となっています(泣

何はともあれ、楽しく作成できたんでとりあえず良しとします。
予期せぬバグが潜んでいる可能性大ですが、しゃぁねぇからデバッグプレイしてやるよ!
という方はプレイして感想を聞かせてくれるとうれしいッス。

※注意
・アプリを選択するといきなりゲームが開始します。
・画面は横向き固定です。
・音が鳴ります。音量注意です。
・最初からやり直す場合はタスクマネージャから終了して下さい。
・バグっているかもしれません。
http://firestorage.jp/download/5e04de23 ... e90a5885b9


今回はそれっぽく動くアプリを目指して作成したので、品質がかなり悪いですが完成にします。
次からはもっときちんと構成などを考えながら作っていかなアカンと思いました。
終了処理などもきちんと実装して、もっと自信を持って公開できるものを作りたいです。

-MEMO-
以下、参考にしたサイト(一部)です。

Androidの館
・やっぱり頼れるこのヤカタ!

TechBooster SoundPoolで効果音を鳴らす
・効果音の鳴らし方を参考にしました。

蜉蝣舎フロントベース シューティングゲームと二次元ベクトル
・弾丸の発射処理を作る際に参考にしました。

アバター
bitter_fox
記事: 607
登録日時: 15年前

Re: アンドロイドアプリ作成に挑戦!

投稿記事 by bitter_fox » 13年前

勝手にソースコードを覗かせてもらいましたが、ずいぶんとstaticフィールドを使用していますね。

特に

CODE:

public class Clazz
{
	public static int n;

	public void method()
	{
		n = 100;
	}
}
といった風にstaticフィールドをインスタンスフィールドの様に使用するのはやってはいけない事のトップに来うることです。

onTouchEventに関する処理もstaticを使わないように出来ます。

戻るキーについては
http://android.roof-balcony.com/activit ... key-event/
などが参考になると思います。

アバター
gont
記事: 1
登録日時: 14年前
住所: 埼玉県

Re: アンドロイドアプリ作成に挑戦!

投稿記事 by gont » 13年前

bitter_fox さんが書きました:勝手にソースコードを覗かせてもらいましたが
うわぁぁあ恥ずかしい(笑
ソースコードって見れちゃうんですね。知らなかった。めちゃくちゃ恥ずかしいですわ(笑

とはいえ、アドバイスありがとうございます!

staticフィールドを使えば、色々なところから参照できるから便利かなぁと思っていたのですが、やっぱアレはやっちゃいけないんですね。次回からはstaticは極力使用を控え、別の方法で処理をできるように考えます。

参考URLもありがとうございます。戻るキーの取得(アプリの終了処理)についても、きちんと情報を集めようと思います。

もしまたアンドロイドアプリを作ったときは、見栄えの良いソースコードを書くように心がけます!(常にそうしろw
そのときは是非またアドバイスよろしくお願いします!

アバター
bitter_fox
記事: 607
登録日時: 15年前

Re: アンドロイドアプリ作成に挑戦!

投稿記事 by bitter_fox » 13年前

gont さんが書きました:
bitter_fox さんが書きました:勝手にソースコードを覗かせてもらいましたが
うわぁぁあ恥ずかしい(笑
ソースコードって見れちゃうんですね。知らなかった。めちゃくちゃ恥ずかしいですわ(笑
見れちゃいますねw
apkファイルからclassファイルを取り出せて、classファイルはデコンパイル出来ますのでw
gont さんが書きました: staticフィールドを使えば、色々なところから参照できるから便利かなぁと思っていたのですが、やっぱアレはやっちゃいけないんですね。次回からはstaticは極力使用を控え、別の方法で処理をできるように考えます。
恐らくしっかりと書けばstaticはわずかしか出てこないと思いますよ。
主な用途としては
・定数
・インスタンスの作成・ゲッター
・ユーティリティーメソッド(java.util.Collectionsなど)
などでしょうか。

アバター
gont
記事: 1
登録日時: 14年前
住所: 埼玉県

Re: アンドロイドアプリ作成に挑戦!

投稿記事 by gont » 13年前

>bitter_foxさん

ソース見れちゃいますか~しまったなぁ…(笑
途中でアプリの方向性とかを変えつつ作っていたので、はたから見たら意味不明なソースに見えてしまうのではないかと。クラスや変数の名前を直していませんし…w
bitter_fox さんが書きました: 恐らくしっかりと書けばstaticはわずかしか出てこないと思いますよ。
主な用途としては
・定数
・インスタンスの作成・ゲッター
・ユーティリティーメソッド(java.util.Collectionsなど)
などでしょうか。
staticは、使い道が結構限られているのですね。
危うく、staticだらけのプログラムを量産してしまうところでした。
とても参考になります。ありがとうございます!