القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

PyGame هي مكتبة تطوير ألعاب قوية وشائعة للبايثون. يوفر مجموعة من الأدوات والوظائف التي تسهل إنشاء الألعاب والتطبيقات التفاعلية الأخرى. إحدى الميزات المفيدة لـ PyGame هي قدرتها على رسم الأشياء والأشكال.

وحدة pygame.draw

في PyGame ، يعد رسم الكائنات والأشكال عملية مباشرة. يمكنك استخدام ال القزم وحدة لرسم أشكال مثل المستطيلات والدوائر والخطوط والمزيد.

قبل البدء ، تأكد من أن لديك نقطة مثبتة على جهازك، ثم استخدم هذا الأمر لتثبيت ملف PyGame وحدة:

نقطة تثبيت pygame

رسم الأشكال الأساسية

ال القزم توفر الوحدة العديد من الوظائف التي تسمح لك برسم الأشكال الأساسية. تأخذ كل وظيفة مجموعة من المعلمات لتحديد الشكل وموضعه.

  • مستقيم (): يمكنك رسم مستطيل باستخدام هذه الوظيفة. هذا هو أحد الأشكال الأكثر استخدامًا في الألعاب. يمكنك إنشاء منصات وجدران وأشياء أخرى باستخدام المستطيلات. تأخذ الوظيفة أربع معلمات: السطح (السطح المراد رسم المستطيل عليه) ، واللون ، والمستطيل (كائن مستطيل) ، والعرض (سمك الخط).
    pygame.draw.rect (السطح ، اللون ، المستطيل ، العرض)
  • instagram viewer
  • دائرة(): أرسم دائرة. يأخذ أربع معلمات: السطح واللون ونقطة البيع (مركز الدائرة) ونصف القطر.
    pygame.draw.circle (السطح ، اللون ، نقطة البيع ، نصف القطر)
  • مضلع (): ارسم مضلعًا. يأخذ أربع معلمات: السطح واللون والنقاط (قائمة النقاط التي تحدد شكل المضلع) والعرض.
    pygame.draw.polygon (السطح ، اللون ، النقاط ، العرض) 
  • خط(): ارسم خطا. يستغرق الأمر أربع معلمات: السطح واللون و start_pos و end_pos.
    pygame.draw.line (السطح ، اللون ، start_pos ، end_pos) 

يمكنك العثور على القائمة الكاملة للوظائف ومعاييرها على المسؤول وثائق PyGame لوحدة السحب.

رسم اشكال معقدة

بالإضافة إلى الأشكال الأساسية ، يتيح لك PyGame أيضًا رسم أشكال معقدة مثل الأقواس والعلامات الحذف والألياف.

  • قوس(): هذه الوظيفة ترسم قوسًا على سطح ما. القوس جزء من دائرة. يتطلب الأمر ستة معلمات: السطح واللون والمستطيل و start_angle و end_angle والعرض. حدد الزوايا بالدرجات ، بحيث تشير 0 درجة إلى اليمين وتزيد في اتجاه عقارب الساعة. تحدد معلمة العرض سمك القوس.
    pygame.draw.arc (السطح ، اللون ، المستطيل ، start_angle ، end_angle ، العرض)
  • الشكل البيضاوي(): ارسم قطع ناقص على سطح ما. القطع الناقص هو دائرة ممتدة. يأخذ أربع معلمات: السطح واللون والمستطيل والعرض.
    pygame.draw.ellipse (السطح ، اللون ، المستطيل ، العرض)
  • ألين (): استخدم لرسم خط واحد مصقول على السطح. Anti-aliasing هي تقنية تستخدم لتنعيم حواف الشكل ، بحيث يبدو أكثر طبيعية. يستغرق الأمر أربع معلمات تعكس خط() الوظيفة: السطح واللون و start_pos و end_pos.
    pygame.draw.aaline (السطح ، اللون ، start_pos ، end_pos) 

تكوين الأشكال المتداخلة في PyGame

ميزة أخرى مثيرة للاهتمام في PyGame هي القدرة على رسم الأشكال داخل شكل آخر. يمكنك القيام بذلك باستخدام مجموعة من وظائف رسم الأشكال الأساسية في PyGame.

