Menu
CoddyTech

自分で関数を作る

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つの点の間に線を描画します。

challenge icon

チャレンジ

中級

星を関数に入れましょう。

  1. セットアップ部分でdef draw_star():を作成し、星を描く3行をその本体に移動します。
  2. 描画部分で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プレイグラウンド