今回は、シューティングゲームにおけるプレイヤーを画面上に出現させて、矢印キーの入力によって移動出来るようにします。
Pygameを使えば、同時のキー入力にも対応出来るので、上下左右だけでなく斜めにも直線で移動することが出来ますし、移動しながら弾を出すことも出来ます。
同時キー入力に対応してプレイヤーを動かす方法
まずは、プレイヤーとなる画像ファイルを用意しておきましょう。
前回作成しておいた「Shooting」スクリプトを開いてプログラムを追記します。
まずは、プレイヤーの初期値としてゲーム開始時に配置したい座標を指定しておきます。
新たに記述した「move_player」関数でプレイヤーを動かすようにします。
各キーが押された際の処理を記述していますが、いずれかのキーが押されると、key[pygame.〇〇]の値が1になるので、1ならばキーが入力されたと判断することが出来ます。
プレイヤーが画面から見切れないように、一定の座標まで到達したらそれ以上移動出来ないように制限しておきます。
最後にscreen.blitでプレイヤーを描画します。今回私が使用しているプレイヤーの画像が縦横どちらも32ドットですので、この半分の16を引くことで中心座標にしています。
肝心な同時キー入力ですが、「key = pygame.key.get_pressed()」で全てのキーの状態を取得することが出来ます。
プログラムを保存して実行してみましょう。
こんな風に同時キー入力に対応していることが分かると思います。また、画面から見切れないようであればOKです。
この時点で何か無数に飛んでくる弾幕を避けているようなゲームになっていますね。
次回は、プレイヤーが弾を飛ばせるようにしたいと思います。