برمجة الألعاب باستخدام pygame رسم خط -الدرس الثالث

في الدرس السابق تعلمنا كيفية رسم مستطيل وبما أن الألعاب بحاجة إلى أشكال عديدة سنواصل تعلم أشكال أخرى وهذه المرة سنتعلم كيفية رسم خط على الشاشة ،سنقوم برسم خط أخضر بالإحداثيات التالية (تخيل أن النافذة عبارة عن معلم متعامد متجانس) ابدأ برسم الخط ابتداءا من النقطة (0,0) إلى غاية النقطة (100,100) وعرض الخط سيكون 5 بكسل.
لن أقوم بكتابة الكود من الجديد سأفترض أنك قمت بحفظ الملف السابق الذي قمنا بإنشائه وفي حالة عدم وجود الملف السابق أنصحك بالرجوع إلى الدروس السابقة واضف الكود التالي إلى البرنامج.

Green=( 0, 255, 0)#متغير جديد لتحديد اللون الأخضر

pygame.draw.line(screen, Green, [0, 0], [100, 100], 5)#رسم خط بالإحداثيات المحددة

هذا كل شيء كل ماعليك فعله عزيزي القارئ هو التعديل على الكود والاحداثيات ورسم خطوط أخرى حتى تتعلم بشكل وعليك ايضا بالبحث والقراءة لزيادة معارفك .

رسم شكل بيضوي 

إن رسم شكل بيضوي يحتاج إلى إحداثيات وهي نفس الإحداثيات الخاصة برسم مستطيل حيث عند رسم شكل بيضوي يقوم البرنامج برسم مستطيل على الذاكرة فقط ثم يقوم برسم الشكل البيضوي داخل حدود ذلك المستطيل .
ومباشرة مع الكود الخاص برسم الشكل البيضوي :

pygame.draw.ellipse(screen, Green, [20,20,250,100], 2)

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

برمجة الألعاب باستخدام pygame رسم مستطيل -الدرس الثاني

في الدرس السابق قمنا بانشاء نافذة ذات خلفية بيضاء وبدون اي رسومات أو اضافات عليها، وفي هذا الدرس سنقوم برسم مستطيل على تلك النافذة.
يمكننا رسم العديد منن الأشياء مثل المستطيلات، المضلعات،الدوائر، الأقواس والخطوط كما سنكتشف أيضا عرض النصوص مع الرسومات ومن خلال الرابط التالي يمكنك رؤية جميع الأشياء التي يمكنك رسمها.


لرسم مستطيل يحتاج الكمبيوتر الى احداثية الزاوية العليا اليسرى للمستطيل كما يحتاج طبعا الى طول وعرض المستطيل .


الصورة تظهر لنا المستطيل التي قمت بانشاءه بالاحداثيات التالية [20,20,250,100] حيث تمثل كل من 20 20 احداثية الزاوية العليا اليسرى ومنها يبدأ البرنامج برسم المستطيل ولكي تقوم بتحديد تلك الزاوية فقط تخيل النافذة كمعلم متعامد متجانس وعليك بتحديد احداثية (x,y) كما في الرياضيات.
بعد تحديدك للزاوية يجب ان تحدد للبرنامج طول وعرض المستطيل حيث قمت بتحديد طول المستطيل ب 250 بكسل وعرضه ب 100 بكسل .

ولكتابة تلك الاحداثيات في بايثون نقوم بكتابة الكود التالي :
     

# رسم مستطيل 
pygame.draw.rect(screen,WHITE,[20,20,250,100],2)

pygame.draw.rect هي الصيغة أو الدالة التي تمكننا من رسم مستطيل وهي تحتاج الى قيم لذلك علينا فتح قوسين وكتابة تلك القيم .
القيمة الأولى هي المتغير screen وهو المتغير الذي قمنا بانشاء في الدرس السايق

screen = pygame.display.set_mode(size)

اي نحن نطلب من البرنامج ان يرسم لنا المستطيل على النافذة التي قمنا بانشائها.
القيمة الثانية هي WHITE وهو متغير سنقوم بانشاءه اعلى البرنامج وهو عبارة عن لون المستطيل.
القيمة الثالثة هي عبارة عن قائمة تحتوي على احداثيات لرسم البرنامج وقد قمت بشرحها .
القيمة الرابعة 2 وهي عبارة عن عرض الخط الذي يشكل المستطيل ويقاس بالبكسل وكلما زاد الرقم زاد سماكة الخط.
وفي نهاية هذا الدرس ساقوم بكتابة الكود كاملا انطلاقا من انشاء النافذة الى غاية رسم المستطيل .

import pygame
WHITE = (255,255,255)# تحديد اللون الأبيض
size=(400,400)# حجم النافذة
screen=pygame.display.set_mode(size)

pygame.draw.rect(screen,WHITE,[20,20,250,100],2)#انشاء المستطيل
pygame.display.flip()
pygame.display.set_caption("على بركة الله نبدأ")


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

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

برمجة الألعاب باستخدام pygame انشاء أول نافذة -الدرس الاول

