Project Anthem(TCストライカーズ)

ぷろじぇくとあんせむ公式サイトであり雑記ブログ。当サイトはリンクフリーです。

 TCストライカーズ2をバージョン1.42へアップデートしました。

 ダウンロードはここから

今回は

1.スコアアイテム取得時に獲得スコア表示
2.ボス戦前後でオートショットが途切れないように修正
3.ライトモードの調整
4.ローディング画像追加
5.リファクタリング


を行いました。必要のあるものだけ解説します。


スコアアイテム取得時に獲得スコア表示


キャプチャ


 実は本作ではスコアアイテムの獲得スコアが一定ではありません(ミスですけどね)。自機がアイテムに近づくとアイテムを吸引するのですが、その際に吸引した距離に応じてスコアが変動します。長い距離引っ張ったほうがスコアは上がります。


経緯↓
  1. 当初は吸引がなく一律400点。
  2. ver1.1で吸引を実装する。
  3. 吸引中(アイテム獲得前)も1フレームに付き400点入っていた(今回まで気づいていませんでした)。
  4. ver1.42から獲得スコアを表示する。
  5. 獲得スコアが変動しおかしいことに気づく

ということで、エラーを活かして獲得スコアが一律ではないようになってます。特殊な動きをすることで10000点近いスコアを出すことができます。超暇な方はやってみてください。



ライトモードの調整

 ディフィカルティ構造体を実装したことでライトモードの弾数等を視覚化できました。それを踏まえて見直すとレベルカーブがよろしくないことが分かりました。ちょうどいい感じで初心者⇒ライトモード⇒オリジナルモードと進めるよう調整しました。今までライトモードをプレイしてくれた方ごめんなさいm(_ _)m



リファクタリング

 大幅に改善しました。このゲームは第13回ふりーむコンテストのために急いで作ったものでして、コード的におかしい部分もありますがなんとか期限に間に合わせました。しかし、そういうコードって人に見られたくないですよね。ゲーム自体もいつ不具合が起きるか不安で仕方なかったのです。これではユーザーさんも気持ちよくプレイしていただけないので、改めてプログラミングを体系的に学習しリファクタリングしました。その御蔭で、コードもわかりやすくなり私自身、どこで何をしているのか明確に答えられるようになりました。
 こうなると心からこのゲームを勧められるようになりますし、エラー報告を頂いても容易に修正できることでしょう。



 これでTC02の開発は一旦終わりにして新作の開発に臨めそうです。

 スターシーケンスというのは私がそう言っているだけです。何かと言うと、ボスや大型機を破壊した際に周囲に円形にアイテムを放出するシステムのことです。

 ボスを破壊した際のアクションが寂しかったので賑やかにするために作成しました。


 
 引数で半径と個数を設定します。きちんと1周するように作ったはずなのですが、個数を増やしすぎるとつながらない部分が出てきますね。ちょうど視力検査のCみたいです。もし、☆ではなく弾ならばこれも弾幕になりますね。

 丁寧に作っておくと色々なことに応用できます。上述のように弾にすればそれだけで1つパターンを作ることができますし、弾セットにすればより面白いものになりそうです。


 他ゲームに見るスターシーケンス

 Eden’sEdge


 
 RedNeg3Stars
  
 
RedNegの方は星の位置が若干ランダムになってるんですね。これもかっこいいですね。


とりあえず


ちょっと古いですが、面白い記事をみつけました。

 

【東方】弾幕スクリプトってこんなシンプルに書けるもんなのか…



 コメントでも書かれていますが、さっぱりわからん・・・。

 東方はC++で書かれているということですが、弾幕用になんか言語っぽいものをお作りになったのでしょうか。

 これをそのまま利用するのは難しすぎます(ノд<。)しかし、引数で難易度毎に弾幕を調節する手法はできそうですね。今回私はディフィカルティ構造体という難易度別に値が変化する構造体を作り、それを引数にとるよう弾幕パターンを書きました。


・ディフィカルティ構造体

 struct D
    {     
int n

       public D(int light,int original)
        {
                 n = (G.D == 0) ? original:light;
        }
    }

//難易度を設定すると難易度に対応した値を代入する。初期化時に引数で各値を設定。D.nの形式で使用。



