描画系の解説制御系の後に、描画系の処理を行っています。※制御系と描画系は混ぜず、分けて管理するようにしましょう。 この部分ですね↓
screen.fill((0,0,0)); で、画面を黒色で塗りつぶしています。 引数は色値でRGB(赤緑青)の順。 値の範囲は 0〜255 まで。 例えば、screen.fill((255,255,255)); とすれば白色で、screen.fill((255,0,0)); は赤色で塗りつぶすことになります。 因みに、このサンプルでは画面全体を「背景用の絵」で埋め尽くしている為、この関数は不要だったりします。 ですが、ゲーム制作では何かと使える関数ですので、一応サンプルにも入れておきました。 他に使えそうな関数としては↓があります。
引数は、「描画先、色値、座標、線の太さ(指定しない場合は塗りつぶし)」の順になっています。 ※試す場合は「背景描画」の後に実行してください。(先に描画すると背景に隠れてしまいます) 次の「背景描画」は、今までの集大成ですね。 map配列内のデータを1つずつ取得して、その番号の絵を指定の座標へ描画しています。 途中にある if文は障害物用(3番の絵)の特殊処理で、障害物の下に通常の地形(1番の絵)を描画しています。 これは、bg03.png に地面の絵が無い為(透過になっている為)、プログラムで描画しました。 次の、text = font.render("MAP DRAW TEST", True, (255,245,155)); は文字の描画です。 引数は、「描画する文字列、アンチエイリアスの有無、色値」の順。 (アンチエイリアスを無効にする場合は False にしますが、通常は True のままでOKです) その後、GRP_Draw(x,y,0); で自キャラを x,y の座標へ描画しています。 サンプルプログラムの描画処理はこれで完了ですが、実は、このままでは画面に表示されません。 最後に pygame.display.update(); を実行することで、画面へ表示できます↓ ![]() 以上が、描画系の処理です。 表示するキャラ絵を増やしたり、自キャラをアニメーションさせる等、サンプルプログラムを書き換えながら色々試してみると面白いと思います。 |