遊戲設計-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以及用法。








February 3rd, 2010 - 13:05
Lyme disease is a condition that is created by a specific bacterium that is referred to as Borrelia Burgdorferi.
what is lyme disease