حتى الان وفي جميع مواضيع المدونة لم نتطرق بعد الى كيفية فتح النوافذ في برامجنا كما تفعل معظم البرامج الحديثة، والكود الذي سنستعمله في فتح النوافذ ليس معقد أو صعب وهو من أساسيات pygame ويستعمل دائما عند إنشاء الألعاب، وفيما يلي الكود سيقوم باستدعاء مكتبة pygame و فتح نافذة بعرض 700 وطول 500 بكسل.

import pygame 
size = (700, 500)
screen = pygame.display.set_mode(size)

لماذا قمنا باستعمال set.mode وليس open_window ؟ السبب أن هذا الأمر يستطيع القيام بالكثير من الأمور عكس الأمر open_window، حيث نستطيع أن ننشئ ألعاب التي تعمل في وضع ملء الشاشة وهذا يحذف قائمة ابدأ وشريط العنوان ويعطي اللعبة إمكانية السيطرة على كل شيء على الشاشة لان هذا الوضع معقد قليلا للاستخدام ومعظم الناس يفضلون الألعاب الموجودة داخل الإطارات، لن نتعمق أكثر في موضوع الشاشة ولكن إذا كنت تريد أن تكتشف الكثير عن هذا الموضوع ارجوا زيارة الرابط التالي  .
الآن سنتكلم عن المتغير size ولماذا قمنا بإنشاء قيمه بين قوسين وليس كما هو معلوم عند إنشاء المتغيرات size=700,500 ؟ بكل بساطة لان بايثون لا يستطيع تعيين قيمتين لنفس المتغير  والطريقة الوحيدة لفعل ذلك هو عبر القوائم أو الصفوف .

سنقوم بإضافة صغيرة للكود السابق وهي اضافة عنوان للنافذة يظهر في شريط العنوان

pygame.display.set_caption("مدونة بايثون العربي ")

كما نستطيع تغيير لون خلفية الشاشة ويتم تحديد الألوان باستعمال مصفوفة بثلاثة قيم من 0 إلى 255 أو بما تسمى RGB وعلى سبيل المثال ولتحديد اللون الأبيض للخلفية نقوم ب التالي :

background_colour = (255,255,255)
screen.fill(background_colour)
pygame.display.flip() 

 بقيت لنا مشكلة وحيدة وربما تساءلت لماذا عندما أقوم بإغلاق النافذة لا تستجيب وتبقى تعمل؟
 لحل هذه المشكلة علينا اضافة كود أخر لبرنامجنا حتى نجبر النافذة على الغلق عندما يريد المستخدم ذلك .

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

الان عندما تنقر على العلامة X لغلق النافذة ستعمل بشكل عادي وبدون أي مشكلة .
وفي نهاية هذا الدرس سنقوم بجمع الكود كاملا

import pygame #استدعاء مكتبة الألعاب

background_colour = (255,255,255)#تحديد لون الخلفية 
size=(700,500)#تحديد حجم النافذة
screen=pygame.display.set_mode(size)#انشاء النافذة

screen.fill(background_colour)#تطبيق لون الخلفية 
pygame.display.flip()#عرض الرسومات على الشاشة
pygame.display.set_caption("على بركة الله نبدأ")

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

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

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

تثبيت مكتبة pygame لبرمجة الألعاب

هل أنت هنا لأنك تريد أن تبرمج العاب الخاصة بك ! جيد لأنك في المكان المناسب ، لأنني بصدد كتابة بعض المواضيع حول برمجة الألعاب باستخدام لغة بايثون .

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

  • رسم الأشكال الرسومية.
  • عرض الصور النقطية.
  • تحريك الأشياء.
  • التفاعل مع لوحة المفاتيح،الفأرة .
  • تشغيل الصوت.
  • اكتشاف تصادم الأجسام.

والكثير من الامور التي سنكتشفها معا ان شاء الله .




تثبيت مكتبة pygame

بما أنك تريد تعلم برمجة الألعاب فحتما أنت تعرف أساسيات بايثون وبما أنك تعرف أساسيات بايثون فمن المؤكد انك مثبت بايثون على جهازك لانني لن أتطرق الى تثبيت بايثون وكل ما سأتحدث عنه هو pygame.

ما يجب ان تعرفه أن مكتبة pygame لا تأتي مع بايثون ولكن يمكن تحميلها وتثبيتها مجانا كل ماعليك فعله هوالتوجه الى الموقع الرسمي والانتقال الى صفحة التحميل ثم قم بتحميل المكتبة المناسبة لنظام التشغيل و نسخة بايثون الذي تعمل عليهم.

بالنسبة لمستخدمي ويندوز.

 

قم باختيار مايناسب نظام التشغيل ونسخة بايثون وبعد تحميل قم بتثبيته على جهازك بعد ذلك نفتح idle ونكتب الكود التالي:

import pygame

اذا لم يحدث اي خطأ فأعلم انه تم تثبيت المكتبة بشكل صحيح.
بالنسية لمستخدمي اوبنتوا
قم بفتح سطر الاوامر واكتب الأمر التالي :

sudo apt-get install python-pygame
أرجوا ان الجميع قام بتثبيت المكتبة بنجاح واي مشكلة ارجوا ترك تعليق اسفل التدوينة .
أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع