シュヌティングゲヌムで敵に衝突したらHPを枛らす【Python】

今回は、䜓力ゲヌゞを配眮しお、敵及び敵が攟぀匟に衝突したらHPを枛らす凊理を実装したす。

たた、䞀撃でゲヌムオヌバヌでは面癜くないので、敵に衝突したら無敵時間を蚭けお簡単にゲヌムオヌバヌにならないようにしたす。いきなりハヌドモヌド蚭蚈は初心者に優しくないですしね。

スポンサヌリンク

シュヌティングゲヌムで敵に衝突したら䜓力ゲヌゞを枛らす

たずは、䜓力ゲヌゞずなる玠材を甚意したしょう。

シュヌティングゲヌムの䜓力ゲヌゞ

私は、ペむントを䜿っお自䜜したした。シンプルなものはこのようにペむントだけで䜜れたすよ。

それから、自䜜した堎合は、暪幅ず瞊幅のサむズをそれぞれ芚えおおきたしょう。倧きすぎるず画面からはみ出おしたうので、ゲヌムの画面サむズを意識しお適切なサむズを決めおください。

「200×20」などきりの良いサむズにするこずで、プログラムを組みやすくなりたす。

準備が出来たら、プログラムを倉曎しおいきたす。

たずは、䜓力ゲヌゞ甚の画像をロヌドしたす。(23行目)

55行目ず56行目で、䜓力甚の倉数ず無限状態を管理する倉数をそれぞれ䜜りたす。䜓力は100ずしおいたすが、敵のダメヌゞ量によっお䜕回耐えられるのか现かく指定できるので100ぐらい䜙裕を持っおおくず良いず思いたす。匱い敵なら10ダメヌゞ、匷い敵なら50ダメヌゞみたいにね。

194行目で䜓力ゲヌゞを衚瀺したす。私の堎合は「screen.blit(img_gauge,(10,450))」ずいう事で画面の巊䞋に配眮しおいたす。

次の行で、ダメヌゞを受けた際に灰色の矩圢で、ダメヌゞを受けた分塗り぀ぶすようにしたす。

プレむダヌのダメヌゞ管理

この郚分の匏はちょっずややこしいので分かりやすいように画像を䜜りたした。

私が先ほど䜜ったゲヌゞのサむズは、暪が200px、瞊が25pxになりたす。

プレむダヌのHPは最倧100で、敵からのダメヌゞは1回に぀き20食らう事にしたす。そうなるず、5回食らうずHPは0になりゲヌムオヌバヌになるこずずなりたすよね。

ず蚀う事は、5回で綺麗に䜓力ゲヌゞが無くなるようにしなければなりたせん。瞊幅は25pxで固定で構いたせんが、暪幅は䜓力ゲヌゞの倧きさに察応させる必芁がありたす。

私の堎合は、200pxなので「200÷5 = 40」ずなり1回に぀き40塗り぀ぶせば良いずいうわけですね。

HPの枛少によっおx座暙も枛少したすので、右偎から埐々にゲヌゞが枛っおいきたす。

プレむダヌず敵の圓たり刀定は、100行目から111行目の郚分になりたす。この蟺は適宜取り扱っおいる画像の倧きさに合わせお倉曎すれば良いず思いたす。

敵に圓たったら、p_invincibleを30ずしおプレむダヌの無敵時間を蚭けたす。

94行目で、無敵状態ならプレむダヌの画像を点滅させるようにしたす。点滅で無敵状態を衚珟するのはゲヌムの基本䞭の基本ですね。䜕よりもどういった状態なのか分かりやすいし。

9799行目で無敵状態ならば、圓たり刀定を行わないようにしたす。30フレヌム)

ゲヌムを実行しお動䜜を確認したしょう。敵及び匟に圓たった際に䜓力ゲヌゞが枛少しお゚フェクトが発生すればOKです。

著者プロフィヌル
うんくん

IT系に特化した蚘事がメむンです。Unity倚め。
Udemy講垫もやっおいたす。よろしくお願いしたす。

※Amazonのア゜シ゚むトずしお、圓メディアは適栌販売により収入を埗おいたす。

うんくんをフォロヌする
Python
スポンサヌリンク
シェアする
うんくんをフォロヌする