999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的事件精靈組的特點及技術運用研究

2022-04-25 08:36:10楊玄燁
電子元器件與信息技術 2022年2期
關鍵詞:游戲方法設計

楊玄燁

(重慶城市科技學院,重慶 402160)

0 引言

計算機是現代社會人們生活與工作中不可缺少的重要一部分,在對計算機軟件進行使用時,依照不同的需求,產生不同的高級匯編語言,在各種語言的應用中,開發與設計各種軟件是工作人員最主要的工作任務[1]。Python是具有跨平臺性質的計算機程序設計語言,它的腳本程序設計語言及內置代碼庫對多種屬性都有集成,由于其在持續不斷地更新和加入語言新功能,現已廣泛應用于圖形處理、數學處理、文本處理、數據庫編程、網絡編程、多媒體應用等場合[2]。面向對象是其最經典的特征屬性。Python支持面向對象、命令式和函數式的編程方式,能夠進行內存管理,在某些應用中,其開發效率能夠比用C語言開發提高十幾倍[3]。Python語言在具有高效率的同時也完全面向對象,在面向對象的編程工程中具有相當高的效率,其內置語法簡潔并支持動態輸入,在應用程序開發中,可以具有優勢性的高效處理應對多種模式的字節流,實現較快的開發速度,因而也使其被廣泛運用[4]。Python語言在各種編程以及許多操作系統平臺中均被作為腳本語言,用于精簡應用程序以實現有效開發。本文所研究的是事件精靈組的特點及其技術運用。

1 pygame、精靈組的基本概念

1.1 精靈組

在游戲的制作開發中,通常把顯示圖像的對象叫作精靈。它包含圖像加載、位置變化、繪制圖像,這原本需要程序員編寫代碼進行控制的Sprite精靈需要有兩個重要的屬性:image(要顯示的圖像)、rect(圖像要顯示在屏幕的位置)。精靈默認的update方法,在子類可以重寫此方法,它可以在每次刷新屏幕時,更新精靈位置,而精靈組則是多個事件精靈的集合。精靈組對象update方法的調用可以自動對組內每一個精靈的update方法進行調用,除此之外,調用精靈組對象的draw屏幕對象方法可以將組內每一個精靈的image繪制在rect位置。

1.2 Pygame庫

Pygame(www.pygame.org)是Python平臺下的一款著名的2D游戲開發專用庫,該開發庫構建在著名的跨平臺游戲開發庫SDL(simple direct media)之上,其中提供了全面的游戲開發支持模塊,從而可以使游戲開發的難度大為降低[5]。它的集成包括joystick、camera、event、gfxdraw等功能模塊,它作為基于Python平臺而設計出的一款優秀的代碼集成庫,值得稱道的是它的應用不僅適于單一平臺,為了應對平臺多元化的需求,Pygame庫還加入了跨平臺的元素。因此,基于Pygame庫所開發的游戲可以兼容現存市面上各大主流的操作平臺。因它的開發者在開發中注重人機交互的效率,所以它的誕生使得Python使用者對于2D游戲開發的效率和運維更高效,開發者可以便利地、自由地選取庫內已經集成的子模塊,其只需把目光投入游戲的核心模塊,將瑣碎的邊枝問題通過子模塊的調用來解決,這使得開發的質量和速度有了大大的提升。它可以繪制圖形,與游戲桿、游戲手柄、追蹤球進行交互、處理事件與事件、訪問音頻采樣數據等,而對于精靈組的應用,Python專用庫Pygame提供了兩個類pygame.sprite.Sprite,用于存儲圖像數據image和位置rect的對象,而pygame.sprite.Group則是一個組類方法,助益精靈的隊列的出列和入列的效率。

2 Python的精靈組特點及技術運用設計

2.1 精靈組的特點

2.1.1 精靈組的功能模塊

精靈組是多個精靈的集成,如圖1,在Pygame庫中有許多便于開發者開發的源代碼模塊,精靈組的使用需要通過各個固有方法的使用來進行文檔信息的傳遞:add方法可以向組中增加精靈,在精靈生成之后需要通過add方法傳入游戲主循環之中;sprites方法可以返回所有精靈列表,這是一個后端操作,它的使用可以便于后端系統讀取精靈和操作信息。同時在游戲設計中精靈的設置需預置image和rect屬性,通過對于image和rect屬性的傳入生成相關的精靈,在每個精靈生成后都需要派生精靈子類,image屬性可以記錄圖像數據,rect屬性可以記錄英雄在屏幕上的位置,精靈組的draw方法可以將組中所有精靈的image,繪制到Surface的rect位置,形成屏幕的動態畫像,而update方法可用于對精靈位置的更新,kill方法可以將精靈從所有組刪除,即代表精靈的死亡(圖2)。精靈組通過各功能模塊的調用和數據傳遞呈現連續的圖像變化,這是一個密不可分的系統整體。

