こいつ、動くぞ!(キー入力によるプレイヤーの移動)
こんにちは。
今回は、キーボードの方向キーでまめちゃんを動かしてみます。
まず、前回作成した"player"クラスに、変数"direction"を追加します。
player.directionは、16分割されて格納されているまめちゃんの画像(0~3番目:下(正面)、4~7番目:右、8~11番目:上、12~15番目:左)から上下左右の向きを選択するための変数で、0,4,8,12のいずれかの値をとります。
次に、"main"メソッドに、playerの移動の速さを表す変数"vx"・"vy"を追加し、"while"ループを以下のようにします(フルスクリーン切り替え以下は省略)。
gist9236d7fee5e044663ddd109c570972a0
"pygame.key.get_pressed()"で押されたキーを取得し、条件判定を行っています。
また、まめちゃんの位置は、アイコン左上の座標で管理しています。"vx"と"vy"を加算・減算することでまめちゃんの位置をフレーム毎に変えて描画しています。そのため、"vx"・"vy"の値を変えることで移動速度を調整できます。
動かしてみたのがこちら。斜め移動もできます。
次回は、マップの読み込みに挑戦します。
まめ、大地に立つ(プレイヤー画像の表示)
こんにちは。
今回は、プレイヤーキャラを画面に登場させてみます。
プレイヤーキャラは、うちの実家にある空豆をモチーフにしたぬいぐるみの「まめちゃん」です。
キャラの画像ファイル"mame32.bmp"はこのように4枚の1ループのアニメーション×4方向の構成です。ツクールやウディタユーザーの方にはおなじみですね。
プログラムのほうに移りましょう。メインメソッドに入る前に、今回は、キャラクターの情報を格納するクラスを作りました。今後、NPC・マップオブジェクト等についてもそれぞれクラスを作っていく予定です。
gistc9ac30756783c9c4335f8eb6d3635854
プレイヤーオブジェクトの左上端の座標・画像ファイルのパス、imagelistは16分割した画像を格納するリストです。split_imageメソッドでは、元の画像から左上端座標(i,j),幅と高さが32のRectを切り出し、32×32のscreenに貼り付けています。
つづいてメインの方です。
gistafd2b7486f3ce39ca04a358da428e85c
12行目でプレイヤーのインスタンスを初期化しています。
今回は、上の画像のうち最上段の4つのポーズのみが使われるわけですが、どれを使うかを23行目で決定しています。
directionは、プレイヤーの方向を決めるための変数で、次回以降に使用します。
動かした結果がこちら。アニメーションしています。ドット絵とはいえ、ぬいぐるみが動くとちょっと感動しませんか?
次回は足踏みしているまめちゃんを方向キーで動かしてみたいと思います。