مبانی پایگیم 1
سلام
قراره در این سری، آشنایی با کتابخانه پایگیم داشته باشیم که در محیط idle اجرا و به زبان برنامه نویسی پایتون تعلق داره.
پایگیم، اساسا برای ساخت بازی های گرافیکی کامپیوتری بکار می رود و یادگیری اون می تونه تجربه خوبی باشه و به ما چیز های زیادی در ارتباط با چهارچوب ساخت بازی های کامپیوتری بده. با استفاده از پایگیم، میشه به کاربر امکان استفاده از موس یا کیبرد رو برای انجام بازی، داد.
در قسمت اول، تصمیم بر این هست تا با ماژول های اساسی که در کتابخانه پایتون قرار دارند آشنا بشیم و محیط این کتابخانه رو بشناسیم.
مثالی آغازین
حالا برویم بسراغ ساخت پنجره ای به نام 'hello world'
1. import pygame, sys
2. from pygame.locals import *
3.
4. pygame.init()
5. DISPLAYSURF = pygame.display.set_mode((400, 300))
6. pygame.display.set_caption('Hello World!')
7. while True: # main game loop
8. for event in pygame.event.get():
9. if event.type == QUIT:
10. pygame.quit()
11. sys.exit()
12. pygame.display.update()
تفسیر برنامه
توجه داشته باشید، نیازی به نوشتن شماره خطوط در کنار دستور ها نمی باشد و این صرفا بخاطر دسترسی سریع به دستور مورد نظر و بحث در موردش می باشد.
اولین خطوط برنامه، مواردی هستند که بطور قطعی در تمامی برنامه هایی که با پایگیم می نویسید، بکارتان می آیند.
خط اول: این یک مثال ساده ایمپورت کردن است، عملی که تمامی ماژول های کتابخانه پایگیم را در دسترس قرار می دهد تا بتانیم از آنها در برنامه استفاده کنیم؛
مثل
pygame.images
pygame.draw.polygon
pygame.mixer.music
البته ما کتابخانه sys را هم ایمپورت کرده ایم که استفاده از آن بعدا گفته می شود.
خط دوم:
این خط هم نوعی امپورت کردن محسوب می شود، ولی بجای استفاده از غالب import modulename از غالب *from modulename import در آن استفاده شده است؛
این روش ایمپورت کردن، کمک می کند تا دیگر مجبور به نوشتن نام ماژول در کنار دستور داخل ماژول، نباشیم. و ما از این راه برای ایمپورت کردن pygame.locals استفاده می کنیم، چرا که در آن دستورات کاربردی زیادی قرار دارد و نوشتن pygame.locals در کنار هریک غیر منطقی بنظر می رسد.
خط چهارم: ()pygame.init تابعی است که قبل از انجام هر کاری، در هر برنامه ای از پایگیم باید نوشته شود؛ نیازی به دانستن کاربرد آن نیست، کافی است بدانیم این تابع باعث درست کار کردن بسیاری از دیگر توابع پایگیم خواهد بود.
خط پنجم: با استفاده از تابع ((DISPLAYSURF = pygame.display.set_mode((400, 300، قادر به ایجاد کردن پنجره ای با عرض 400 واحد و طول 300 خواهیم بود که البته DISPLAYSURF نامی است که برای پنجره گذاشته ایم و شما می توانید از هر نام دیگری استفاده کنید، برای ایجاد کردن عناصر گرافیکی بر روی پنجره، این نام، حتما بکارمان خواهد آمد. اشتباه رایج این است که دو عدد وارد شده در پرانتز تابع set_mode خودشان در پرانتزی دیگر باشند و نوشتن کد زیر موجب به ایجاد error خواهد شد.
(DISPLAYSURF = pygame.display.set_mode(400, 300
خط پنچم: در این خط، ما نام پنجره را مشخص می کنیم که در اصل احتمالا همان نام بازی خواهد بود که می سازیم. نام را در پرانتز های تابع ()set_caption وارد می کنیم که در سمت بالا_چپ پنجره ظاهر می شود.
خط هفتم: در این خطوط شاهد یک حلقه وایل هستیم که شرط آن True می باشد و به این معنی است که تنها و عمده ترین راه خروج از حلقه، استفاده از دستور break درون حلقه یا ()sys.exit می باشد. در برنامه هایی که نوشته خواهند شد، ما از sys.exit استفاده می کنیم و این دلیل ایمپورت کردن کتابخانه sys در خط اول است.
در تمامی برنامه های پایگیم، شاهد وجود این حلقه هستیم که به آن game loop یا main loop هم گفته می شود. این حلقه، سه امر پایه ای و مرتبط را انجام می دهد:
1) بررسی اتفاقاتی که باید به وقوع بیانجامند handling events
2) پروز رسانی وضعیت پنجره و پردازش کردن موقعیت جدید عناصر گرافیکی update game state
3) به نمایش گذاشتن وضغیت جدید draw screen
توجه توجه:
مطالب این سری، عمدتا ترجمه بنده از بخش هایی از کتاب making games with python and pygame نوشته Al sweigart می باشد و در اصل باید قدردان اشان باشیم.
ادامه برنامه در هفته بعد بهمراه مطالب جدید، تفسیر خواهد شد
بدرود!
- ۹۸/۰۶/۱۶