webunique

Freelanc ฟรีแลนด์ Web Develop พัฒนาเว็บไซน์ Graphice งานออกแบบ Programming เขียนโปรแกรม

มาเขียนเกมส์ด้วย PYTHON กัน

1.เริ่มต้นก็ต้องโหลดตัวภาษา PYTHON มาลงก่อนครับ ที่นี่ http://www.python.org/download/ เลือกให้ตรงกับ OS นะครับ ผมใช้ Window XP DownLoad แล้ว Install

2.DownLoad PYGAME คือตัวนี้เป็น Module ที่ใช้สำหรับเขียนเกมส์อธิยายง่ายๆคือตัวนี้เป็นส่วนเสริมเพื่อให้การเขียนเกมส์ง่ายขึ้น กด Downlad เลือกตัวที่เป็นสำหรับ Window นะครับง่ายดีครับอย่าลืมดู Version ของภาษา Python ด้วยนะครับว่าตรงกันหรือเปล่า

3.เมื่อลงทั้ง สองอย่างเสร็จแล้ว ทดลองโดยการเปิด NOTEPAD มา แล้วลุยครับผมจะอธิบายเป็นบรรทัดครับ

import pygame ### อันนี้เป็นการบอกว่าจะใช้ Module Pygame

pygame.init() ### บอกให้ Pygame พร้อมทำงาน

class Plan(pygame.sprite.Sprite): ### เป็นการประกาศ Class Plan

def __init__(self): ### เป็น class constructor คือค่าเริ่มต้นของ Class

pygame.sprite.Sprite.__init__(self) ### ทำให้ Class เป็น Sprite ใน Pygame

self.image = pygame.image.load('images/plane.png') ###สั่งให้ Class Plan โหลดภาพครับ

self.rect = self.image.get_rect()

def update(self): #### เป็นการสร้าง Function Update ใช้เมื่อมีการขยับ MOUSE ของ USER

mousex,mousey = pygame.mouse.get_pos() ### สร้างตัวแปร mousex,mousey เพื่อรับค่าำตำแหน่ง Mouse

self.rect.center = (mousex,mousey) ### set ให้ตำแหน่ง Class นีอยู่ในตำแหน่งที่ Mouse อยู่

def main(): ### Function Main เป็นจุดเริ่มต้นของโปรแกรม

screen = pygame.display.set_mode((640, 480)) ### สร้างตัวแปรว่า Screen คือหน้าจอและเซ็ตขนาดหน้าจอ

pygame.display.set_caption("My Game") ### เซ็ตไตเติลหน้าจอ

backgrund = pygame.Surface(screen.get_size()) ### สร้าง Surface ที่ชื่อ Backgrund ให้มีขนาดเท่ากับ Screen

backgrund.fill((0,0,255)) ### ลงสีให้กับ backgrund เป็นแบบ RGB ผมลง B= Bule ครับ

screen.blit(backgrund, (0, 0)) ### บอกให้ Screen โหลด backgrund เข้าไป

plan = Plan() ### สร้าง ตัว Class Plan ขึ้นมาเพื่อใช้งาน(ที่เราเขียนไว้ด้านบน)

allsprite = pygame.sprite.Group(plan) ### สร้างตัวแปรมาเพื่อรวม Sprite(ประมาณว่าเป็นวัตถุที่มีรูป)ชื่อว่า allsprite

clock = pygame.time.Clock() ### สร้างตัวนับเวลาให้ในการบอก Frame ว่าจะทำการรีเฟรชวินาทีละกี่ครัง

Keepgoing = True ### สร้างตัวแปรให้ Keepgoing เป็น True

while Keepgoing: ### เป็นเงื่อนไขทำจนกว่า Keepgoing จะเป็น False

clock.tick(30) ### กำหนดการ Frame

pygame.mouse.set_visible(False); ### ไม่ให้แสดง Mouse บนหน้าจอ

for event in pygame.event.get(): ### เป็นการ Loop รับค่า Event ว่า User กดปุ่มอะำไรบ้าง

if event.type == pygame.QUIT: ### ถ้าเป็นการกดปุ่มปิด

Keepgoing = False ### Keepgoing เป็น False โปรแกรมจะปิด

allsprite.clear(screen,backgrund) ### Clear ค่า screen,backgrund

allsprite.update() ### เรียกให้ Function update

allsprite.draw(screen) ### วาดหน้าจอใหม่

pygame.display.flip()

if __name__ == "__main__":

main() ### เรียกใช้ Function Main

ปล.จริงๆแล้วผมไม่ได้จบทางด้าน IT แ่ต่เป็น Marketing แต่ผมมีความชอบในการเขียนโปรแกมเลยศึกษาด้วยตนเองอาจมีข้อผิดพลาดประการใดต้องของอภัยไว้ด้วยครับ

ลอง Download Source ไปเล่นดูครับ ถ้ามีปัญหาสงสัยสามารถสอบถามได้ทาง Email ครับ ยินดึครับ

DownLoad Source Code