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


    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

タイトル画面の実装 1時間目(全5時間)

タイトル画面作業の初回は、コーディングをせずに概要をまとめます。

とりあえずは単純な面クリ型のアプリでリリースしようと思っているので、このアプリの主なモードとしては

1.ストーリーモード
用意された定型のステージをクリアしていくモード。ロジックボードやロジックパネルの仕組みを段階的に理解できるような構成を想定。

2.飼育場
ロジックパネル “copy” での複製時、ランダムでロジックパネルを変更する環境。これにより、自然界の淘汰の仕組みを利用して特定環境に自動でロジックを最適化させる。

を考えます。将来的には対戦を想定しているため、

3.対戦モード
他のプレーヤーと対戦するモード。勝てば相手のロジックパネルや経験値を奪ったり、負ければ逆に奪われる。対戦モードは大きく2つのパターンを想定し、特定環境で特定ロジックを組んで待ち受けるパターンと、逆に相手の環境に挑戦するパターンがある。待ち受ける場合と挑戦する場合で褒賞は変わる想定。詳細は未確定。

を追加予定です。

とりあえずは、タイトル画面での選択肢として、1と2のボタンを用意できれば良いと考えています。

  • 明日の作業

タイトル画面の実装 2時間目(全5時間)

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


    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

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

ステージクリア時、セーブデータへクリアしたという情報を書き込み、初クリア時はロジックパネルを取得できるようにしました。

少し横道にそれましたが、これでクリア演出の処理が終了しました。

  • 明日の作業

タイトル画面の実装 1時間目(全5時間)

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


    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

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

ハイボール飲みながらアプリ作業しようとしたら眠ってしまい、ふと時計を見たら朝の7時でした。
アプリ作業終えてからお酒飲むのが正解でした。

  • 明日の作業

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

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


    ∩∩
   (´・ω・)
   _| ⊃/(___
 / └-(____/
  ̄ ̄ ̄ ̄ ̄ ̄ ̄

  • 本日の作業

追加作業 クリッピング処理

メニューの裏のロジックパネルを描画しないよう、クリッピング処理を行いました。

スクリーンショット 2016-01-13 7.37.33

↑の画像が↓になりました。

スクリーンショット 2016-01-13 23.39.20

SKCropNodeは使わないで、zオーダーと透明度を調整しました。
超スッキリした。ヽ(´▽`)ノワーイ

  • 明日の作業

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

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

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

  • 本日の作業

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

を中止し、

メニューの裏のロジックパネルを描画しないよう、クリッピング処理を行おうとしました。

スクリーンショット 2016-01-13 7.37.33

この画像のように、メニューの後ろにはマップを薄く描画するようにしていますが、同時にロジックパネルも見えてしまっています。

結果的には、SKCropNodeというクラスでクリッピングが出来そうだと考え、色々試行錯誤しましたが出来ませんでした。単一画像のマスクのサンプルコードはあるようなのですが・・・

  • 明日の作業

横道にそれますが、もう少しクリッピング作業を頑張ってみたいと思います。SKCropNodeでなくても、zオーダーの調整でも出来ないか調べてみたいと思います。

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

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

  • 本日の作業

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

今回はクリア画面を具体的に作りました。

以下はゴールに移動した場合ですが、他のクリア条件の場合もそれぞれに対応したメッセージを表示するようにしています。

  • 明日の作業

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

ステージクリア時、セーブデータへクリアしたという情報や、初クリア時はロジックパネルを取得できるので、所持ロジックパネルを増やす処理を行います。

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時間)

大手には作れないアプリを(気持ちだけは(๑•̀ㅂ•́)و✧)