第148回、はっぴー☆ちゃんねる:Shooting


えてぃ「おは☆はっぴ〜♪」
しん 「第148回はっぴー☆ちゃんねる!ナビゲータのしんに」
えてぃ「アシスタントのえてぃでっす!」


しん 「Shootingを作っているのです」
えてぃ「何よ、藪から棒に」
しん 「この夏の自分に課した課題」
えてぃ「…他の課題は?」
しん 「とりあえずこのシューティングでなにをやりたいのかというと」
えてぃ「無視かい」
しん 「もう三年位前になるんだけどJAVAでシューティング作ったんだって。当時まだプログラマーとも呼べないような(今もだけど)プログラマー一年生だったんで、敵やステージも全部クラスにべた書きとかね。今回の変更点は以下の通り♪」

3年前の実装 今回の実装
言語 JAVA C++
グラフィック 2D OpenGLによる2D(背景は3Dを希望)
コントローラー マウス USBコントローラー
全画面化 未対応(Javaってできるの?) 対応
プラットフォーム Javaなのでクロスプラットフォーム クロスプラットフォーム
敵やステージ ソースべた書き 外部ファイルからの読み出し(今は俺形式。もしかしたらXML)
弾の管理 敵-弾 敵-スキル-弾

えてぃ「よく分からないけど進歩してるようには見えるわね。で、完成したわけ?」
しん 「いや、ぜんぜん。今こんな感じ」

えてぃ「背景がなかったり、ステータス表示がなかったり、確かにまだ未完成って感じね。…っていうかまたFFですか」
しん 「あーそこにある画像や曲はダミーだけどね。(じゃないと公開できない)」
えてぃ「ま、そりゃそうでしょうね」
しん 「とりあえず今こんな状況」

終了
・タイトル画面やプレイシーンなどのシーンの移動
・ジョイスティックのラッパー
・音楽再生キットのラッパー
・ステージのファクトリクラス
・敵の実装(動きのみ)
・弾の実装(動きのみ)
・スキルの実装(動きのみ)
未実装
・弾とキャラクター及び敵との衝突判定
・背景の実装
・その他いろいろ(まだ考えてない)

えてぃ「衝突判定ができてないんじゃまだぜんぜんシューティングじゃないわね」
しん 「まあね〜。今回は前回と違って構造の設計をかなり意識して作ってる」
えてぃ「というと?」
しん 「あとで追加機能をつけたりとかしやすい設計。動きとかも関数ポインタを渡してやることで複雑な動きを演出したりとか」
えてぃ「複雑な動きってこのなんか弾が円形に広がっていくのとか?」
しん 「そうそう。三年前からすればそれなりにプログラム技術ついたからいろいろできて楽しいよ。完成したら公開したいけど」
えてぃ「けど?」
しん 「背景の3DCGを作る気がしない…」
えてぃ「あー、あんた3DCGのセンスだけはどうしようもないもんね」
しん 「東方とかの背景ってどういう実装をしてるんだろうね。Xファイル読み込んでるのかな?それとも静止ファイル(wavefrontとかメタセコイヤとか)を使ってるのかしら?」
えてぃ「さあ?…3D背景については、まだ公開できそうなレベルまでいってないけど、ある程度満足のいくところまでいったらここで募集かけてみたら?」
しん 「ここを見てくれてる人で3DCG作れる人、いるのかなぁ」
えてぃ「見てくれる人が増えるよう精進しなさい」
しん 「…精進します」


しん 「衝突判定が終わったらしばらくこのプロジェクトもストップだなぁ」
えてぃ「なんで?」
しん 「そろそろ夏休みの課題しないと」
えてぃ「…ってあんたは夏休み終了前の小学生か!」
しん 「なにを失礼な!全国の夏休み終了前の小学生に謝れ!」
えてぃ「ってあんた自分で全国の夏休み終了前の小学生未満であること自白してるじゃない」
しん 「…あれ?」