تحميل صورة
جزء من قسم الكائنات والصور في رحلة Pygame على Coddy. الدرس 1 من 36.
ترسم الألعاب الصور، وليس الأشكال فقط. تأتي الصورة من ملف صور، وتحول pygame الملف إلى Surface، وهو من النوع نفسه الذي تنتمي إليه النافذة: شبكة من وحدات البكسل يمكنك الرسم عليها.
ship = pygame.image.load("assets/images/ship.png").convert_alpha()المسار نسبي إلى main.py: تحتوي اللعبة على مجلد assets بجواره، وتعرض علامة التبويب Assets بجانب اللعبة جميع الملفات الموجودة فيه.
تنسخ convert_alpha() الصورة إلى تنسيق وحدات البكسل الخاص بالنافذة، لذا يكون رسمها سريعًا في كل إطار، كما تحافظ على وحدات البكسل الشفافة. وهي تحتاج إلى النافذة، لذا حمّل الصور بعد set_mode. حمّل كل صورة مرة واحدة قبل الحلقة: قراءة ملف 60 مرة في الثانية تُبطئ اللعبة.
لرسم الصورة، استخدم blit لوضعها على النافذة. يحدد الموضع مكان الزاوية العلوية اليسرى للصورة:
screen.blit(ship, (288, 208))استخدم blit بعد screen.fill(...)، وإلا فسيغطيها الملء.
التحدي
سهل- بعد
set_mode، حمّلassets/images/ship.pngباستخدام.convert_alpha()إلى متغير اسمهship. - في الحلقة، بعد fill، اعرض
shipباستخدام blit بحيث تكون زاويته العلوية اليسرى عند(288, 208). أبعاد السفينة 64 × 64 بكسل، لذا ستقع في منتصف النافذة ذات الأبعاد 640 × 480.
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
جميع دروس الكائنات والصور
4الكائنات الرسومية والمجموعات
صنف Spriteالمجموعاتالإزالة باستخدام kill()الالتقاط باستخدام spritecollideمجموعة ضد مجموعة2دوّر واقلب وغيّر الحجم
التدوير حول المركزوجّهها في اتجاه الطيرانغيّر حجم الصورةدوّر انطلاقًا من الصورة الأصلية5تصادمات مثالية على مستوى البكسل
المستطيلات تبدو غير منصفةالأقنعةكائنات Sprite مثالية على مستوى البكسلمناطق التصادم الدائرية6التحريك باستخدام أوراق الرسوم المتحركة
قصّ ورقة الرسوم المتحركةعداد الإطاراتالتحريك باستخدام الوقتانفجار لمرة واحدةتدرّب بنفسك: Playground لـ Pygame