鳥小屋.txt

主に自作ゲームをつくったりしているよ。制作に関することやそうじゃないことのごった煮ブログ

かぼちゃ育成日記#2 - あと一ヶ月です

f:id:ru_shalm:20131201171054j:plain

前回までのあらすじ

前話:かぼちゃ育成日記#1 - 元旦制作がんばりたい

毎年恒例、1月1日にゲームを公開する元旦制作です。今年は制作報告付き。
今回はAS3/StarlingでSTGっぽい何かを作って、元旦にかぼちゃを飛ばしちゃうよ☆

で、明日から頑張る!!

で、実際に一週間戦った結果

f:id:ru_shalm:20131201170731j:plain

進捗ダメです!

くそ…僕がRuたんだということを忘れていた……そう簡単に進捗するわけがなかったんだ。。。

とりあえずやったことを書いてみます。

開発環境の整備

いまさらかよ!みたいな感じですが。

デスクトップのWindowsマシンで開発していたのですが、どうも最近あまりPCの調子が良くないです。HDDのアクセスがとても遅い感じなので多分SSDに変えたりすれば延命できそうな気もするのですが、もともと他のスペックが最高にいいわけでもないので(某ネトゲではテクスチャのアルファチャンネルが抜けなくて世界が板に覆われてしまった)わざわざお金をかけて延命するのもなぁ……と渋っています。

とはいえ、調子悪いマシンを使って開発するのは僕の精神衛生上よくないので、Macbook Airの上に開発環境を用意することにしました。これで調子の悪いデスクトップマシンを起動しないで開発できますね! 別にWindowsでもOS Xでも問題なく開発できる辺り、Flashさんは便利ですね。

あと、せっかくWindowsではないのでGitも使っていこうと思い(WindowsでのGit環境構築うまくいったことがない)、BitBucketに登録してみました。ZIPファイルをDropboxに投入するようなバックアップ方法はやりたくないですし。無料であそこまで使えるのはすごい。微妙にGitHubと違うところに戸惑うけど。

弾を飛ばす

僕のゲーム制作は完全に我が道突き進んでる感じなので、一体どうやって管理するのがいいのかはよくわかってないのですが、キャラクターと弾の管理について。

前の「お餅でGo!」をつくった時はSceneクラスが「プレイヤー配列」「敵キャラ配列」「プレイヤーの弾配列」「敵の弾配列」を持っていて、配列同士で当たり判定(二重ループだ!)していたので、今回もそれに近い感じで実装してます。

ただ今回は配列じゃなくて、各要素ごとにレイヤーという名のSpriteを作成して、それぞれのオブジェクトを各レイヤーにaddChildしておいて、あとで各レイヤーの子要素にアクセスしています。

// ショット→敵
for (var i:int = shotLayer.numChildren; i > 0; i--) {
    for (var j:int = enemies.length; j > 0; j--) {
        var shot:Bullet = shotLayer.getChildAt(i - 1) as Bullet;
        var enemy:Enemy = enemies[j - 1];
        if (shot.isHit(enemy)) {
            shot.hitTo(enemy);
            enemy.hitBy(shot);
        }
    }
}

こんな感じ。後ろからループ回してるのは途中でremoveChildとかするかもしれないので……あんま意味ないかもだけど。

でも、なんか遅そうだよね、感覚的に。とりあえず今はこのままでいいか。他の要素が揃ってきてここがネックになるようだったら別の方法考える。

画面下のバーは消す

前回悩んだ画面配置、結局余計なものはあまり表示しないようにするということで、画面全域をフィールドとして扱うようにしました。ボムボタンとか置こうと思ってたけど置けなくなっちゃったので、どうするか考えないとですね。

2本指タップとかいう謎操作も考えたけど、さすがに無いので今回はそういう操作は入れないつもり。たぶん。

現状の問題点

思ったより作業が進んでない。のでちょっとタスク一覧を書き出して、今週からはその中から優先度付けてやっていくことにします。間に合わなくなりそうだったら不要な機能から切っていく感じで。実績システムとか。Ruたんお得意のバージョン0.8リリースだ!

あと、画像などのリソース作成コストをあまり考えていないけど死ぬのでは…

次回予告

  • プレイヤーと敵にライフを設定できるように
  • 残りライフを画面上に表示
  • プレイヤー or 敵のライフが無くなったらクリア/ゲームオーバー扱いに(画面遷移はしなくておk)
  • プレイヤーの各スキルを実装(ワープ移動、ビット、強化弾、復活、ボム)
  • (できたら)プレイヤーの画像をつくる
  • (できたら)背景が動く

盛りだくさんだ! 頑張れ!!