【 PCゲーム制作入門 No.13 】

描画系の解説

制御系の後に、描画系の処理を行っています。
※制御系と描画系は混ぜず、分けて管理するようにしましょう。

この部分ですね↓
        screen.fill((0,0,0));        # 画面を黒色(#000000)に塗りつぶし

        # 背景描画
        (mx, my) = (GMX/16, GMY/16) # 1画面内のTIP数
        yy = 0;
        while (yy < my):
            xx = 0;
            while (xx < mx):
                if map[yy][xx] == 3: # 障害物?
                    GRP_Draw(xx*16, yy*16, 1);    # 下地を描画
                GRP_Draw(xx*16, yy*16, map[yy][xx]);
                xx += 1;
            yy += 1;

        # 文字を描画
        text = font.render("MAP DRAW TEST", True, (255,245,155)); # 描画する文字列の設定
        screen.blit(text, [10, 10]); # 文字列の表示位置

        # キャラを描画
        GRP_Draw(x,y,0);

        #--------------------------------------
        pygame.display.update();     # 画面を更新

screen.fill((0,0,0)); で、画面を黒色で塗りつぶしています。
引数は色値でRGB(赤緑青)の順。 値の範囲は 0〜255 まで。
例えば、screen.fill((255,255,255)); とすれば白色で、screen.fill((255,0,0)); は赤色で塗りつぶすことになります。

因みに、このサンプルでは画面全体を「背景用の絵」で埋め尽くしている為、この関数は不要だったりします。
ですが、ゲーム制作では何かと使える関数ですので、一応サンプルにも入れておきました。

他に使えそうな関数としては↓があります。
        pygame.draw.rect(screen,(50,80,100),Rect(10,10,80,50));    # 四角形を描画(塗りつぶし)
        pygame.draw.rect(screen,(100,80,0),Rect(20,20,70,40),5);    # 四角形を描画(塗りつぶしなし)
        pygame.draw.line(screen, (20,95,30), (0,0), (80,80), 5);    # 直線の描画
        pygame.draw.ellipse(screen,(0,100,0),(50,50,200,100));    # 円を描画(塗りつぶし)
        pygame.draw.ellipse(screen,(0,100,100),(50,50,200,100),2);    # 円を描画(塗りつぶしなし)

引数は、「描画先、色値、座標、線の太さ(指定しない場合は塗りつぶし)」の順になっています。
※試す場合は「背景描画」の後に実行してください。(先に描画すると背景に隠れてしまいます)


次の「背景描画」は、今までの集大成ですね。
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(); を実行することで、画面へ表示できます↓
サンプル画面

以上が、描画系の処理です。
表示するキャラ絵を増やしたり、自キャラをアニメーションさせる等、サンプルプログラムを書き換えながら色々試してみると面白いと思います。

次のページへ



[ StudioGIW TOPページ ]