3日坊主で終わらないためのアプリ開発日記 19日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ステージクリア演出 3パターン 3時間目(全5時間)

前回、クリア判定処理を行ったので、今回はその判定直後にクリア画面を表示することになっていました。

まず、クリア判定を実装した各ユニットのクラスであるCharaUnitクラスから、実際にクリア画面を描画するMenuクラスまで情報の伝達を行うようにします。

各クラスは以下のような関係です。

GameViewController
┣ GameScene
┃  ┣ LogicBoard ロジックボード描画
┃  ┗ Menu メニュー描画
┗ MainView
┣ Stage ステージデータ
┗ Charas ユニット管理
┗ CharaUnit 各ユニット

ですので、CharaUnitからCharas、MainView、GameViewControllerの順で通知を行い、そこから更に、GameScene、Menuの順番で情報を伝達しました。

  • 明日の作業

ステージクリア演出 3パターン 4時間目(全5時間)

今回、情報の通知処理に手間取ってしまい、クリア画面の表示までは行きませんでした。次回こそはクリア画面を具体的に作っていこうと思います。

3日坊主で終わらないためのアプリ開発日記 18日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ステージクリア演出 3パターン 2時間目(全5時間)

各ユニットに目的プロパティと目的達成判定メソッドを持たせて、クリア判定を実装しました。

目的プロパティが「自ユニットを特定位置に移動」ならば、毎ロジックパネル実行後に自分の足元がゴールかチェックします。

「敵ユニットを全滅させる」ならば、毎ロジックパネル実行後に、環境内に自分の種族以外がいないかチェックします。

「自ユニットの個体数を特定数以上にする」ならば、毎ロジックパネル実行後に、環境内に自分の種族の合計数が特定以上かチェックします。

  • 明日の作業

ステージクリア演出 3パターン 3時間目(全5時間)

今回クリア判定処理を行ったので、次回はその判定直後にクリア画面を表示します。

3日坊主で終わらないためのアプリ開発日記 16日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ステージクリア演出 3パターン 1時間目(全5時間)

ステージクリア演出の初回は、コーディングをせずに概要をまとめます。

クリア条件は以下の3つです。クリア時に、それぞれのクリア条件に応じたメッセージを一定時間表示します。

1.自ユニットを特定位置に移動
「Logic success!! Moved to goal!」
2.敵ユニットを全滅させる
「Logic success!! Eliminate enemies!」
3.自ユニットの個体数を特定数以上にする
「Logic success!! Seeds of prosperity!」

メッセージを表示してから一定時間後「STAGE SELECT」「TITLE」の2つのボタンを表示します。

  • 明日の作業

ステージクリア演出 3パターン 2時間目(全5時間)

3日坊主で終わらないためのアプリ開発日記 14日目

100日目にはアプリが公開されているはず。楽しみだなぁ。
吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ロジックパネルの取得方法をどうするか考える 2時間目(全2時間)

前回挙げた案から、どれを採用するか検討します。

とりあえずサーバーなしで、単純なステージクリア型アプリとして完成させようとしているので、前回挙げた案の中からだと

・・・
・・

1.ステージクリアで取得

各ステージごとに固有のロジックパネルを1回だけ取得出来るようにします。アプリの性質上、同じロジックを組めば何度でも完璧にクリア出来る想定なので、1回だけ取得可能とします。

これしかないな・・・

今日は5分で終わった。
なんか寂しいのでチャーハン作るよをパク・・オマージュしたアプリ作るよのAA貼っときます。

 
  ∧,,∧
 (;`・ω・)  。・゚・⌒) アプリ作るよ!!!
 /   o━ヽニニフ))
 しー-J

  • 明日の作業

ステージクリア演出 3パターン 1時間目(全5時間)

3日坊主で終わらないためのアプリ開発日記 13日目

100日目にはアプリが公開されているはず。楽しみだなぁ。
吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ロジックパネルの取得方法をどうするか考える 1時間目(全2時間)

全2回なので、1回目は案を挙げたいと思います。

1.ステージクリアで取得

各ステージごとに固有のロジックパネルを1回だけ取得出来るようにします。アプリの性質上、同じロジックを組めば何度でも完璧にクリア出来る想定なので、1回だけ取得可能とします。

2.ログインボーナス(1日1個) ※サーバ準備前提

1日1個、ランダムでロジックパネルを取得可能とします。

3.対人戦で奪い合う ※サーバ準備前提

対人戦で勝利した場合、相手のロジックボードに実際に配置されていたロジックパネルをランダムで取得可能とします。

4.アイテム課金 ※サーバ準備前提

ちゃんと考えてロジックを組めば、お金をかけたプレーヤーに対人戦で勝てるバランス前提で、アイテム課金で取得可能とします。

  • 明日の作業

ロジックパネルの取得方法をどうするか考える 2時間目(全2時間)

今回挙げた案から、どれを採用するか検討します。

3日坊主で終わらないためのアプリ開発日記 12日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ロジックパネルの個数化 5時間目(全5時間)

ロジックパネルを配置したロジックボード全体をセーブ出来ますが、そのデータをロードする際に、所持ロジックパネル数以上のデータをロード出来ないようにします。

下記のように、”slot2″に6つの”歩く”ロジックパネルがセーブされていますが

スクリーンショット 2016-01-03 23.07.39

ユーザーの”歩く”ロジックパネル所持数を3に設定した上でslot2をロードしようとすると、以下のように足りない分は表示されません。

notenough

今回で、ロジックパネルの個数化作業は完了しました。これでロジックパネルをアイテムとして取得・コレクションする楽しみが増したと思います。

  • 明日の作業

ロジックパネルの取得方法をどうするか考える 1時間目(全2時間)

3日坊主で終わらないためのアプリ開発日記 11日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ロジックパネルの個数化 4時間目(全5時間)

ロジックボードに、ユーザが所持しているロジックパネル数以上を配置出来ないように制限をかけました。

  • 明日の作業

ロジックパネルの個数化 5時間目(全5時間)

ロジックパネルを配置したロジックボード全体をセーブ出来ますが、そのデータをロードする際に、所持ロジックパネル数以上のデータをロード出来ないようにします。

3日坊主で終わらないためのアプリ開発日記 10日目

吾輩はやれば出来る子である。
    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

ロジックパネルの個数化 3時間目(全5時間)

ロジックパネルの選択画面で、所持しているロジックパネルの個数を表示するようにしました。
IMG_0343

GameSceneクラスとMainViewクラスの両方でUserDataクラスを参照することになったので、GameViewControllerクラスにUserDataクラスを置き、各クラスに渡して参照することとしました。

————- GameViewController.h ————-

@interface GameViewController : UIViewController {
GameScene *_scene;
MainView *_mainView;
UserData *_UD;
}

————- GameViewController.m ————-

// ユーザーデータのロード
_UD = [[UserData alloc] init];
if (![_UD load]) {
// 初期値
[_UD addLogicPanel:KIND_ACTION data:LP_A_WK num:3];
[_UD addLogicPanel:KIND_ACTION data:LP_A_RT num:2];
[_UD addLogicPanel:KIND_ACTION data:LP_A_LT num:2];
[_UD addLogicPanel:KIND_JUDGE data:LP_J_FW num:1];
}

  • 明日の作業

ロジックパネルの個数化 4時間目(全5時間)

ロジックボードに、ロジックパネルで表示された個数以上を配置出来ないようにします。