好吧, 首先得承認這個題目寫的誇大了,人才菜鳥一枚,游戲相關編程也是知道點概念。但是本人對游戲開發比較感興趣,相信大多數喜歡玩玩游戲,因為它給人確實帶來很多樂趣,而編程語言的學習最少對於我來說比較乏味了,所以學一門新語言我一般找點小東西實踐一下來增加點學習的動力。今天偶然看到一本書確實值得推薦,介紹python入門和pygame的不錯的外文書籍。傳送門在此:http://cs.simpson.edu/files/CS_Intro_Book.pdf。
這里推薦這本入門書,因為它反復穿插了python基本語法和pygame的示例學習,我覺得這種文章組織形式確實比一般的入門介紹書籍更容易接受(對於本人來說的確如此,不知不覺1小時看了三分之一了)。做個最簡單的小游戲不僅熟悉了python語法而且學到了游戲編程中的簡單的圖形學的只是,對於游戲開發的基礎掌握還是很有幫助滴。有人可能會問到了,又引入pygame這個新框架是不是又要花大時間去熟悉它呢,其實根本不需要,因為這個框架是比較簡單和易懂的 ,只需要查幾個常用的接口函數和方法就能輕松寫一個簡單的游戲demo了,當然有其他游戲引擎知識的話,更不在話下了。其實這本書主要適合對象還是python學習的入門者,通過比較有趣的例子不僅學到了python語法而且鍛煉了 游戲邏輯的實現和圖形開發的基礎知識,在此基礎上你也可以改進示例,豐富游戲的內容了。以一個簡單的示例介紹一下吧,默寫書中一個最簡單動畫入門的例子(雪花飄落)如下:
1 import pygame 2 pygame.init() 3 width, height = 640, 640 4 green=[0,255,0] 5 import random 6 screen=pygame.display.set_mode((width, height)) 7 done=False 8 pos_x=20 9 start_list=[] 10 clock=pygame.time.Clock() 11 for i in range(50): 12 x=random.randrange(0,640) 13 y=random.randrange(0,640) 14 start_list.append([x,y]) 15 while done == False: 16 screen.fill([0,0,0]) 17 for event in pygame.event.get(): 18 # check if the event is the X button 19 if event.type==pygame.QUIT: 20 # if it is quit the game 21 done = True 22 for i in range(len(start_list)): 23 pygame.draw.circle(screen,green,start_list[i],2) 24 start_list[i][1]+=1 25 if start_list[i][1]>640: 26 y=random.randrange(-50,-10) 27 start_list[i][1]=y 28 x=random.randrange(0,640) 29 start_list[i][0]=x 30 clock.tick(20) 31 pygame.display.flip() 32 pos_x+=10 33 if pos_x is 180: 34 pos_x=20 35 pygame.quit() 36 exit(0)
我這里用green來畫圓形的精靈,貌似不是雪花飄落了,應該改成葉子形狀,變成綠葉墜落才比較適合吧。。哈。。:)
代碼寫的沒啥技術含量,不過我覺得這本書帶來的啟示還是挺有用的,邊學新語言邊實現你喜歡的東西才是編程的樂趣所在吧,這也是本人記錄隨筆的初衷。文筆粗糙的很,繼續加油吧!
