日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pygame只能编写游戏_游戏框架搭建

發(fā)布時(shí)間:2023/12/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pygame只能编写游戏_游戏框架搭建 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

游戲框架搭建

目標(biāo) —— 使用 面相對(duì)象 設(shè)計(jì) 飛機(jī)大戰(zhàn)游戲類

目標(biāo)

  • 明確主程序職責(zé)
  • 實(shí)現(xiàn)主程序類
  • 準(zhǔn)備游戲精靈組

01. 明確主程序職責(zé)

  • 回顧 快速入門案例,一個(gè)游戲主程序的 職責(zé) 可以分為兩個(gè)部分:
    • 游戲初始化
    • 游戲循環(huán)
  • 根據(jù)明確的職責(zé),設(shè)計(jì) PlaneGame 類如下:

提示 根據(jù) 職責(zé) 封裝私有方法,可以避免某一個(gè)方法的代碼寫得太過冗長
如果某一個(gè)方法編寫的太長,既不好閱讀,也不好維護(hù)!
  • 游戲初始化 —— __init__() 會(huì)調(diào)用以下方法:

方法職責(zé)__create_sprites(self)創(chuàng)建所有精靈和精靈組

  • 游戲循環(huán) —— start_game() 會(huì)調(diào)用以下方法:

方法職責(zé)__event_handler(self)事件監(jiān)聽__check_collide(self)碰撞檢測 —— 子彈銷毀敵機(jī)、敵機(jī)撞毀英雄__update_sprites(self)精靈組更新和繪制__game_over()游戲結(jié)束

02. 實(shí)現(xiàn)飛機(jī)大戰(zhàn)主游戲類

