プレイヤーの描画
まずは一番簡単なところから作ります。プレイヤーを画面に描いてみます。プレイヤーですが、
を使います。この素材は、DotWorldさん(リンク切れ)からお借りしています。ここの素材はドラクエのような旧き良きRPGっぽくてすごく好きです。
RPGでは、マップ、イベント、画像、サウンドなどたくさんのファイルを使うのでZIPでまとめて配布することにします。Pygameでは素材はすべてdataにまとめて放り込むみたいな慣習があるのでdataフォルダにまとめています。ソースコードは解凍して見てください。
Pythonの世界ではPy〜とか〜pyいう名前がよく使われます。ここでは、PythonでRPGを作るということでPyRPGと命名しようと思います。
サンプルスクリプト
#!/usr/bin/env python # -*- coding: utf-8 -*- import pygame from pygame.locals import * import sys import os SCR_RECT = Rect(0, 0, 640, 480) def load_image(filename, colorkey=None): filename = os.path.join("data", filename) try: image = pygame.image.load(filename) except pygame.error, message: print "Cannot load image:", filename raise SystemExit, message image = image.convert() if colorkey is not None: if colorkey is -1: colorkey = image.get_at((0,0)) image.set_colorkey(colorkey, RLEACCEL) return image def main(): pygame.init() screen = pygame.display.set_mode(SCR_RECT.size) pygame.display.set_caption(u"PyRPG 01 プレイヤーの描画") playerImg = load_image("player1.png", -1) # プレイヤー while True: screen.fill((0,0,255)) screen.blit(playerImg, (0,0)) # プレイヤーを描画 pygame.display.update() for event in pygame.event.get(): if event.type == QUIT: sys.exit() if event.type == KEYDOWN and event.key == K_ESCAPE: sys.exit() if __name__ == "__main__": main()
イメージの仕様
画像は32x32ピクセルのPNG形式です。今後使うマップチップ(扉とか壁とか宝箱とか)もすべて32x32 ピクセルのPNG形式に統一しています。PNGじゃなくてもGIFやBMPでもかまいません。Pygameではまったく同じように扱えます。またPNG には透過処理(絵の背景を透明にする処理)を施していません。Pygameでは簡単に透過色(アルファ値)を設定できるのであえてしませんでした。画像をロードする関数load_image()は透過色を設定していないことを前提にしています。
プレイヤーの描画は非常に簡単です。基礎編のイメージを描画する(2008/5/5)に詳しくまとめたので参照してください。はじっこでいじけてますね!これから少しずつRPGらしくしていきます。