Menu
CoddyTech

Parameter

Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 21 dari 32.

Fungsi yang selalu menggambar di koordinat (320, 240) tidak begitu berguna. Parameter memungkinkan pemanggil memilih koordinatnya. Beri nama parameter di dalam tanda kurung pada def, lalu gunakan di dalam isi fungsi seperti variabel:

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)

Setiap pemanggilan memberikan nilai, yaitu argumen, dengan urutan yang sama: draw_star(120, 100) menjalankan isi fungsi dengan x bernilai 120 dan y bernilai 100. draw_star(520, 90) menjalankannya lagi dengan nilai yang berbeda. Satu definisi, sebanyak apa pun bintang yang kamu minta untuk digambar.

Parameter hanya tersedia di dalam fungsi saat fungsi itu berjalan. Di luarnya, x dan y tidak memiliki arti, atau berarti apa pun yang kamu simpan dengan nama tersebut di sana.

challenge icon

Tantangan

Sedang

Biarkan pemanggil menentukan posisi bintang:

  1. Ubah definisinya menjadi def draw_star(x, y): dan gambar di sekitar (x, y): garis dari x - 10 ke x + 10 dan dari y - 10 ke y + 10, serta titik di (x, y).
  2. Panggil fungsi itu tiga kali: di (120, 100), (320, 180), dan (520, 90).

Coba sendiri

import pygame

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

# Siapkan semuanya di sini, sebelum perulangan game.
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

    # Ubah yang diperlukan di sini, sekali setiap frame.

    screen.fill((20, 24, 48))
    # Gambar di sini, setelah mengisi layar.
    draw_star()

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

pygame.quit()

Semua pelajaran di Python di Jendela Game

Latihan sendiri: Playground Pygame