Menu
CoddyTech

وجّهها في اتجاه الطيران

جزء من قسم الكائنات والصور في رحلة Pygame على Coddy. الدرس 7 من 36.

تتجه السفينة إلى الأعلى في ملفها. عند تدويرها باستخدام rotate(ship, -90) تصبح متجهة إلى اليمين، وهذا يناسب سفينة تطير جانبياً. وعندما تطير إلى اليسار، ينبغي أن تتجه إلى اليسار.

تعطيك pygame.transform.flip(image, flip_x, flip_y) نسخة معكوسة. تعكسها True, False من اليسار إلى اليمين؛ وتعكسها False, True من الأعلى إلى الأسفل.

ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)

تُنشأ الصورتان مرة واحدة، قبل الحلقة. ثم تتذكر اللعبة أيّ صورة تعرض في متغير، وتغيّر المفاتيح هذه الصورة:

if keys[pygame.K_LEFT]:
    ship_rect.x -= 5
    image = ship_left

ارسم image في كل إطار. عندما لا يكون أي مفتاح مضغوطاً، تحتفظ image بآخر قيمة لها، لذا تواصل السفينة التوجه إلى الجهة التي طارت إليها آخر مرة.

challenge icon

التحدي

متوسط
  1. قبل الحلقة، أنشئ ship_left: اقلب ship_right من اليسار إلى اليمين.
  2. اجعل image = ship_right قبل الحلقة.
  3. عند الضغط على مفتاح السهم الأيسر، عيّن image = ship_left؛ وعند الضغط على مفتاح السهم الأيمن، عيّن image = ship_right. تبقى الحركة كما هي.
  4. ارسم image عند ship_rect.

جرّب بنفسك

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()

ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))

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

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        ship_rect.x -= 5
    if keys[pygame.K_RIGHT]:
        ship_rect.x += 5
    ship_rect.clamp_ip(screen.get_rect())

    screen.fill((20, 22, 40))
    screen.blit(ship_right, ship_rect)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الكائنات والصور

تدرّب بنفسك: Playground لـ Pygame