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