プロジェクト13
作成したゲームからキャラの動きの部分だけ抜き出してjsdo.itにアップした。 今後、jsdo.itでコードを書くときにここからForkしていけば楽になりそう。
9leap : ふわふわ by toburau - どこでも遊べる、投稿型ゲームサイト Twitterの凍結が解除されたので、さっそく9leapに投稿したゲームのバグ修正版をアップロードした。 コメントにあったバグは落下中にドクロに当たると復帰までに必要な入力回数が増え、ハ…
9leap : ふわふわ by toburau - どこでも遊べる、投稿型ゲームサイト 公開してすでに何人かの人にプレイしてもらっている。純粋に嬉しい。 自分では取れなかったほどの高得点を取っている人もいる。 ハングアップしてしまうというコメントがついていたので、…
9leap : ふわふわ by toburau - どこでも遊べる、投稿型ゲームサイト 一応、一通り遊べるようになったので、9leapへと投稿。タイトルは「ふわふわ」 もともと、バルーンファイトの浮遊感が気持よかったので、それを再現できないか試してみたのが始まり。 ゲ…
ソースコードを見なおしていたら、プレイし続けているとバグとなってしまう可能性のあるコードが見つかった。 自分のゲームの腕前ではそこまで達することが出来ず、テストプレイでは気が付かなかった。テストプレイ用に無敵などのデバッグ用操作も実装してお…
スコア表示や難易度調整などを実装して、とりあえず一通り最初から最後までプレイすることができるようになった。 あとはもうちょっと体裁を整えてから、公開する予定。
テストプレイを繰り返している。 最初は簡単すぎてなかなかゲームオーバーにならず単調になってしまっていた。なので、だんだんと難しくなるように調整しようとしている。が、ちょうどいい感じにするのが、なかなか難しい。
得点アップのアイテムと、ダメージのエネミーの出現比率を逆転してみた。今までは避けるほうがメインで消極的な動きとなっていたけど、今度はアイテムを取りに行くため、積極的に動くようになって、前よりも面白くなったかも。 逆転させただけで、ここまで印…
テストプレイを繰り返していたら、数字描画で桁が上がったときに表示がおかしくなるバグが見つかったので修正。 普段使う値だけでなく、ちょっと極端な値を入れてみてテストしてみることも忘れないようにしないと。
スコア計算を始めてみたら、リスクばっかりでリターンがほとんど無いことに気が付いた。リターンが得られるようなアイデアを入れないと。
ゲームオーバーの処理を追加。そこでスコアの計算をまったくやっていなかったことに気が付く。さて、どのような得点のシステムにしようか。
数字を描画するためのSpriteやSurfaceを毎回作り直すのではなく、一度作ったものを使い回すようにコードを変更。 これでリソース的にも処理負荷的にも有利になっただろう。
座標が正しく更新できなかった原因は特定できた。しかし、どうやって回避するか検討中。 さらにあまりよくないコードだったらしく、一度、enchant.jsのライブラリ内で落ちてしまうことがあった。ちょっと設計を変えないとだめなようだ。
作成した数値描画のクラスを使って、ゲーム内の数字表現を実装開始。 数値自体は期待した通りに出るのだが、表示位置がうまくいかない。座標の指定が間違っているのだろうか。
相変わらず、数字描画クラスを調整中。 間延びした感じに見えたので、数字の間隔を狭めてみたらいい感じになった。 プロポーショナルフォントのように数字ごとに間隔を設定したらもっと良くなるかもしれない。ただその場合だとスコアやタイマーなど表示がカ…
数字描画クラスで作成した後に値を変更できるように改良。 ただ、また新たにSpriteやSurfaceを作り直しているが、パフォーマンス的にはどうなのだろう。もっとうまい方法は無いかな。
作成した数字描画クラスを使って、数字を描画しようとしたが、値が途中で変わるような場合に対応していないことに気が付いた。 敵を倒したときの得点表示や1回の攻撃で受けるダメージ数などの表現には問題ないけど、カウントダウンとか数字が変わっていく場…
引き続き数字の描画を実装中。 0の扱いが非常にやっかい。0に対応するためにいろいろと工夫しなくてはならずコードが増えてしまった。とりあえず何とか実装できそう。
数字の桁を描画するのに、まずSurfaceを作成して、各桁の数字をdrawで描画。そのSurfaceをSpriteのimageとして指定する。これで1つのSpriteで数字の描画をすることが出来た。 見た目がちょっと大きい感じがしたので、drawで描画サイズを少し小さくして縮小し…
数字1つだったら、すぐに描画することが出来るようになったが、複数桁の描画となるとちょっと面倒。 単純に複数のSpriteを並べれば表示はできるけど、もっとシンプルに1つのSpriteでその中に数字を並べて描画したい。Surfaceのdrawメソッドで出来るかな。 似…
数字を表示するための元のテクスチャはenchant.jsに付属していたicon0.pngを利用している。 しかし、この数字の並びが1234567890となっていて、frameが0のときに1の文字となる。これが0から並んでいたら、もっとコードが簡単になったのに。
得点などの数字を表示するために、数字クラスを作成開始。 ただ数字を表示するだけなら簡単だけど、桁とかサイズとか対応させようとしたらいろいろと大変。とはいってもやりかたは分かっているので地道にコードを書くのみ。
プレイヤーがやられてしまったときのアクションを追加。 ふと思いついたアイデアだったのが、思っていたよりもいい感じに実装できた。もともとはあるゲームに実装されていたものを思い出して適用してみた感じ。単調になりそうだったゲームプレイにいいアクセ…
プレイヤーが敵キャラにやられてしまったときの処理を追加。 プレイヤーにヒットした敵キャラは消すようにして、プレイヤーをやられパターンに切り替えたら、前よりは当たり判定のずれは目立たなくなった。でもやっぱり重なっているのにやられ状態にならない…
敵キャラも複数出てくるようになって、テストプレイしていると、当たり判定がちょっと微妙な感じがしてきた。 スプライト同士の矩形で判定するIntersectだと透明な部分もあるキャラ画像だと当たっていないように見えているときでも当たったと判定されてしま…
ステージに敵キャラをランダムに追加するようにした。 これでとりあえず避けるだけだけど、最低限ゲームとしての形になった。ここからゲームとして面白くしていくのだが、これが一番難しい。
敵キャラとプレイヤーの当たり判定を実装。 今回は敵キャラ側でプレイヤーとの当たり判定をするように実装した。
敵キャラの作成中。 最初から付いているキャラ画像の中にはイメージに合うものが無かったので、とりあえず適当なものを選んで使って実装。あとで自分で書くか、フリー素材から見つけてイメージに合うものを見つけて入れ替えよう。 敵キャラはクラスで作成。…
ちょっとしたアイデアを思いついたので、プレイヤーの状態を表す変数を追加して、状態遷移するようにコードを書き換え。 それにともなって、やられた状態のクラスを作成するのをやめて、プレイヤークラスで表現するように変更。こっちのほうがシンプルで分か…
ゲームオーバー時の演出を実装中。 キャラクターがやられたときの動きを新たにクラスを作成して登録するようにした。なんとなくクラスを使い方が分かってきた気がする。