BulletMLを使ってシューティングゲームを構築すると、 こんな形に落ち着くのでは、というkenmoの実装例をメモ書き。 BulletML BulletMLはどんなものか簡単に解説しますと、 XMLを解析して「弾幕」を生成するだけです。 なので弾を発射する「敵」の動きは別に作る必要があります。 そこでkenmoが考えたのが、 BulletML:弾幕生成 スクリプト:敵の出現パターンの生成 という役割分担です。 これにより、メインループとなるシーンクラスから、 敵クラスと弾クラスの分離を行おうと考えたわけです。 あと、BulletMLの仕組みについて押さえておきたいのが、 「Action」と「Bullet」というクラスから成っている、ということです。 この2つのクラスは互いに集約(参照)している、という関係を持っています。 そして、BulletMLのエントリポイントが「topAction(
または ぼくが試行錯誤しながら学んだこと、あなたにその必要がないように。 または 私はいかにして心配するのをやめて blit を愛するようになったか。 Pygame は SDL のための Python 用ラッパで、 Pete Shinners によって書かれたんだ。これが意味するところはだよ、 pygame を使えば、Python で書かれたゲームやら 他のマルチメディアなアプリケーションやらが、なんの修正もなしで 他の SDL をサポートしてるプラットフォーム (Windows, Unix, Mac, beOS やその他いろいろ) で走るってことだ。 Pygame を覚えるのはやさしいかもしれない。でもグラフィックス プログラミングの世界ってのは初心者にとってはえらくややこしい。 ぼくがこれを書いたのは、これまで何年か pygame と その先行者であるところの pySDL と格闘してき
実は、kenmoが今作っているゲームのソースコードが結構大変なことになっちゃっていたりします。 というのは、ゲームのメインとなるシーンのクラス(SceneMain)に、 たくさんのTask(オブジェクト)がぶら下がっているからです。 …えーと、こんな感じ(´д`; つ まあ、ぶら下がっているTaskが2つぐらいなら、この方法でも良いのですが、 3つ以上になると、それぞれのTask同士の通信(主に当たり判定とか)が複雑になってしまい、 SceneMainクラスの仕事が増えたり、変なフラグが増えたりして、ブクブクと太ってしまいます。 …そんな感じで、 (あと、ほかにも5,6個Taskがあって) おかげでSceneMainが1000行を突破しちゃっています。 (まあ、1000行くらいたいしたことないのかもしれませんが…) そこで、 「何とかせねば…」 と考え、とりあえずリファクタリングした結果、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く