この記事では、Pygameを用いてマウスポインタでキャラクターを操作する方法とソースコードを解説します。
マウスポインタでキャラクター移動
Pygameではイベントハンドラ「pygame.event.get()」でマウスポインタの移動を判定できます。
また、「event.pos」でマウスポインタの画面上の座標を取得できます。
今回はこれらを用いて、マウスポインタに追従させるようにキャラクターを移動させてみました。
– | 処理手順 |
---|---|
① | 「pygame」モジュールをインポートする。 |
② | 画面のサイズを設定する。 |
③ | 円の中心座標を画面の中心に設定する。 |
④ | Pygameを初期化する。[pygame.init] |
⑤ | 主人公キャラの画像を取得する。(表示位置はx=300, y=100) |
⑥ | 画面を更新する。 |
⑦ | 更新時間の間隔を設定する。 |
⑧ | 画面の背景色を黒に設定する。 |
⑨ | キャラクターを指定した座標(x, y)に描画する。 |
⑩ | イベント処理をする。マウスポインタが移動したら、ポインタの座標を(x, y)に格納する。画面の閉じるボタンが押されたら終了する。 |
⑪ | 6-10の処理を繰り返す。 |
# -*- coding: utf-8 -*- import pygame from pygame.locals import * import sys def main(): (w,h) = (400,400) # 画面サイズ (x,y) = (200, 200) # プレイヤー画像の初期配置座標 pygame.init() # pygame初期化 pygame.display.set_mode((w, h), 0, 32) # 画面設定 screen = pygame.display.get_surface() player = pygame.image.load("player.png").convert_alpha() # プレイヤー画像の取得 while (1): pygame.display.update() # 画面更新 pygame.time.wait(30) # 更新時間間隔 screen.fill((0, 20, 0, 0)) # 画面の背景色 screen.blit(player, (x, y)) # プレイヤー画像の描画 for event in pygame.event.get(): # マウスポインタで画像も移動 if event.type == MOUSEMOTION: x, y = event.pos x -= int(player.get_width() / 2) y -= int(player.get_height() / 2) # 終了用のイベント処理 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()
マウスポインタのある場所にキャラクタ画像(player.png)を描画できました。
– | 関連記事 |
---|---|
1 | 【Pygame入門】ゲームプログラミング |
2 | 【Python入門】サンプル集・使い方 |
コメント