圖1 精靈組的功能模塊及位置

圖2 精靈組的功能位置

2.1.2 精靈組的位置

在一個游戲運行過程中,本質上分為游戲初始化和游戲循環,從游戲初始化開始,需要精靈組和精靈在系統內部的自我創建,在其創建之后,精靈組會對游戲的開始界面等設置進行預加載,越大的游戲所需要生成創建的精靈越多,同時對文檔讀取需求越多,因此需要的時間就越長,為此游戲廠商為了對加載時間進行可視化表達,通常會在屏幕設置一個加載進度條以統計加載時間。

游戲循環:update、draw、pygame.display.update的交替循環,它會對于上一模塊所傳遞的數據流在后臺進行新圖像的更新、繪寫,同時刪除舊的圖像,毀滅失效的精靈,將新生成的精靈更新到顯示設備上。經研究表明,人體所能接受的極限幀率一般為12幀每秒,因此決定了圖像的刷新速度的幀率遠遠大于人體視覺的極限幀率,這樣才可以將動態圖像反饋至我們視覺。通過這個框架可以形成UI游戲,開發出2D游戲。

2.1.3 精靈組的運用分析

對于精靈組的設計需要構建一個完整的游戲,精靈組本質上是對數據的后端處理,它需要有數據的傳入和輸出,而對于數據文檔的傳遞是游戲運行的核心。如圖3所示,在游戲初始化階段需要先后構建GUI游戲窗體,再自動調用事先預置Pygame庫游戲時鐘模塊,對游戲運行時間計時。然后是創建精靈、精靈組,用隨機函數生成各個精靈組,由于現代計算機CPU強大的計算能力,這些行為的加載,需要的時間幾乎可以忽略不計。預加載完畢后,進入游戲的主循環,先是通過讀取內部代碼預置的刷新率或者是讀取文檔的相關信息,自我設置刷新幀率,因為對于游戲界面的更新要求具有超視覺速度,所以FPS最低要求大于12幀每秒,然后是建立事件監聽模塊進行人機交互,具體表現為通過讀取系統鍵盤操作數據,并加與處理以及各個精靈組的生成與死亡,使數據被接受后會繼續傳入下一個模塊。

圖3 精靈組的設計

碰撞檢測模塊將會對用戶的操作產生一個碰撞評估,根據評估判斷結果,精靈組會進行相應的圖像處理和更新,形成各個事件,使之以可視化的形式與用戶進行交互,即更新屏幕顯示,并且這個過程是持續的、高速的,用戶通過對屏幕圖像信息的讀取在大腦中產生事件認知。

3 實驗的設計方法

現今,主流的設計方式具有兩種,分別是結構化設計和面向對象化的設計。結構化方法著眼于功能,強調中心模塊化,推出模塊化、自頂向下、逐步求精的高效設計過程,系統是實現集成化模塊功能的函數以及過程,體現出結構清晰、可讀性好的特點。面向對象方法則以對象的數據為基礎和中心,制定系統框架,因此對于類中的數據,穩定性得到大大提升,對實際物體模型的建立更加全面、深入。在對本實驗方式的選擇上我選擇了更優秀的面向對象化的方式。

3.1 結構化設計

(1)設計思維:結構化編程比較難于封裝,復用性上也不如面向對象編程,缺乏擴展性,在進行程序設計的時候只將系統著眼于現有業務功能的實現,沒有考慮系統將來的業務變化情況,除此之外,它靈活性差、違反職能均衡原則。

(2)封裝性:因為其采用結構化程序分析設計程序時,沒有對軟件系統的設計和實現進行合理的分工,需要將客觀世界模型分解一個一個功能,每個功能按照順序用以完成一定的數據處理,因此結構化編程封裝難度較大。對于私有的方法,較難控制,敏感信息就比較難隱藏。

