FirEar.Net For the Best, One is Enough

3Dec/091

遊戲設計-pygame

即將就要回香港了,要整理的東西有點多,所以也比較忙,但還是先將pygame的介紹完成吧!

Pygame是一系列的python modules,主要功能是遊戲製作。Pygame提供了很好的介面設計,對不同事件(event)操作,包括但不限於滑鼠,鍵盤,時間,物件接觸等等。而成品的容量也很小,同時亦可以簡單地移植到不同平台。繼承了Python動態編程的優點,pygame同樣可以快速完成一個Project。在pygame的首頁就有指出48小時完成一個遊戲,事實上,筆者的團體(5-6人)在RPI這邊亦的確在48小時之內完成一個2D遊戲。

用物件導向(面向對象,object oriented)的角度來看,遊戲包括的東西有game,timer,其他遊戲元素。理論上game包含一切其他元素,所以亦會負責判定物件碰撞,更新等問題。

依照上文新增一個newgame.py的文件,輸入以下內容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pygame, sys
//載入所需文件, 包括其他元素,例如 player.py
 
pygame.init()
//初始化pygame
 
clock=pygame.time.Clock()
screen=pygame.display.set_mode((400,300))
//定義clock以及screen大小
 
while True:
//main game loop
 
    clock.tick(50)
    //控制刷新率(frame rate)在50ms一次
    events=pygame.event.get()
    //獲取事件(event),包括來自滑鼠以及鍵盤
 
    for event in events:
    //取出所有event, 對每個event進行以下動作
 
        if event.type==pygame.KEYDOWN:
            if event.key==pygame.K_ESCAPE:
                sys.exit(0)
                //當ESC被按下時離開遊戲
 
    screen.fill((0,0,0))
    pygame.display.flip()
    //填滿screen並刷新

以上內容演示了如何製作一個簡單的game(main game loop)以及timer。通常這都會是遊戲製作開始的第一步,之後可以加插其他元素,例如玩家,怪物,武器等等,並載入相應文件到game之中。

運行python之後import pygame以及sys,初始化pygame。新增(new)必要的物件(object)到遊戲中,在上面這個簡單的演示中我們加入了clock以及screen, 留意這兩個物件都來自pygame.Main game loop開始之後不斷重繪(draw)以及刷新(update)screen。中間使用for-loop(上文介紹了for-loop的簡單以及強大)取出所有event並執行相應動作,因應情況可以移動,攻擊等等。

執行完我們的第一個遊戲(其實只是一個全黑的screen)之後,按ESC就可以離開。下一次我們會開始加入Player並嘗試move。

想知道更多pygame資料的可以到:http://www.pygame.org/docs/

內面介紹了pygame必須用到的一切function以及用法。

Share and Enjoy:
  • Facebook
  • Twitter
  • MySpace
  • email
  • Add to favorites
  • Google Bookmarks
  • RSS

Related Post

About silau

MSN: silau2005@hotmail.com
Filed under: pygame Leave a comment
Comments (1) Trackbacks (0)
  1. Lyme disease is a condition that is created by a specific bacterium that is referred to as Borrelia Burgdorferi.
    what is lyme disease


Leave a comment


No trackbacks yet.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes