Menu
CoddyTech
flag He iconעבריתdown icon

הגעה אל היעד

שיעור 8 מתוך 40 בקורס יוצרים משחקים עם Pygame של Coddy.

למשחק דרושה מטרה. ציירו ריבוע ירוק בפינה הימנית התחתונה, וכשהריבוע של השחקן נכנס אליו, השחקן מנצח.

המטרה נמצאת ב־(420, 300) וגודלה 60 על 60. הריבוע של השחקן נמצא בתוך המטרה כשהצד השמאלי שלו נמצא ב־420 או יותר והחלק העליון שלו ב־300 או יותר. שני התנאים חייבים להתקיים, לכן חברו ביניהם באמצעות and.

הניצחון חייב להישאר בתוקף. שמרו אותו במשתנה שמתחיל ב־False והופך ל־True רק פעם אחת:

won = False

while running:
    # הזיזו את הריבוע
    if x >= 420 and y >= 300:
        won = True
    if won:
        screen.fill((40, 110, 70))
    else:
        screen.fill((30, 30, 46))

ברגע ש־won מקבל את הערך True, שום דבר לא מחזיר אותו לאחור, ולכן הרקע נשאר ירוק גם אם הריבוע יוצא מהמטרה.

challenge icon

אתגר

קל
  1. לפני הלולאה, הגדר את won = False.
  2. אחרי הגבלת x ו-y, הגדר את won = True כאשר x >= 420 וגם y >= 300.
  3. מלא את המסך בצבע (40, 110, 70) כאשר won הוא true, ובצבע (30, 30, 46) אחרת.
  4. לפני הריבוע של השחקן, צייר את היעד: בירוק (60, 200, 120) במיקום (420, 300, 60, 60).

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()

x, y = 220, 160

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

    keys = pygame.key.get_pressed()
    speed = 4
    if keys[pygame.K_SPACE]:
        speed = 8
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    x = max(0, min(x, 480 - 40))
    y = max(0, min(y, 360 - 40))

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יוצרים משחקים עם Pygame

תרגלו בעצמכם: Pygame אונליין