こいつ、動くぞ!(キー入力によるプレイヤーの移動)

こんにちは。

今回は、キーボードの方向キーでまめちゃんを動かしてみます。

 

まず、前回作成した"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"の値を変えることで移動速度を調整できます。

 

動かしてみたのがこちら。斜め移動もできます。

 

f:id:shroutosan:20180824141249g:plain

次回は、マップの読み込みに挑戦します。

 

 

 

まめ、大地に立つ(プレイヤー画像の表示)

こんにちは。

今回は、プレイヤーキャラを画面に登場させてみます。

プレイヤーキャラは、うちの実家にある空豆をモチーフにしたぬいぐるみの「まめちゃん」です。    

 

キャラの画像ファイル"mame32.bmp"はこのように4枚の1ループのアニメーション×4方向の構成です。ツクールやウディタユーザーの方にはおなじみですね。

 

f:id:shroutosan:20180814205934j:plain

 

プログラムのほうに移りましょう。メインメソッドに入る前に、今回は、キャラクターの情報を格納するクラスを作りました。今後、NPC・マップオブジェクト等についてもそれぞれクラスを作っていく予定です。

gistc9ac30756783c9c4335f8eb6d3635854

 プレイヤーオブジェクトの左上端の座標・画像ファイルのパス、imagelistは16分割した画像を格納するリストです。split_imageメソッドでは、元の画像から左上端座標(i,j),幅と高さが32のRectを切り出し、32×32のscreenに貼り付けています。

 

つづいてメインの方です。

 

gistafd2b7486f3ce39ca04a358da428e85c

 

12行目でプレイヤーのインスタンスを初期化しています。

今回は、上の画像のうち最上段の4つのポーズのみが使われるわけですが、どれを使うかを23行目で決定しています。

directionは、プレイヤーの方向を決めるための変数で、次回以降に使用します。

 

 動かした結果がこちら。アニメーションしています。ドット絵とはいえ、ぬいぐるみが動くとちょっと感動しませんか?

f:id:shroutosan:20180814205829g:plain

次回は足踏みしているまめちゃんを方向キーで動かしてみたいと思います。

世界の窓からこんにちは(pygame ウィンドウの表示とフルスクリーン)

 

皆様、こんにちは。

早速ですが、pygameRPGという途方もない漂流の旅に出発です。

バージョンは、Python3.7、pygame1.9.4です。

 

まずはGUIの基本、ウィンドウの表示です。これだけだと他のブログでたくさんの方がやっていらっしゃるので、今回はウィンドウモードとフルスクリーンの切り替えも実装してみようと思います。

 

ソースコードはこちら。なお、GitHubのサービスGistを使って掲載しています。

 

 

 

ちゃんと表示されてますでしょうか。

次回は、プレイヤーキャラを表示させ、動かしてみる(前半)です。

''Hello, world!"

はじめまして。しろうとです。

最近本格的に pythonの勉強を始めました。以前はJavaを少しかじっていましたが、最近流行りの機械学習に興味があって、 pythonに乗り換えた次第です。

現在は、主に書籍&PyQというeラーニングサイトを使って勉強中です。勉強がすすんだら紹介記事を書くかもしれません。また、息抜きにpygameRPG的なものを作れたらいいなと思っています。

よろしくお願いします。

あ、ソースコード貼る準備しなきゃ。