2.1 明確文件職責(zé)

  • plane_main
  • 封裝 主游戲類
  • 創(chuàng)建 游戲?qū)ο?/li>
  • 啟動(dòng)游戲
    • plane_sprites
      • 封裝游戲中 所有 需要使用的 精靈子類
      • 提供游戲的 相關(guān)工具

    代碼實(shí)現(xiàn)

    • 新建 plane_main.py 文件,并且設(shè)置為可執(zhí)行
    • 編寫 基礎(chǔ)代碼
    import pygame from plane_sprites import * ? ? class PlaneGame(object):"""飛機(jī)大戰(zhàn)主游戲""" ?def __init__(self):print("游戲初始化") ?def start_game(self):print("開始游戲...") ? ? if __name__ == '__main__':# 創(chuàng)建游戲?qū)ο骻ame = PlaneGame() ?# 開始游戲game.start_game() ?

    2.3 游戲初始化部分

    • 完成 __init__() 代碼如下:
    def __init__(self):print("游戲初始化")# 1. 創(chuàng)建游戲的窗口self.screen = pygame.display.set_mode((480, 700))# 2. 創(chuàng)建游戲的時(shí)鐘self.clock = pygame.time.Clock()# 3. 調(diào)用私有方法,精靈和精靈組的創(chuàng)建self.__create_sprites() ? def __create_sprites(self):pass

    使用 常量 代替固定的數(shù)值

    • 常量 —— 不變化的量
    • 變量 —— 可以變化的量

    應(yīng)用場景

    • 在開發(fā)時(shí),可能會(huì)需要使用 固定的數(shù)值,例如 屏幕的高度 是 700
    • 這個(gè)時(shí)候,建議 不要 直接使用固定數(shù)值,而應(yīng)該使用 常量
    • 在開發(fā)時(shí),為了保證代碼的可維護(hù)性,盡量不要使用 魔法數(shù)字

    常量的定義

    • 定義 常量 和 定義 變量 的語法完全一樣,都是使用 賦值語句
    • 常量 的 命名 應(yīng)該 所有字母都使用大寫,單詞與單詞之間使用下劃線連接

    常量的好處

    • 閱讀代碼時(shí),通過 常量名 見名之意,不需要猜測數(shù)字的含義
    • 如果需要 調(diào)整值,只需要 修改常量定義 就可以實(shí)現(xiàn) 統(tǒng)一修改
    提示:Python 中并沒有真正意義的常量,只是通過命名的約定 —— 所有字母都是大寫的就是常量,開發(fā)時(shí)不要輕易的修改!

    代碼調(diào)整

    • 在 plane_sprites.py 中增加常量定義
    import pygame ? # 游戲屏幕大小 SCREEN_RECT = pygame.Rect(0, 0, 480, 700)
    • 修改 plane_main.py 中的窗口大小
    self.screen = pygame.display.set_mode(SCREEN_RECT.size)

    2.4 游戲循環(huán)部分

    • 完成 start_game() 基礎(chǔ)代碼如下:
    def start_game(self):"""開始游戲"""print("開始游戲...")while True:# 1. 設(shè)置刷新幀率self.clock.tick(60)# 2. 事件監(jiān)聽self.__event_handler()# 3. 碰撞檢測self.__check_collide()# 4. 更新精靈組self.__update_sprites()# 5. 更新屏幕顯示pygame.display.update() ? def __event_handler(self):"""事件監(jiān)聽"""for event in pygame.event.get():if event.type == pygame.QUIT:PlaneGame.__game_over() ? def __check_collide(self):"""碰撞檢測"""pass ? def __update_sprites(self):"""更新精靈組"""pass@staticmethod def __game_over():"""游戲結(jié)束""" ?print("游戲結(jié)束")pygame.quit()exit()

    03. 準(zhǔn)備游戲精靈組

    3.1 確定精靈組

    3.2 代碼實(shí)現(xiàn)

    • 創(chuàng)建精靈組方法
    def __create_sprites(self):"""創(chuàng)建精靈組"""# 背景組self.back_group = pygame.sprite.Group()# 敵機(jī)組self.enemy_group = pygame.sprite.Group()# 英雄組self.hero_group = pygame.sprite.Group() ?
    • 更新精靈組方法
    def __update_sprites(self):"""更新精靈組"""for group in [self.back_group, self.enemy_group, self.hero_group]:group.update()group.draw(self.screen)

    總結(jié)

    以上是生活随笔為你收集整理的pygame只能编写游戏_游戏框架搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 视频二区在线观看 | 九色porny蝌蚪视频 | 亚洲av成人精品午夜一区二区 | 91pao| 邻家有女4完整版电影观看 欧美偷拍另类 | 人妻无码一区二区三区 | 干一夜综合 | 色婷婷色丁香 | 欧美 日韩 国产 成人 | av老司机福利 | 在线精品小视频 | 日本在线网址 | 色狠狠久久av大岛优香 | 欧美性受xxxx黑人xyx性 | 黄色福利在线观看 | 制服中文字幕 | av免费观看网站 | 国外亚洲成av人片在线观看 | 成年丰满熟妇午夜免费视频 | 久久久蜜桃一区二区人 | 黄色图片小说 | 曰本女人与公拘交酡 | 国产精品自拍在线 | 五月天婷婷色综合 | 狠狠躁日日躁夜夜躁2022麻豆 | 91婷婷 | 久久精品女人 | 日本在线 | 成人黄色录像 | 红桃视频一区二区三区免费 | 一区二区啪啪啪 | 欧美精品播放 | 西欧毛片 | 欧美另类精品xxxx孕妇 | av免费入口 | 国产精品日本 | www.久久久久久久久 | 狠狠爱亚洲 | 欧美在线视频一区 | 日韩精品一区二区三区视频 | 国产网站免费在线观看 | 久免费一级suv好看的国产 | 亚洲春色在线观看 | jizz黄色片 | 国产精品无码久久av | 日韩性网 | 国产精品一区不卡 | 日韩中文字幕久久 | 又黄又爽一区二区三区 | 四虎在线免费 | 在线观看免费高清 | 精品国产一区二区三区久久 | 久久久久久亚洲 | 国产视频入口 | 国产黄色免费网站 | www男人天堂| 中文字幕被公侵犯的漂亮人妻 | 国产久久精品 | 一级黄色免费视频 | 国产精品污网站 | 日韩欧美精品免费 | 在线亚洲综合 | 91视频直接看 | 免费午夜视频在线观看 | 少妇大叫太粗太大爽一区二区 | 色吧婷婷 | 国产一区一一区高清不卡 | 91黄色大片| 亚洲午夜电影网 | 国产精品一品二品 | 色天使在线视频 | 久久久久久久久久久福利 | 无码播放一区二区三区 | 亚洲成人tv | 91视频播放| 国产一区二区欧美 | 美女黄色一级视频 | 天堂av一区二区 | 色妞综合网 | 一区二区视频免费在线观看 | 亚洲熟乱| 日本中文在线 | 久久精品噜噜噜成人88aⅴ | 91国产视频在线播放 | 你懂的网站在线 | 午夜精品福利一区二区 | 国产精品69毛片高清亚洲 | 亚洲作爱网 | 免费的黄色网址 | 国产亚洲精品av | 爆操女秘书 | 亚洲午夜精品一区二区三区他趣 | 日本羞羞网站 | aaa级黄色片 | 国产熟女高潮一区二区三区 | 天天干天天天天 | 久久无码人妻一区二区三区 | 色婷视频| 免费大片黄在线观看 |