写真の描写

写真の描写をします.
これはゲーム作成の際に非常に重要です.
背景やキャラクターを思うように扱うことができます.


import pygame
from pygame.locals import *
import sys

SCREEN_SIZE = (1000, 750)

pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE)
pygame.display.set_caption("イメージの描画")

# イメージを用意
backImg = pygame.image.load("hakusuiko.jpg").convert() #背景
pythonImg2 = pygame.image.load("kappa2.png").convert()
colorkey = pythonImg2.get_at((0,0))  # 左上の色を透明色に
pythonImg2.set_colorkey(colorkey, RLEACCEL)
pythonImg3 = pygame.image.load("kappa2.png").convert()
colorkey = pythonImg3.get_at((0,0))  # 左上の色を透明色に
pythonImg3.set_colorkey(colorkey, RLEACCEL)
while True:
    screen.blit(backImg, (0,0))        #背景を描画
    screen.blit(pythonImg2, (450,300))#カッパを描画
    screen.blit(pythonImg3, (700,600))

    pygame.display.update()

    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()

pygamebmp, gif, jpe, png 等メジャーな拡張子のほかにマイナーな拡張子も対応しています.

最初に背景とキャラクターを設定します.

pygame.image.load()

画像のロードにはこの関数を使います.
引数にファイル名を指定します.
次にロードした画像をディスプレイと同じ形式に変換するための処理を行います.

Surface.convert()
Surface.convert_alpha()

convert()は画像に透明色は指定されていない時に使用します.
alphaがついたら透明色が指定されている場合です.
今回は透明色の指定はしてないのでalphaは付きません.
その代わり, キャラクターの周りの余白を消してあげる(透明色の指定)処理をしてあげます.

pythonImg2 = pygame.image.load("kappa2.png").convert()
colorkey = pythonImg2.get_at((0,0))  # 左上の色を透明色に
pythonImg2.set_colorkey(colorkey, RLEACCEL)

透明色はWindowsのペイントというツールで設定できるのですが, スクリプト中でも設定できます.
透明色を指定するには画像にカラーキー(透明色)を設定します.
Surface.set_colorkey()でカンタンに設定できます.
第一引数は色のタプルです.
第二引数はRLEACCELを指定します.
RLEACCELとは、RLE(Run Length Encoding)アクセラレーションのことを指します. 画像用のバッファだと思います...
今回は色のタプルの設定を左上隅(0,0)の色をSurface.get_at()関数で取得しています.
あとは今まで通りです.