・攻撃パターンメソッド

 void Around(D d)
        {
            for (int i = 0; i < d.n; i++)
                if (c % 60 == 15 * i) Add(new SetAround(bsP, Sc.lr));
        }

//D構造体のメンバーnを利用する



・スレッド処理

OnUpdated(){
Around(new D(3, 5));  //ライトでは3、オリジナルでは5が代入される
}




すいませんorzコーディングの解説はなれておらず自分でも見にくいと思っています・・・今後改善します。

ともかく、zunさんほど美しくはありませんが、難易度別の調整が随分簡潔になりました。私のゲームは難易度2段階ですが、4段階で作る場合はより恩恵があると思います。

そもそも、みなさんがどうやって書いているのか知りません。もし、機会があればそういうトークもできるといいですね。龍神録にのってるのかな・・・

 今回の開発では規格(サイズ)をきちんと決めるようにしています。まあ、先に決めるのが普通なのでしょうが・・・。前回は前半ステージと後半ステージの規格が変わってしまい修正に時間を取られてしまいました。今回は作り直しがないよう慎重に進めています。

 例えばこれはTSカットイン画像なのですが、
pose

 下の方はゲームでも表示されません。”とりあえずこのくらい作っておけば大丈夫だろう”、”自分ががんばればいい”と思っていましたが、もう頑張れません…。できる限り作業量を減らしてから素材作りに入らないと息切れしてしまいます。


 ゲームで表示されるのは上の部分だけです。最初からこのサイズで作ればよかったです。1枚だけならそれほど負担でもありませんが、5ステージ分となると結構な量です。

 pose

 
 こんな風に素材作りの前に必要サイズを確認しておくと作業が楽になりますね。ただ、この手法だと目立つ変化がなく開発序盤は退屈です。

 こんな風に下絵の段階でチェックしています。


 
 カットインがスカッと決まってくれればいいのだが、今の組み方では遅いな・・・。今回は引数にパスを取ってその場で生成する方式をおおく採用しているのですが、画像が大きくなる、処理が重なると重くなりますね。


 お し ま い 
 

久しぶりに諏訪大社に行ってきました。

東方を知ってもう10年になるんですね。私が初めて買ったのは東方地霊殿でしたが、当時すでに諏訪大社=東方となっていました。今回も2005年からコミケ皆勤賞の友人と詣でに行きました。

P_20181124_110059

当然のごとく車内BGMは東方アレンジ。ツレも最近はeast new sound とaristromeria recordしか買ってない模様。

下道で4時間かけて到着。男二人、土地の名産とか興味なく近くのセブンイレブンで昼食。

P_20181124_132219

P_20181124_131105

P_20181124_132054


 ここの楽しみは東方絵馬です。といっても普通の絵馬にファンが勝手にキャラクターを描いているだけなのですが。



P_20181124_131851


 え・・・

 以前は一面覆い尽くすほどにかけられていた東方絵馬が一枚もありません。時代の流れですかね・・・。八雲家の痛車が1台ありました。

 時間もあったので下社へ移動。諏訪湖のほとりを周回しながら30分程で到着。


 こまりちゃんが凛々しく迎え入れてくれます。

 P_20181124_141013
P_20181124_140854

P_20181124_140901

 753の家族連れに結婚式が3組。上社よりこっちのほうが賑やかですね。

 こっちも絵馬ないだろうな、と諦め気味で見に行くと

P_20181124_141246

 おお!

 P_20181124_141530

P_20181124_141534

P_20181124_141537

P_20181124_141548

 あったー(ノд<。)東方文化はまだ継承されていました。まあ神社側のお墨付きがあるわけではありませんが、撤去されていないということは東方絵馬もOKということでしょう。
 以前に比べて数は少なくなっていますが、確認できました。
 
 以前はたくさんあったので自分は書かなくてもいいかと思っていましたが、数が減ってくると自分が継承しなければならない、と謎の使命感が出てくるものです。もし、行く人いらっしゃいましたら是非書いていってください。一応絵馬台は諏訪大社の収益になります。いづれ諏訪大社詣でオフ会なんかもできたらいいですね。







↑このページのトップヘ