لرسم شكل داخل شكل آخر ، يمكنك أولاً رسم الشكل الداخلي ، ثم رسم الشكل الخارجي فوقه. يمكن أن يكون الشكل الداخلي أي شكل أساسي ، مثل مستطيل أو دائرة.

على سبيل المثال ، لرسم مستطيل داخل دائرة ، يمكنك استخدام pygame.draw.circle () وظيفة لرسم الدائرة ، ثم استخدام pygame.draw.rect () وظيفة لرسم المستطيل فوقه.

يمكنك العثور على نماذج التعليمات البرمجية التالية بتنسيق هذا GitHub repo.

فيما يلي مثال لمقتطف الشفرة الذي يوضح كيفية رسم مستطيل داخل دائرة:

يستورد القزم

# تهيئة pygame
pygame.init ()

# إنشاء نافذة
window = pygame.display.set_mode ((800, 600))

# إنشاء دائرة
Circle_rect = pygame.draw.circle (نافذة ، (255, 255, 255), (400, 300), 100)

# قم بإنشاء سطح للمستطيل
rectangle_surface = pygame. سطح((50, 50))
rectangle_surface.set_colorkey ((0, 0, 0))

# ارسم المستطيل على السطح
pygame.draw.rect (rectangle_surface، (255, 0, 0), (0, 0, 50, 50))

# امسح السطح على الدائرة
window.blit (المستطيل_السطح ، (375, 275))

# الحلقة الرئيسية
بينماحقيقي:
# الخروج من اللعبة
ل حدث في pygame.event.get ():
لو event.type == pygame. يترك:
pygame.quit ()
مخرج()

# تحديث العرض
pygame.display.update ()

هذا يخلق تأثير مستطيل داخل دائرة. يمكنك استخدام هذه التقنية لإنشاء أشكال وعناصر لعبة أكثر تعقيدًا من خلال الجمع بين أشكال متعددة.

رسم الصور

يتيح لك PyGame أيضًا رسم الصور. يمكنك استخدام ال pygame.image.load () وظيفة لتحميل صورة من ملف و pygame.image.blit () وظيفة ل ارسم الصورة على الشاشة.

بناء الجملة لـ pygame.image.load () يشبه هذا:

pygame.image.load (اسم الملف) 

وإليك بناء الجملة لـ pygame.image.blit ():

pygame.image.blit (صورة ، مستقيمة) 

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

إضافة ميزات متقدمة

يوفر PyGame أيضًا بعض الميزات المتقدمة لرسم الكائنات والأشكال. على سبيل المثال ، يمكنك استخدام ملف pygame.mouse.get_pos () وظيفة للحصول على موضع الماوس و pygame.mouse.get_pressed () وظيفة للحصول على حالة زر الماوس. باستخدام هذه الوظائف ، يمكنك إنشاء ميزة النقر للرسم التي تسمح لك برسم الأشكال بالنقر بالماوس.

يستورد القزم 

# تهيئة pygame
pygame.init ()

# إنشاء نافذة
window = pygame.display.set_mode ((800, 600))

# الحلقة الرئيسية
بينماحقيقي:
# احصل على موقف الماوس
mouse_position = pygame.mouse.get_pos ()

# احصل على حالة زر الماوس
mouse_pressed = pygame.mouse.get_pressed ()

# الخروج من اللعبة
ل حدث في pygame.event.get ():
لو event.type == pygame. يترك:
pygame.quit ()
مخرج()

# رسم دائرة عند الضغط على الفأرة
لو ضغط بالماوس [0] == 1:
pygame.draw.circle (نافذة ، (255, 0, 0) ، mouse_position ، 20)

# تحديث العرض
pygame.display.update ()

أدناه هو الإخراج:

قم بإنشاء العفاريت بسهولة في PyGame

يوفر PyGame أيضًا مجموعة قوية من الأدوات لإنشاء الكائنات والعفاريت في اللعبة بسهولة. مع ال القزم الوحدة النمطية ، يمكنك بسهولة إنشاء نقوش متحركة يمكنك استخدامها في ألعابك. يمكنك إنشاء الشخصيات والعناصر وعناصر اللعبة الأخرى بسهولة.