自分で関数を作る
CoddyのPygameジャーニー「ゲームウィンドウで学ぶPython」セクションの一部。レッスン 20/32。
関数は、好きなときに実行できる、名前の付いた行のまとまりです。defを使って定義します。
def draw_star():
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)def、名前、丸括弧、コロンを書きます。関数本体はその下にインデントします。関数を定義しても何も描画されません。Pythonは、その名前の下にある行を記憶するだけです。
関数を実行するには、関数を呼び出します。名前の後ろに括弧を書きます。
draw_star()関数はセットアップ部分、つまりゲームループの前に定義し、必要な場所でループ内から呼び出します。最初のレッスンから、関数を呼び出しています。print()やpygame.draw.circle()も、ほかの人が書いた関数です。
pygame.draw.line(screen, colour, start, end, width)は、2つの点の間に線を描画します。
チャレンジ
中級星を関数に入れましょう。
- セットアップ部分で
def draw_star():を作成し、星を描く3行をその本体に移動します。 - 描画部分で
draw_star()を呼び出します。星は以前と同じように (320, 240) に表示されます。
自分で試してみよう
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# ゲームループの前に、ここで準備をします。
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# ここで1フレームごとに変更します。
screen.fill((20, 24, 48))
# 塗りつぶした後、ここで描画します。
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)
pygame.display.flip()
clock.tick(60)
pygame.quit()
ゲームウィンドウで学ぶPythonのすべてのレッスン
自分で練習してみよう: Pygameプレイグラウンド