(3)復用性:在傳統的結構化程序設計中,開發應用程序是依據過程的,數據的工程代碼與操作代碼具有獨立性、代碼特異性,難以重用,因此在代碼量過大時,具有維護數據和代碼一致性的困難。

3.2 面向對象化設計

(1)設計思維:從計算機程序工作原理來看,“輸入—運算—輸出”。面向對象在分析問題時,不同于傳統的面向對象過程,它有著自己獨特的特點:以對象為單位,考慮它的屬性及方法,在分析問題時,面向過程是需要以一個具體的流程(事務過程)為單位,在開發中考慮它的實現。

(2)封裝性:面向對象編程的封裝,也就是把客觀事物進行抽象類封裝,使用時可以實列化為多個對象,并且類可以使用protecte、private、public來定義內部數據的屬性,protected讓可信的類或者對象對數據發出訪問,不可信操作無法訪問,隱藏內部信息。

(3)復用性:面向對象化設計所擁有的繼承性及封裝性思想形成重用方法,對程序的容錯率有了極大的提升,提高程序運行的效率。

4 結語

綜上所述,它已經廣泛應用于實際編程工作中,一方面很好地提高了人們生活、工作以及學習的便捷性,另一方面也有效促進了我國社會信息化建設水平的不斷提升。從整體看,Python最為突出的特點就是簡潔、類庫,將其應用到平臺開發中可以突顯出極大的優勢,因此對Python的進一步研究應用勢在必行。Python語言的在AI、自動化,程序設計等各方面領域的優勢,亦將在元宇宙得到新應用和新擴展,對于基于Python的多元化開發與設計,在未來擁有廣闊的前景。

猜你喜歡
游戲方法設計
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
捕魚
主站蜘蛛池模板: 国产日韩AV高潮在线| 久久精品中文无码资源站| 一本大道香蕉高清久久| 日韩资源站| 亚洲综合专区| 国产麻豆精品在线观看| 国产欧美视频在线| 五月婷婷中文字幕| 在线五月婷婷| 国产18在线| 亚洲成人一区二区三区| 五月天在线网站| 在线观看视频99| 一级毛片免费观看久| 天天综合色网| 亚洲欧美激情小说另类| 女人一级毛片| 国产肉感大码AV无码| 天堂av综合网| 免费看美女自慰的网站| 国产美女精品在线| 草草影院国产第一页| 亚洲国产成人精品一二区| 亚洲熟女中文字幕男人总站| 日韩 欧美 国产 精品 综合| 日本久久免费| 波多野结衣视频一区二区| 又爽又大又光又色的午夜视频| 国语少妇高潮| 毛片免费试看| 五月天丁香婷婷综合久久| 六月婷婷激情综合| 国产精鲁鲁网在线视频| 亚洲Av激情网五月天| 久久久亚洲国产美女国产盗摄| 性色一区| 婷婷色中文网| 中日韩欧亚无码视频| 国产粉嫩粉嫩的18在线播放91| 国产一级无码不卡视频| 2021国产精品自产拍在线| 欧美性色综合网| 国产麻豆91网在线看| 男人的天堂久久精品激情| 99九九成人免费视频精品| 欧洲熟妇精品视频| 国产欧美视频综合二区 | 久久精品这里只有精99品| 国产在线啪| 欧美黄网在线| 国产亚洲欧美另类一区二区| 啪啪免费视频一区二区| 91高清在线视频| 国产成人a在线观看视频| 国产一级小视频| 国产成人亚洲无吗淙合青草| 亚洲欧美人成电影在线观看| 99re经典视频在线| 强奷白丝美女在线观看| 亚洲区第一页| 成年人国产视频| 伊伊人成亚洲综合人网7777| 欧美午夜久久| 婷婷色狠狠干| 亚洲视频二| 永久免费无码成人网站| 狠狠久久综合伊人不卡| 日韩国产亚洲一区二区在线观看 | 国产青榴视频| 婷婷激情五月网| 欧美日韩国产在线观看一区二区三区 | 777午夜精品电影免费看| 欧洲精品视频在线观看| 2020极品精品国产| 国产精品夜夜嗨视频免费视频| 欧洲日本亚洲中文字幕| 国产精品一线天| A级毛片高清免费视频就| 欧美日韩国产综合视频在线观看| 91网址在线播放| 欧美日韩资源| 超碰91免费人妻|