使用されるPygame関数スネークゲームで使用される関数
スクリーンの作成
pygameをインポートする pygame.init() dis = pygame.display.set_mode((400,300)) pygame.display.update() pygame.quit() やめる() これにはプログラムを実行する必要があり、次の結果が得られます。 しかし、このコードでは、プログラムの作成は一瞬で終わってしまいます。プログラムウィンドウを維持するコードを追加しましょう。 pygameをインポートする pygame.init() dis = pygame.display.set_mode((400,300)) pygame.display.update() pygame.display.set_caption('Edureka によるスネークゲーム') ゲームオーバー=偽 ゲームオーバーではない場合: pygame.event.get() のイベントの場合: print(event) # すべてのイベントを出力します pygame.quit() やめる() ゲーム ウィンドウの名前を追加し、 次にクローズ応答イベントを追加します pygame.init() dis = pygame.display.set_mode((400, 300)) pygame.display.update() pygame.display.set_caption('ヘビ') ゲームオーバー = False ゲームオーバーではない場合: pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー=真 pygame.quit() やめる() ゲーム ウィンドウが設定されたので、 ヘビの作成まず、 pygame.init() dis = pygame.display.set_mode((400, 300)) pygame.display.update() pygame.display.set_caption('ヘビ') 青=(0,0,255) 赤=(255,0,0) ゲームオーバー = False ゲームオーバーではない場合: pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー=真 pygame.draw.rect(dis, 青, [200, 150, 10, 10]) を描画します。 pygame.display.update() pygame.quit() やめる() このようにして、小さな青い点であるヘビが作成されます。 ヘビを動かす
pygame.init() pygame.display.set_caption('ヘビ') 白 = (255, 255, 255) 黒 = (0, 0, 0) 赤 = (255, 0, 0) dis = pygame.display.set_mode((800, 600)) ゲームオーバー = False 1 = 300 倍 y1 = 300 x1_変更 = 0 y1_変化 = 0 クロック = pygame.time.Clock() ゲームオーバーではない場合: pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー = 真 event.type == pygame.KEYDOWNの場合: event.key == pygame.K_LEFTの場合: x1_変化 = -10 y1_変化 = 0 elif event.key == pygame.K_RIGHT: x1_変更 = 10 y1_変化 = 0 elif event.key == pygame.K_UP: y1_変化 = -10 x1_変更 = 0 elif event.key == pygame.K_DOWN: y1_変化 = 10 x1_変更 = 0 x1 += x1_変化 y1 += y1_変化 塗りつぶし(白) pygame.draw.rect(dis, 黒, [x1, y1, 10, 10]) を描画します。 pygame.display.update() 時計.ティック(30) pygame.quit() やめる() ヘビが移動できるように x 座標と y 座標を更新する ゲームオーバーの処理スネークゲームでは、 pygameをインポートする インポート時間 pygame.init() pygame.display.set_caption('ヘビ') 白 = (255, 255, 255) 黒 = (0, 0, 0) 赤 = (255, 0, 0) ディス幅 = 600 高さ = 400 dis = pygame.display.set_mode((dis_width, dis_width)) ゲームオーバー = False x1 = ディス幅 / 2 y1 = ディス高さ / 2 スネークブロック = 10 x1_変更 = 0 y1_変化 = 0 クロック = pygame.time.Clock() ヘビのスピード = 30 font_style = pygame.font.Font("C:/Windows/Fonts/STFANGSO.TTF", 20) defメッセージ(メッセージ、色): メッセージ = font_style.render(メッセージ、True、色) dis.blit(メッセージ、[dis_width / 2, dis_height / 2]) ゲームオーバーではない場合: pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー = 真 event.type == pygame.KEYDOWNの場合: event.key == pygame.K_LEFTの場合: x1_change = -snake_block y1_変化 = 0 elif event.key == pygame.K_RIGHT: x1_change = スネークブロック y1_変化 = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_変更 = 0 elif event.key == pygame.K_DOWN: y1_change = スネークブロック x1_変更 = 0 x1 >= dis_width または x1 < 0 または y1 >= dis_height または y1 < 0 の場合: ゲームオーバー = 真 x1 += x1_変化 y1 += y1_変化 塗りつぶし(白) pygame.draw.rect(dis, black, [x1, y1, snake_block, snake_block]) pygame.display.update() クロック.ティック(snake_speed) メッセージ("失敗しました。ゲームを再起動してください!"、赤) pygame.display.update() 時間.スリープ(2) pygame.quit() やめる() 食事を増やす貪欲なヘビなので、当然餌を与える必要があります。では、餌の話をしましょう。 pygameをインポートする インポート時間 ランダムにインポート pygame.init() pygame.display.set_caption('ヘビ') 白 = (255, 255, 255) 黒 = (0, 0, 0) 赤 = (255, 0, 0) 青 = (0, 0, 255) ディス幅 = 800 高さ = 600 dis = pygame.display.set_mode((dis_width, dis_height)) クロック = pygame.time.Clock() スネークブロック = 10 ヘビのスピード = 30 font_style = pygame.font.Font("C:/Windows/Fonts/STFANGSO.TTF", 20) defメッセージ(メッセージ、色): メッセージ = font_style.render(メッセージ、True、色) dis.blit(メッセージ、[dis_width / 3, dis_height / 3]) def gameLoop(): # 関数の作成 game_over = False game_close = False x1 = ディス幅 / 2 y1 = ディス高さ / 2 x1_変更 = 0 y1_変化 = 0 foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 ゲームオーバーではない場合: game_close == True の場合: 塗りつぶし(白) メッセージ("失敗しました。ゲームを再起動してください!"、赤) pygame.display.update() pygame.event.get() のイベントの場合: event.type == pygame.KEYDOWNの場合: event.key == pygame.K_qの場合: ゲームオーバー = 真 game_close = False event.key == pygame.K_c の場合: ゲームループ() pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー = 真 event.type == pygame.KEYDOWNの場合: event.key == pygame.K_LEFTの場合: x1_change = -snake_block y1_変化 = 0 elif event.key == pygame.K_RIGHT: x1_change = スネークブロック y1_変化 = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_変更 = 0 elif event.key == pygame.K_DOWN: y1_change = スネークブロック x1_変更 = 0 x1 >= dis_width または x1 < 0 または y1 >= dis_height または y1 < 0 の場合: game_close = 真 x1 += x1_変化 y1 += y1_変化 塗りつぶし(白) pygame.draw.rect(dis, blue, [foodx, foody, snake_block, snake_block]) pygame.draw.rect(dis, black, [x1, y1, snake_block, snake_block]) pygame.display.update() x1 == foodx かつ y1 == foody の場合: print("良いですね!") クロック.ティック(snake_speed) pygame.quit() やめる() ゲームループ() メイン関数として関数 ヘビの成長次に、 pygameをインポートする インポート時間 ランダムにインポート pygame.init() pygame.display.set_caption('ヘビ') font_style = pygame.font.Font("C:/Windows/Fonts/STFANGSO.TTF", 20) score_font = pygame.font.Font("C:/Windows/Fonts/STCAIYUN.TTF", 30) 白 = (255, 255, 255) 黄色 = (255, 255, 102) 黒 = (0, 0, 0) 赤 = (213, 50, 80) 緑 = (0, 255, 0) 青 = (50, 153, 213) ディス幅 = 600 高さ = 400 dis = pygame.display.set_mode((dis_width, dis_height)) クロック = pygame.time.Clock() スネークブロック = 10 ヘビのスピード = 15 定義 our_snake(snake_block, snake_list): snake_list 内の x について: pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block]) defメッセージ(メッセージ、色): メッセージ = font_style.render(メッセージ、True、色) dis.blit(メッセージ、[dis_width / 6, dis_height / 3]) ゲームループ()を定義します: ゲームオーバー = False game_close = False x1 = ディス幅 / 2 y1 = ディス高さ / 2 x1_変更 = 0 y1_変化 = 0 スネークリスト = [] ヘビの長さ = 1 foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 ゲームオーバーではない場合: game_close == True の場合: 塗りつぶし(青) メッセージ("失敗しました。ゲームを再起動してください!"、赤) pygame.display.update() pygame.event.get() のイベントの場合: event.type == pygame.KEYDOWNの場合: event.key == pygame.K_qの場合: ゲームオーバー = 真 game_close = False event.key == pygame.K_c の場合: ゲームループ() pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー = 真 event.type == pygame.KEYDOWNの場合: event.key == pygame.K_LEFTの場合: x1_change = -snake_block y1_変化 = 0 elif event.key == pygame.K_RIGHT: x1_change = スネークブロック y1_変化 = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_変更 = 0 elif event.key == pygame.K_DOWN: y1_change = スネークブロック x1_変更 = 0 x1 >= dis_width または x1 < 0 または y1 >= dis_height または y1 < 0 の場合: ゲーム終了 = 真 x1 += x1_変化 y1 += y1_変化 塗りつぶし(青) pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block]) ヘビの頭 = [] snake_Head.append(x1) snake_Head.append(y1) snake_List.append(snake_Head) len(snake_List) > 長さ_of_snakeの場合: snake_List[0]より snake_List[:-1]内のxの場合: x == snake_Headの場合: ゲーム終了 = 真 our_snake(snake_block、snake_List) は、 pygame.display.update() x1 == foodx かつ y1 == foody の場合: foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 ヘビの長さ += 1 クロック.ティック(snake_speed) pygame.quit() やめる() ゲームループ() スコアを表示最後にスコアを表示しましょう。結局のところ、プレイヤーのスコアはゲームにとって非常に重要です。 pygameをインポートする インポート時間 ランダムにインポート pygame.init() pygame.display.set_caption('ヘビ') font_style = pygame.font.Font("C:/Windows/Fonts/STFANGSO.TTF", 20) score_font = pygame.font.Font("C:/Windows/Fonts/STCAIYUN.TTF", 30) 白 = (255, 255, 255) 黄色 = (255, 255, 102) 黒 = (0, 0, 0) 赤 = (213, 50, 80) 緑 = (0, 255, 0) 青 = (50, 153, 213) ディス幅 = 600 高さ = 400 dis = pygame.display.set_mode((dis_width, dis_height)) クロック = pygame.time.Clock() スネークブロック = 10 ヘビのスピード = 15 def Your_score(スコア): value = score_font.render("あなたのスコア: " + str(score), True, yellow) dis.blit(値、[0, 0]) 定義 our_snake(snake_block, snake_list): snake_list 内の x について: pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block]) defメッセージ(メッセージ、色): メッセージ = font_style.render(メッセージ、True、色) dis.blit(メッセージ、[dis_width / 6, dis_height / 3]) ゲームループ()を定義します: game_over = False game_close = False x1 = ディス幅 / 2 y1 = ディス高さ / 2 x1_変更 = 0 y1_変化 = 0 スネークリスト = [] ヘビの長さ = 1 foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 ゲームオーバーではない場合: game_close == True の場合: 塗りつぶし(青) メッセージ("失敗しました。ゲームを再起動してください!"、赤) あなたのスコア(ヘビの長さ - 1) pygame.display.update() pygame.event.get() のイベントの場合: event.type == pygame.KEYDOWNの場合: event.key == pygame.K_qの場合: ゲームオーバー = 真 game_close = False event.key == pygame.K_c の場合: ゲームループ() pygame.event.get() のイベントの場合: event.type == pygame.QUITの場合: ゲームオーバー = 真 event.type == pygame.KEYDOWNの場合: event.key == pygame.K_LEFTの場合: x1_change = -snake_block y1_変化 = 0 elif event.key == pygame.K_RIGHT: x1_change = スネークブロック y1_変化 = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_変更 = 0 elif event.key == pygame.K_DOWN: y1_change = スネークブロック x1_変更 = 0 x1 >= dis_width または x1 < 0 または y1 >= dis_height または y1 < 0 の場合: game_close = 真 x1 += x1_変化 y1 += y1_変化 塗りつぶし(青) pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block]) ヘビの頭 = [] snake_Head.append(x1) snake_Head.append(y1) snake_List.append(snake_Head) len(snake_List) > 長さ_of_snakeの場合: snake_List[0]より snake_List[:-1]内のxの場合: x == snake_Headの場合: game_close = 真 our_snake(snake_block、snake_List) は、 あなたのスコア(ヘビの長さ - 1) pygame.display.update() x1 == foodx かつ y1 == foody の場合: foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0 ヘビの長さ += 1 クロック.ティック(snake_speed) pygame.quit() やめる() ゲームループ() ここでは、プレイヤーのスコアを記録するためのYour_score関数を作成します。 このようにして、簡単なスネークゲームが完成しました。 最後に、ゲーム時間をより快適にするために、ゲームにバックグラウンドミュージックを追加しましょう。 # 音楽を再生する pygame.init() pygame.mixer.music.load(r"Game.mp3") pygame.mixer.music.play() 100 行の Pygame コードでスネーク ゲームを作成する方法についての記事はこれで終わりです。Pygame でスネーク ゲームを作成する方法についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MacOS で Docker を使用して MySQL マスター スレーブ データベースを作成する方法
>>: HTML シンボルからエンティティへのアルゴリズムのチャレンジ
これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...
目次導入説明書実際の経験長所と短所総括する導入mysqlpump は mysqldump の派生です...
以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...
1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...
div がネストされているときに margin が機能しない問題の解決策を次に示します。さて、マージ...
Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...
Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...
先日、rsync を使用して LAN 上の別のシステムに大きなファイルを転送していました。非常に大き...
ごみ箱機能をオンにすると、削除されたファイルの元のデータをタイムアウトなしで復元できるため、誤って削...
序文: MySQL で SQL 文を実行すると、予想した時間内に文が完了しません。このような場合、通...
目次アプリを登録するときに何をすればよいですか?ページを登録するときに通常何をする必要がありますか?...
この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...
まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...
IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...
目次0. モジュールとは何か1.モジュールの読み込み1.1 方法1 1.2 方法2 2. 輸出と輸入...