「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > プレーヤーを見せながら、プレイヤーにゲームで弾丸を撃つにはどうすればよいですか?

プレーヤーを見せながら、プレイヤーにゲームで弾丸を撃つにはどうすればよいですか?

2025-02-22に投稿されました
ブラウズ:268

How to Make a Player Shoot Bullets in a Game While Keeping the Player Visible?

folling bullets withスペ​​ースバー

この質問には、スペースバーが押されたときに弾丸を撮影する機能を実装します。 &&&]

問題と解決策

askerのコードは、最初に撮影時にプレイヤーのキャラクターが消えるという問題がありました。これは、射撃とプレーヤーの動きが異なるループに分離されたためです。これに対処するには、両方の動作が同時に更新される単一のメインループにそれらを結合する必要があります。元のコードでは、無限に続く時間のループを使用しました。これを修正するには、弾丸が上部に到達したかどうかをチェックする条件で時間ループを使用する必要があります。 &&&]

Import pygame、os #BulerPlateのセットアップは簡潔に省略されています クラスプレーヤー: def __init __(self、x、y、height、width): ... def draw(self): ... def move_left(self): ... def move_right(self): ... クラスの弾丸: def __init __(self、x、y): ... def update(self): ... def draw(self): ... #弾丸のリスト 弾丸= [] #プレーヤーを初期化します p = player(600、500、50、30) #メインゲームループ run = true 実行中: Clock.Tick(100) #イベントを処理します pygame.event.get()でのイベントの場合: if event.type == pygame.quit: run = false if event.type == pygame.keydown: if event.key == pygame.k_space: bullets.append(bullet(p.x p.width // 2、p.y))) #オブジェクトを更新します keys = pygame.key.get_pressed() キーの場合[pygame.k_left]: p.move_left() キーの場合[pygame.k_right]: p.move_right() 弾丸のBの場合: b.update() #ポジションを更新し、画面外になった場合に弾丸を削除します b.y

キー変更:

撮影とプレーヤーの動きのロジックが単一のメインゲームループに結合されます。弾丸が画面が外れてしまい、それに応じて削除したかどうかを確認します。どちらも画面に存在するようにします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3