上一篇主要涉及的實際上是我我的的一些初期目標,以及解決方式。雖然提了提Parser類的實現,可是代碼畢竟不是主要討論的對象。並且很明顯的,上一篇幾乎與galgame製做無關……python
這一篇主要討論的實現,中心目標是實現一個「能顯示背景圖片,播放背景音樂,如同galgame般顯示文本」的試驗程序。稱之爲試驗程序的主要緣由是:它的代碼可能很亂,命名也是隨意命名的,無視耦合……這部分代碼只用來顯示相關代碼是否正常運行------不過提及來,大多數人都是這樣作的?git
上一篇忘了說,這個項目已經完成的部分我已經上傳至github(最近應該沒問題了吧?),有興趣的歡迎圍觀和clone,branch也是大大歡迎的。地址是這個:項目地址。github
關於git已經github的使用,有須要的話,請看一下這篇博客 git教學,或者看看官方的文檔。測試
很少說了,接下來是正文部分。字體
上一篇中,經過Parser類,能夠獲得三個變量,分別是背景圖片的名字,背景音樂的名字,和劇情文本的內容,可是我不許備引用這三個變量。緣由是,文件讀入的文字,會受操做系統的文字編碼影響。固然通常來講是沒問題的,可是如果編寫跨平臺的程序時,就會很麻煩。最終完成的程序是可以跨平臺運行的,文字編碼這部分固然使得我非常困擾,這部分說長不長,說短不短,我留到最後來講說。編碼
後面的內容涉及了許多pygame的內容,官方文檔很棒,eyehere的系列文章也至關棒,沒接觸過pygame的建議都去看看。eyeherespa
下面這幾個變量已是所要處理的所有內容了……至關簡單,名字是隨意寫的。操作系統
backgound = 'test.jpg'.net
bgm = 'sanae.wav'code
text = u'博主正在下一盤大棋……'
完成上文那個簡單目標的代碼以下
# -*- coding: utf-8 -*- import pygame from pygame.locals import * from sys import exit background = 'test.jpg' bgm = 'sanae.wav' text = u'博主正在下一盤大棋……' ##如下三行幾乎是定式,至少我都有用 pygame.init() screen = pygame.display.set_mode((800,600),0,32) clock = pygame.time.Clock() ##標題欄上的名字,或許你習慣寫成遊戲的名字? pygame.display.set_caption('Sanae') ##這個是把圖片轉成surface,surface是pygame中一個很重要的概念 background = pygame.image.load(background).convert() ##讀入bgm pygame.mixer.music.load(bgm) ##載入字體,我這裏用的是hksn,你能夠隨便下,雅黑很不錯。記住是要能顯示中文的 font = pygame.font.Font("hksn.ttf",20) ##把text內容轉成surface,True那個是字體平滑仍是什麼的,最後那個是顏色 text_surface = font.render(text,True,(0,0,255)) ##初始化一個供綁定的TextRect TextRect = pygame.Surface((200,200)) ##白色填充 TextRect.fill((0xFF,0xFF,0xFF)) ##把文本內容綁定到TextRect上去 TextRect.blit(text_surface,(0,0)) ##播放背景音樂 pygame.mixer.music.play(-1,0,0) ##遊戲主循環 while True: for event in pygame.event.get(): exit() ##限定幀爲5,事實上,galgame的幀數一般都很低很低,我估計1都行 clock.tick(5) ##下面把背景圖片和文字綁定到遊戲屏幕上去,注意順序 screen.blit(background,(0,0)) screen.blit(TextRec,(0,0)) pygame.display.update()
就這樣,如今一個能播放音樂,能展現一幅圖片,還能醜醜地顯示文字的小玩意就作好了。固然始終要明白:這只是爲了測試相關功能實現的試驗程序而已,真正的程序可不能這麼水。可是你要知道,真正程序的核心,也就這樣……很簡單?
這篇內容很少,我原本想接着寫下去的,可是考慮到下面的代碼不少,估計篇幅很長,乾脆拆成兩篇,閱讀更省力~~下一篇的主要是封裝,以及異常。