Menu
CoddyTech

パラメーター

CoddyのPygameジャーニー「ゲームウィンドウで学ぶPython」セクションの一部。レッスン 21/32。

(320, 240) に常に描画する関数は、あまり役に立ちません。パラメーターを使えば、呼び出し元が位置を選べます。defの括弧内にパラメーター名を指定し、本文では変数のように使います。

def draw_star(x, y):
    pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
    pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
    pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)

呼び出すたびに、値である引数を同じ順序で渡します。draw_star(120, 100)は、xが120、yが100として本文を実行します。draw_star(520, 90)は、別の値でもう一度実行します。定義は1つで、呼び出した回数だけ星を描けます。

パラメーターが存在するのは、関数の実行中、その関数の内部だけです。関数の外では、xとyは何も意味しないか、その場所でそれらの名前に保存した値を意味します。

challenge icon

チャレンジ

中級

呼び出し元が星を配置できるようにします:

  1. 定義をdef draw_star(x, y):に変更し、(x, y)を中心に描画します。線はx - 10からx + 10までと、y - 10からy + 10まで引き、点は(x, y)に描きます。
  2. 3回呼び出します:(120, 100)、(320, 180)、(520, 90)に配置します。

自分で試してみよう

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# ゲームループの前に、ここで準備をします。
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)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 各フレームで、ここで変更を加えます。

    screen.fill((20, 24, 48))
    # 塗りつぶした後、ここで描画します。
    draw_star()

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

ゲームウィンドウで学ぶPythonのすべてのレッスン

自分で練習してみよう: Pygameプレイグラウンド