python3
ゲーム制作
pygame

Python3_PyGame で2Dゲーム制作 (キー操作)

Python3とPyGameでゲーム制作メモ ( part3, キー操作 )

前回 (Python3とPyGameでゲーム制作メモ ( part2, 画像の表示 )) の続き.表示させた画像を矢印キーで操作する.

開発環境

・macOS Sierra(10.12.5)
・Python(3.6.2)
・PyGame(1.9.3)

参考URL

・Python公式:https://www.python.org/
・PyGame公式:https://www.pygame.org/news
・PyGameドキュメント:https://www.pygame.org/docs/
・PyGame Wikipedia:https://ja.wikipedia.org/wiki/Pygame

表示した画像を操作する

前回の画像表示のコードに少し手を加えるだけ.

key.py
#_*_coding:utf-8_*_
#キー操作する
import sys
import pygame
from pygame.locals import *

pygame.init() #pygameの初期化
screen = pygame.display.set_mode((400, 300))  #ウィンドウの大きさ
pygame.display.set_caption("PyGame")  #タイトルバー
image = pygame.image.load("./img/maru.png")  #画像を読み込む

pygame.key.set_repeat(5,5)  #キーの押下と押しっぱなしの取得(追加したとこ)
position = [200, 150] #座標を配列に[x座標, y座標](追加したとこ)

#mainループ
def main():
    while True:
        screen.fill((0,0,0))  #ウィンドウの背景色

        #イベントの取得
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()  #閉じるボタンが押されたらプログラムを終了
                sys.exit

            #キー操作(追加したとこ)
            elif event.type == KEYDOWN:
                if event.key == K_LEFT:
                    position[0] -= 5
                elif event.key == K_RIGHT:
                    position[0] += 5
                elif event.key == K_UP:
                    position[1] -= 5
                elif event.key == K_DOWN:
                    position[1] += 5

        #画面の端に行ったら反対から出るようにする(追加したとこ)
        position[0] = position[0] % 400
        position[1] = position[1] % 300

        #画像の描画位置(追加したとこ)
        rect = image.get_rect()
        rect.center = position

        #画像の描画
        screen.blit(image, rect)
        pygame.display.update()

if __name__ == '__main__':
    main()

これだけ追加すれば画像が動くようになる!
ちなみに動かすために画像は前回より小さくしてあります.

スクリーンショット 2017-08-22 15.08.28.png

画像なので動いている感じが全くわからなくてすみません,でも矢印キーで動いている.かわいい.
あとは画面の端に行くと反対から出るようになっているので,

スクリーンショット 2017-08-22 15.09.56.png

左端に行くと・・・

スクリーンショット 2017-08-22 15.10.08.png

右端から出てくる!
 
 
 

参考文献

  1. 田中賢一郎 (2017) 「ゲームを作りながら楽しく学べるPythonプログラミング」 インプレスR&D
  2. Python3とPyGameでゲーム制作メモ (part1,準備編)
  3. Python3とPyGameでゲーム制作メモ ( part2, 画像の表示 )