この記事では、Pygameのキーイベント処理を用いて、矢印キー(長押し)よりキャラクター画像を動かす方法とソースコードを解説します。
矢印キー(長押し)
Python用ゲームモジュール「Pygame」のキーイベント処理機能「pygame.event.get()」を用いて、矢印キー長押しでキャラクター画像を動かしてみました。
– | 処理手順 |
---|---|
① | 「pygame」モジュールをインポートする。 |
② | 画面のサイズを設定する。 |
③ | 円の中心座標を画面の中心に設定する。 |
④ | Pygameを初期化する。[pygame.init] |
⑤ | 画面(ウィンドウ)を生成する。[pygame.display.set_mode] |
⑥ | キャラクター画像を配置する。 |
⑦ | キャラクター画像操作するためのイベント処理をする。矢印キーが押されたらその方向にキャラクター画像の中心座標を+5移動する。 |
⑧ | 画面を更新する。 |
⑨ | 更新時間の間隔を設定する。 |
⑩ | 画面の背景色を黒に設定する。 |
⑪ | キャラクター画像を描画する。 |
⑫ | イベント処理をする。画面の閉じるボタン、もしくはEscキーが押されたら終了する。 |
⑬ | 6-11の処理を繰り返す。 |
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*- import pygame from pygame.locals import * import sys def main(): (w,h) = (400,400) # 画面サイズ (x,y) = (w/2, h/2) pygame.init() # pygame初期化 pygame.display.set_mode((w, h), 0, 32) # 画面設定 screen = pygame.display.get_surface() im = pygame.image.load("renge.png").convert_alpha() rect = im.get_rect() rect.center = (w/2, h/2) while (1): # キーイベント処理(キャラクタ画像の移動) pressed_key = pygame.key.get_pressed() if pressed_key[K_LEFT]: rect.move_ip(-1, 0) if pressed_key[K_RIGHT]: rect.move_ip(1, 0) if pressed_key[K_UP]: rect.move_ip(0, -1) if pressed_key[K_DOWN]: rect.move_ip(0, 1) pygame.display.update() # 画面更新 pygame.time.wait(30) # 更新時間間隔 screen.fill((0, 20, 0, 0)) # 画面の背景色 screen.blit(im, rect) # 画像の描画 # 終了用のイベント処理 for event in pygame.event.get(): if event.type == QUIT: # 閉じるボタンが押されたとき pygame.quit() sys.exit() if event.type == KEYDOWN: # キーを押したとき if event.key == K_ESCAPE: # Escキーが押されたとき pygame.quit() sys.exit() if __name__ == "__main__": main()
矢印キーでキャラクターを動かすことができました。
– | 関連記事 |
---|---|
1 | Pygameでゲームプログラミング |
2 | Python入門 基本文法 |
コメント