pygame常識&テクニック(2)

1390 ワード

保証モジュールimportでエラーは発生しません


pygameにはcameraなど、テストされたモジュールがあり、いつなくなるか分からない.
コードを書くときはフォールトトレランス処理が必要です
try:
	import sys
	import random
	import math
	import os
	import getopt
	import pygame
	from socket import *
	from pygame.locals import *
except ImportError, err:
	print "couldn't load module. %s" % (err)
	sys.exit(2)

独自のリソースロード関数の作成


そうでなければ、ロードするたびにコードが山積みになり、簡潔ではありません.
音楽をロードするように、ネットワーク接続のリソースに関するコードをカプセル化する必要があります.
def load_png(name):
	""" Load image and return image object"""
	fullname = os.path.join('data', name)
	try:
		image = pygame.image.load(fullname)
		if image.get_alpha() is None:
			image = image.convert()
		else:
			image = image.convert_alpha()
	except pygame.error, message:
        	print 'Cannot load image:', fullname
        	raise SystemExit, message
	return image, image.get_rect()
def load_sound(name):
    class NoneSound:
        def play(self): pass
    if not pygame.mixer:
        return NoneSound()
    fullname = os.path.join('data', name)
    try:
        sound = pygame.mixer.Sound(fullname)
    except pygame.error, message:
        print 'Cannot load sound:', wav
        raise SystemExit, message
    return sound

<本節終了>