亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用pygame開發(fā)的游戲發(fā)布+小總結(jié)

songze / 2374人閱讀

摘要:于是準(zhǔn)備在這里總結(jié)下用開發(fā)游戲的經(jīng)驗(yàn),大致講一下這個(gè)游戲是怎么開發(fā)出來的,代碼比較長就不貼在這里了。為本游戲的證物系統(tǒng),管理證物的顯示,指證等。

概述

大約兩年前接觸了python,然后就愛上了這個(gè)語言。
然后就想用它寫游戲,很快就找到了pygame這個(gè)庫,但是pygame貌似十分冷門,網(wǎng)上教程也比較少,好在還有個(gè)文檔來參考。
于是胡亂搞了很久,前后搞了彈幕射擊類(模擬東方project系列)、ARPG和這次的AVG(文字冒險(xiǎn))。這次的文字冒險(xiǎn)游戲由于有前幾次的經(jīng)驗(yàn)積累,耗時(shí)5天成功開發(fā)了出來。于是準(zhǔn)備在這里總結(jié)下用pygame開發(fā)游戲的經(jīng)驗(yàn),大致講一下這個(gè)游戲是怎么開發(fā)出來的,代碼比較長就不貼在這里了。但是會附上作品和源碼,以供有興趣的同學(xué)參考學(xué)習(xí)和玩耍。
這里主要是講思想。

游戲制作 環(huán)境

python2.7+制作游戲需要安裝的pygame
操作系統(tǒng)是在windows下,而且由于是py2exe發(fā)布的,所以只能在windows下運(yùn)行
(但是源碼也許能在其他OS上跑,好像沒有依賴windows的庫)

游戲資源

游戲資源就是游戲要使用的音樂、圖片、文字等,本游戲使用一下幾類:

pics/ 圖片信息

diags/ 游戲中的對話

fonts/ 字體

item/ 游戲中的道具信息

music/ 音樂信息

sound/ 音效

類的設(shè)計(jì)

類的設(shè)計(jì)大部分依賴于游戲的資源,主要有這些類:

Music

Sound

Txt

Button

Lh

Moji

Item

Rule

Sysb

Story

其中Music,Sound,Lh,Moji,Item分別是讀取文件中的音樂、音效、立繪圖片、對話內(nèi)容和道具的信息并組織管理起來。其中Moji類還要管理游戲中的對話部分,顯示哪一條語句、畫哪些立繪等。

Txt是游戲中需要在哪些位置顯示一些文字時(shí)需要,例如左上角顯示位置,按鈕上的提示信息等。

Button是一個(gè)矩形按鈕,可以為其配置位置、大小、圖片、快捷鍵、功能等。在很多時(shí)候,我們都需要一個(gè)按鈕。

Sysb為本游戲的證物系統(tǒng),管理證物的顯示,指證等。

Rule為游戲規(guī)則,每個(gè)游戲都有它的規(guī)則,小到先畫背景,再畫人物,再畫對話框;具體到比如彈幕射擊類的自機(jī)是否與地方彈幕碰撞?是則發(fā)生miss等。

Stroy為游戲劇本,由一個(gè)關(guān)鍵變量event值控制故事走向,也包括flag的控制功能。本來我是將劇本都寫入這個(gè)類里面,但是這樣若故事長的話會導(dǎo)致代碼長度劇增,而且也不美觀。所以就把它改成了個(gè)解釋器,用來讀外部一個(gè)文件內(nèi)的“指令”,并解釋執(zhí)行從而控制游戲走向。這樣的話,劇本就可以寫在外部文件,而且主程序?qū)С鰁xe后,不會編程的人也可以嘗試?yán)眠@些指令寫出新的故事讓游戲程序去運(yùn)行。關(guān)于這個(gè)游戲的解釋指令問題,有興趣的可以去下載游戲,里面有文檔說明。(可能算是個(gè)超劣質(zhì)版的橙光?)

主程序

有了這些大類,已經(jīng)可以想出游戲的框架了,看看主程序的循環(huán)就知道了:

while True:
    keyp=pygame.key.get_pressed()
    moup=pygame.mouse.get_pressed()
    mou_pos=pygame.mouse.get_pos()
    timep = clock.tick(60)
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
    rule.run()
    story.run()

首先獲取鍵盤的按鍵狀態(tài)、鼠標(biāo)的按鍵狀態(tài)和鼠標(biāo)位置,用來進(jìn)行交互;
然后控制一下幀率,幀率在實(shí)時(shí)類游戲中很重要,用來掌控時(shí)間,在本游戲中用處很小。設(shè)置好關(guān)閉;
最后讓規(guī)則和故事“run”就可以了。

幾乎所有的類都有個(gè)“run”方法,只要它存在在游戲中,它每幀都會run一次,實(shí)現(xiàn)它該有的作用。例如Button類每次run都會檢測鼠標(biāo)是不是在自己的范圍內(nèi),是的話繪制第二個(gè)圖像,再進(jìn)一步判斷鼠標(biāo)是否點(diǎn)擊,是的話運(yùn)行自己的“功能”。

游戲

這里介紹一下這次開發(fā)的游戲,類型是文字冒險(xiǎn)游戲:
是類似逆轉(zhuǎn)裁判的游戲方式,在自由行動(dòng)時(shí),q為調(diào)查,w為移動(dòng),e為交談;
r為看已獲取的證物,按方向鍵或a、d切換,并可以在對話中按z指證;

運(yùn)行時(shí)是這個(gè)樣子的:

游戲有兩個(gè)結(jié)局。

游戲、代碼地址(順便附帶了第一次制作的半成品彈幕射擊游戲):
網(wǎng)盤

游戲素材來源于逆轉(zhuǎn)裁判、仙劍和網(wǎng)上。

其他

做游戲真是比較開心,但是這大概是第一次算是完整的做出了個(gè)游戲嗎?(還是因?yàn)槭罴贈]回家才有的干活動(dòng)力)

這大概是最后一次使用pygame去開發(fā)游戲?pygame畢竟是比較老了,很久沒更新了,感覺很多功能不是特別爽。下面可能會去研究研究pyglet。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/40689.html

相關(guān)文章

  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Pygame實(shí)戰(zhàn)】開心——消消樂,你樂,我樂,大家樂~

    摘要:正文開心消消樂分為二部分首先是開心然后是消消樂游戲嘛嘿嘿一開心小故事三則近視聰明的學(xué)生殺手二消消樂游戲素材圖片開心消消樂語音提示環(huán)境安裝本文是由寫的小游戲。 導(dǎo)語 你今天消消樂了嗎? ? 哈嘍哈嘍~木木子之前不是寫過一篇百變消消樂嘛? 可能你們不記得了,沒關(guān)系——今天重溫一下,來一篇開心?...

    changfeng1050 評論0 收藏0
  • Pygame實(shí)戰(zhàn)】嗷大喵歷險(xiǎn)記之程序員吸貓指南:真太上頭了~

    摘要:嗷大喵和他的小伙伴們快樂的生活在一起,他們總是能給大家?guī)須g樂。大家都說嗷大喵真棒。大家要做的就是解救嗷大喵遠(yuǎn)離惡龍。 導(dǎo)語 哈嘍~大家好,我是木子,首先今天木子先給大家講個(gè)小故事: 在喵界有這樣一只網(wǎng)紅——混跡于二次元、表情包界,賤萌活潑,調(diào)皮機(jī)靈,白色的大圓臉,脖子 上系了個(gè)鈴鐺,年齡不...

    dreamans 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<