• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            全民飛機大戰刷金幣(全民飛機大戰刷金幣軟件)

            更新時間:2023-03-02 09:45:09 閱讀: 評論:0

            導語

            三月疫情原因,很多地方都封閉式管理了!

            在回家無聊的打醬油,小編今天給大伙帶來了一波小游戲——全民左右飛機大戰!在這個快熬

            不下去的日子里,打打飛機消遣閑暇時間,也是蠻愜意的,這幾天小編必須全身心投入到飛機

            大戰中來!肝了幾天這款小游戲終于面市啦!

            ??

            正文

            這次的游戲操作很簡單,就是左右移動飛機,躲避敵人飛機,打落敵機會隨機掉落金幣,我們

            要打擊的敵人!每個玩家有五條命,被敵機撞到即掛掉一條命,所以要珍惜生命喲!這款是升

            級版本的飛機大戰哦~還有更多不同的飛機類型等你來探索,看看你能闖過多少關吧!

            小編才闖到第二個飛機,相信你肯定會超過我滴!來試試呀~

            一、環境安裝

            1)各種素材(圖片、字體等)

            2)運行環境

            小編使用的環境:Python3、Pycharm社區版、Pygame模塊部分自帶。

            模塊安裝:pip install -i https://pypi.douban.com/simple/ pygame

            二、代碼展示

            1)文章思路

            Plane 打飛機小游戲 ——

            游戲說明: * 目前只做了一個關卡,有三種敵機,自己飛機的子彈類型有四種 * 在游戲中空格鍵

            是暫停,游戲結束后ESC鍵是重新開始 * 暫時沒有加入音效 * 游戲窗口尺寸為512*768

            關卡內元素介紹 ——

            1. ENEMY_RED:紅色小敵機,數量多,出現頻率高,擊落后有機率出現錢幣,可以加分。

            2. ENEMY_BLUE:藍色中型敵機,出現頻率低,需要多顆子彈擊落,擊落后有機率出現星

            星,可以加強火力 。

            3. ENEMY_BOSS:綠色大型敵機,出現頻率低,可以發射子彈,需要很多顆子彈擊落,擊落后

            得分較高 。

            4. BULLET_BOSS: 綠色大型敵機發射的子彈

            5. OWN: 自己的飛機 6. OWN_BULLET: 自己飛機發射的子彈

            系統文件——

            【start.py】:開始游戲的主文件 -

            【level_01.py】:游戲第一關 - 【sprites.py】:建立游戲精靈類文件

            【initialize.py】:系統設置文件,包含各種游戲基本元素的設定值 - .fonts\...:游戲使用的

            字體 - .images\...:游戲使用的圖像文件 - .screenshot...:游戲畫面截屏 ## 游戲畫面

            截屏 * 游戲載入圖片 ![游戲載入]

            2)附代碼講解

            配置的文件、窗口、圖片等設置。

            import pygameSCREEN_RECT = pygame.Rect(0, 0, 512, 768) # 用一個常量來存儲屏幕的位置和大小,常量用全大寫表示SCREEN_CENTER = [SCREEN_RECT.width/2, SCREEN_RECT.height/2]CREATE_ENEMY_EVENT = pygame.USEREVENT # 敵機事件定時器常量值OWN_FIRE_EVENT = pygame.USEREVENT + 1 # 發射子彈定時器常量值BONUS_ENEMY_EVENT = pygame.USEREVENT + 2 # 加分敵機的定時器常量值STAR_ENEMY_EVENT = pygame.USEREVENT + 3 # 星星敵機的定時器常量值BOSS_ENEMY_EVENT = pygame.USEREVENT + 4 # BOSS敵機的定時器常量值BULLET_BOSS_EVENT = pygame.USEREVENT + 5 # BOSS敵機的子彈定時器常量值ENEMY_TIMER = 600 # 敵機出現的時間頻率BULLET_TIMER = 400 # 子彈出現的時間頻率BONUS_TIMER = 5000 # 加分敵機出現的時間頻率START_TIMER = 20000 # 星星敵機出現的時間頻率BOSS_TIMER = 120000 # BOSS敵機出現的時間頻率BULLET_BOSS_TIMER = 1500 # BOSS敵機子彈出現的時間頻率LIFE_NUMS = 5 # 生命值MOVE_SPEED = 5 # 已方飛機移動速度STAR_ENEMY_LIFE = 6 # 打掉星星敵機需要的子彈BOSS_ENEMY_LIFE = 100 # 打掉BOSS敵機需要的子彈BACKGROUND = r'.imagesackground.png'GAME_OVER = r'.imagesgameover.png'OWN_IMAGE = r'.imagesown.png'OWN_DOWN_IMAGE = r'.imagesown_died.png'ENEMY_RED_IMAGE = r'.imagenemy_red.png'ENEMY_BLUE_IMAGE = r'.imagenemy_blue.png'ENEMY_DOWN_IMAGE = r'.imagenemy_down.png'BULLET_IMAGE = r'.imagesullet.png'BULLET_BOSS_IMAGE = r'.imagesullet_boss.png'LIFE_IMAGE = r'.imageslife.png'GOLD_COIN_IMAGE = r'.imagesonus.png'STAR_IMAGE = r'.imagesstar.png'READY_IMAGE = r'.imageady.png'BOSS_IMAGE = r'.imagesoss.png'LOGO_IMAGE = r'.imageslogo.ico'SYS_FONT = r'.fontsBOLDER.ttf'GAME_NAME = '小飛機'FPS = 60 # 屏幕刷新頻率

            3)主程序

            import threadingfrom sprites import *from initialize import *# noinspection PyPep8Naming# 主游戲類class PlaneGame(object): def __init__(lf): lf.score = 0 lf.bullet_grade = 1 # 初始的子彈等級 lf.boss_flag = 0 # 判斷BOSS是否出現 lf.ready_time = pygame.time.get_ticks() # 用來控制顯示ready畫面的時鐘 lf.star_enemy_life = STAR_ENEMY_LIFE # 星星敵機需要幾顆子彈 lf.boss_enemy_life = BOSS_ENEMY_LIFE # BOSS敵機需要幾顆子彈 lf.bullet_type = {1: 'One', 2: 'Two', 3: 'Three', 4: 'Four'} lf.screen = pygame.display.t_mode(SCREEN_RECT.size) logo = pygame.image.load(LOGO_IMAGE) # 設置游戲窗口圖標 pygame.display.t_icon(logo) pygame.display.t_caption(GAME_NAME) # 設置游戲窗口名稱 lf.clock = pygame.time.Clock() # 創建游戲時鐘 lf.__createSprite() # 調用私有方法, 創建精靈和組 pygame.time.t_timer(CREATE_ENEMY_EVENT, ENEMY_TIMER) # 設置定時器事件 pygame.time.t_timer(OWN_FIRE_EVENT, BULLET_TIMER) pygame.time.t_timer(BONUS_ENEMY_EVENT, BONUS_TIMER) pygame.time.t_timer(STAR_ENEMY_EVENT, START_TIMER) pygame.time.t_timer(BOSS_ENEMY_EVENT, BOSS_TIMER) pygame.time.t_timer(BULLET_BOSS_EVENT, BULLET_BOSS_TIMER) lf.life_num = LIFE_NUMS def __createSprite(lf): """ 私有方法,創建精靈和組 """ bg1 = BackGround(BACKGROUND) # 創建背景和組 bg2 = BackGround(BACKGROUND) bg2.rect.y = -bg2.rect.height # ??? lf.back_group = pygame.sprite.Group(bg1, bg2) lf.ready_go_group = pygame.sprite.Group() # 創建ready組 lf.ready_go_group.add(ReadyGo()) lf.enemy_red_group = pygame.sprite.Group() # 創建紅色敵機組 lf.enemy_down_group = pygame.sprite.Group() # 創建被擊中敵機組 lf.bonus_enemy_group = pygame.sprite.Group() # 創建加分敵機組 lf.gold_coin_group = pygame.sprite.Group() # 創建金幣組 lf.star_enemy_group = pygame.sprite.Group() # 創建星星敵機組 lf.boss_enemy = EnemyBoss() # ??? lf.boss_enemy_group = pygame.sprite.Group() # 創建BOSS敵機組 lf.bullet_boss_group = pygame.sprite.Group() # 創建BOSS子彈組 lf.star_coin_group = pygame.sprite.Group() # 創建星星組 lf.own_died_group = pygame.sprite.Group() # 創建自己死亡飛機的組 lf.__retOwn() # 創建自己的飛機和組 def start(lf): """ 游戲開始 """ while True: lf.clock.tick(FPS) # 刷新幀率 lf.__eventHandler() # 事件監聽 lf.__checkCollide() # 碰撞檢測 lf.__updateSprites() # 更新/繪制畫面 pygame.display.update() # 更新屏幕顯示 lf.__gameOver() # 游戲結束 def __eventHandler(lf): """ 事件監聽(監聽定時器常量) """ for event in pygame.event.get(): if event.type == pygame.QUIT: # 判斷是否退出游戲 PlaneGame.quit() elif event.type == CREATE_ENEMY_EVENT: # 當事件值等于CREATE_ENEMY_EVENT時,將敵機精靈添加到組 enemy = EnemyRed() lf.enemy_red_group.add(enemy) elif event.type == BONUS_ENEMY_EVENT: # 當事件值等于BONUS_ENEMY_EVENT時,將加分敵機加入到組 bonus_enemy = EnemyRed() lf.bonus_enemy_group.add(bonus_enemy) elif event.type == STAR_ENEMY_EVENT: # 當事件值等于STAR_ENEMY_EVENT時,將星星敵機加入到組 lf.star_enemy_life = STAR_ENEMY_LIFE # 賦予新的星星敵機生命值 star_enemy = EnemyBlue() lf.star_enemy_group.add(star_enemy) elif event.type == BOSS_ENEMY_EVENT: # 當事件值等于BOSS_ENEMY_EVENT時,將BOSS敵機加入到組 lf.boss_enemy_life = BOSS_ENEMY_LIFE # 賦予新的BOSS敵機生命值 lf.boss_enemy = EnemyBoss() # ???? lf.boss_enemy_group.add(lf.boss_enemy) lf.boss_flag = 1 # 修改BOSS出現的flag elif event.type == OWN_FIRE_EVENT: # 當事件值等于OWN_FIRE_EVENT時,按子彈等級開火 for n in lf.bullet_type: grade = 4 if lf.bullet_grade > 4 el lf.bullet_grade if grade == n: exec('lf.own.fire{}()'.format(lf.bullet_type[n])) if lf.boss_flag == 1: # 如果BOSS出現,則發射子彈 if event.type == BULLET_BOSS_EVENT: lf.boss_enemy.fire() keys_presd = pygame.key.get_presd() # 使用鍵盤提供的方法獲取按鍵, 得到一個按鍵元組 if keys_presd[pygame.K_RIGHT]: # 按右方向鍵時向右移動,水平速度為4 lf.own.speed_y = 0 # 同時將垂直方向的速度變為0 lf.own.speed_x = MOVE_SPEED elif keys_presd[pygame.K_LEFT]: # 按左方向鍵時向右移動,水平速度為4 lf.own.speed_y = 0 lf.own.speed_x = -MOVE_SPEED elif keys_presd[pygame.K_UP]: # 按上方向鍵時向右移動,垂直速度為-4 lf.own.speed_x = 0 # 同時將水平方向的速度變為0 lf.own.speed_y = -MOVE_SPEED elif keys_presd[pygame.K_DOWN]: # 按下方向鍵時向右移動,垂直速度為4 lf.own.speed_x = 0 lf.own.speed_y = MOVE_SPEED elif keys_presd[pygame.K_SPACE]: # 按空格鍵時暫停游戲 lf.__gamePau(True) el: # 按其他鍵或不按時不移動 lf.own.speed_x = 0 lf.own.speed_y = 0 def __checkCollide(lf): """ 碰撞檢測 """ # 當子彈和敵機碰撞,敵機爆炸,得分加1,groupcollide()是精靈基類中的方法,返回一個字典,子彈是鍵,敵機是值 killers = pygame.sprite.groupcollide(lf.own.bullets, lf.enemy_red_group, True, True) # 子彈摧毀敵機 if len(killers) > 0: # 如果返回值長度大于0時,得分加1 lf.score += 1 enemy_down = SpriteDown(ENEMY_DOWN_IMAGE, list(killers.keys())[0].rect, 0) # 取出碰撞字典中的鍵用來定位顯示爆炸 lf.enemy_down_group.add(enemy_down) # 當敵機和已機碰撞,飛機數量減1,1秒后重新顯示一架飛機 died_1 = pygame.sprite.groupcollide(lf.enemy_red_group, lf.own_group, True, True) # 敵機撞毀自己飛機 died_2 = pygame.sprite.groupcollide(lf.bonus_enemy_group, lf.own_group, True, True) # 加分敵機撞毀自己飛機 died_3 = pygame.sprite.groupcollide(lf.star_enemy_group, lf.own_group, True, True) # 星星敵機撞毀自己飛機 died_4 = pygame.sprite.groupcollide(lf.boss_enemy.bullets, lf.own_group, True, True) # BOSS敵機子彈擊毀已機 died_5 = pygame.sprite.groupcollide(lf.boss_enemy_group, lf.own_group, True, True) # BOSS敵機撞毀已機 died_owns = {**died_1, **died_2, **died_3, **died_4, **died_5} # 合并字典 if len(died_owns) > 0: # 列表有內容代表發生碰撞了 lf.life_num -= 1 # 飛機數量減1 own_died = SpriteDown(OWN_DOWN_IMAGE, list(died_owns.keys())[0].rect, 0) lf.own_died_group.add(own_died) lf.s = threading.Timer(1, lf.__retOwn) # 設置一個多線程定時調用函數,1秒后開始執行 lf.s.start() # 當子彈和加分敵機碰撞,出現金幣繼續下落 bonus_enemies = pygame.sprite.groupcollide(lf.own.bullets, lf.bonus_enemy_group, True, True) if len(bonus_enemies) > 0: lf.score += 1 gold_coin = SpriteDown(GOLD_COIN_IMAGE, list(bonus_enemies.keys())[0].rect, 1) lf.gold_coin_group.add(gold_coin) # 當已機和硬幣碰撞,得分+5,金幣消失 gold = pygame.sprite.groupcollide(lf.gold_coin_group, lf.own_group, True, Fal) if len(gold) > 0: lf.score += 5 # 當子彈和星星敵機碰撞,子彈消失,超過n顆子彈后出現星星繼續下落 if lf.star_enemy_life <= 0: star_enemy = pygame.sprite.groupcollide(lf.own.bullets, lf.star_enemy_group, True, True) if len(star_enemy) > 0: lf.score += 5 star_coin = SpriteDown(STAR_IMAGE, list(star_enemy.keys())[0].rect, 1) lf.star_coin_group.add(star_coin) el: star_enemies = pygame.sprite.groupcollide(lf.own.bullets, lf.star_enemy_group, True, Fal) if len(star_enemies) > 0: lf.star_enemy_life -= 1 # 當子彈和BOSS敵機碰撞,子彈消失,超過n顆子彈后BOSS敵機爆炸 if lf.boss_enemy_life <= 0: boss_enemy = pygame.sprite.groupcollide(lf.own.bullets, lf.boss_enemy_group, True, True) if len(boss_enemy) > 0: lf.score += 300 enemy_down = SpriteDown(ENEMY_DOWN_IMAGE, list(boss_enemy.keys())[0].rect, 1) lf.enemy_down_group.add(enemy_down) lf.boss_flag = 0 el: boss_enemies = pygame.sprite.groupcollide(lf.own.bullets, lf.boss_enemy_group, True, Fal) if len(boss_enemies) > 0: lf.boss_enemy_life -= 1 # 當已機和星星碰撞,得分+10,子彈等級+1 star = pygame.sprite.groupcollide(lf.star_coin_group, lf.own_group, True, Fal) if len(star) > 0: lf.score += 10 lf.bullet_grade += 1 def __retOwn(lf): """ 自己飛機重生 """ lf.own = Own() # 創建自己的飛機精靈和精靈組 lf.own_group = pygame.sprite.Group(lf.own) lf.bullet_grade = 1 # 初始的子彈等級 def __infoDisplay(lf, text, pos, angle): """ -- 顯示游戲信息 :param text: 文字內容 :param pos: 位置[x, y] :param angle: 用來定位的角 :return: """ score_font = pygame.font.Font(SYS_FONT, 24) score_text = score_font.render(text, True, (255, 255, 255)) text_rect = score_text.get_rect() exec('text_rect.{}={}'.format(angle, pos)) lf.screen.blit(score_text, text_rect) def __updateSprites(lf): """ 更新/繪制精靈組 """ lf.back_group.update() lf.back_group.draw(lf.screen) lf.__infoDisplay('score ' + str(lf.score), [20, 10], 'topleft') lf.__infoDisplay('level 01', [492, 10], 'topright') lf.__infoDisplay('life ' + str(lf.life_num), [230, 10], 'topleft') if pygame.time.get_ticks() < lf.ready_time + 3000: # 顯示ready畫面3秒 lf.ready_go_group.update() lf.ready_go_group.draw(lf.screen) if pygame.time.get_ticks() > lf.ready_time + 4000: # ready畫面1秒后開始顯示游戲元素 lf.enemy_red_group.update() lf.enemy_red_group.draw(lf.screen) # 顯示敵機 lf.bonus_enemy_group.update() lf.bonus_enemy_group.draw(lf.screen) # 顯示加分敵機 lf.star_enemy_group.update() lf.star_enemy_group.draw(lf.screen) # 顯示星星敵機 lf.boss_enemy_group.update() lf.boss_enemy_group.draw(lf.screen) # 顯示BOSS敵機 lf.enemy_down_group.update() lf.enemy_down_group.draw(lf.screen) # 顯示敵機爆炸 lf.own.bullets.update() lf.own.bullets.draw(lf.screen) # 顯示已方子彈 lf.boss_enemy.bullets.update() lf.boss_enemy.bullets.draw(lf.screen) # 顯示BOSS子彈 lf.own_died_group.update() lf.own_died_group.draw(lf.screen) # 顯示已方飛機爆炸 lf.gold_coin_group.update() lf.gold_coin_group.draw(lf.screen) # 顯示金幣 lf.star_coin_group.update() lf.star_coin_group.draw(lf.screen) # 顯示星星 lf.own_group.update() lf.own_group.draw(lf.screen) # 顯示已方飛機 def __gamePau(lf, pau=Fal): """ 暫停游戲, 按任意鍵退出""" lf.__infoDisplay('Any key to continue...', SCREEN_CENTER, 'center') pygame.display.update() # 更新屏幕顯示 while pau: for event in pygame.event.get(): if event.type == pygame.QUIT: PlaneGame.quit() elif event.type == pygame.KEYDOWN: pau = Fal def __gameOver(lf): """ 游戲結束,按ESC重新開始 """ if lf.life_num == 0: # 如果飛機數量為0,退出游戲 game_over = pygame.image.load(GAME_OVER) # 顯示GAMEOVER圖片 lf.screen.blit(game_over, (50, 150)) lf.__infoDisplay('press ESC play again...', SCREEN_CENTER, 'center') pygame.display.update() # 更新屏幕顯示 flag = True while flag: for event in pygame.event.get(): if event.type == pygame.QUIT: PlaneGame.quit() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: # 按SPACE重新開始游戲 flag = Fal PlaneGame().start() @staticmethod def quit(): """ 靜態函數,退出游戲 """ pygame.quit() exit()

            三、效果展示

            1)游戲界面

            ?2)運行游戲

            3)金幣掉落

            4)游戲結束

            總結

            嘻嘻!打掉藍色戰機加星星之后玩起來特別爽的哦~以上沒截圖,大家可以自己試試的啦!

            文章寫到這里結束,需要源碼滴私信小編06即可免費領取啦!

            往期還有更多好玩兒的源碼等你來領取哦~

            本文發布于:2023-02-28 21:04:00,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/167772150998032.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:全民飛機大戰刷金幣(全民飛機大戰刷金幣軟件).doc

            本文 PDF 下載地址:全民飛機大戰刷金幣(全民飛機大戰刷金幣軟件).pdf

            標簽:金幣   全民   大戰   飛機   軟件
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 日本久久久www成人免费毛片丨| 漂亮的人妻不敢呻吟被中出| 丰满岳乱妇久久久| 深夜视频国产在线观看| 好大好深好猛好爽视频免费| 精品一区二区三区蜜桃麻豆| 高清免费毛片| 亚洲人成网站在线播放2019 | 久久精品熟妇丰满人妻久久| 国产av无码专区亚洲aⅴ| 99精品日本二区留学生| 午夜精品福利亚洲国产| 日韩精品一二区在线视频| 亚洲中文字幕一二三四区| 成人欧美一区二区三区在线观看| 国产精品护士| 久久国产精品成人影院| 日日碰狠狠添天天爽超碰97| 成人无码潮喷在线观看| 美女一区二区三区在线观看视频 | 久久午夜无码免费| 日韩人妻无码一区二区三区综合部 | 日韩精品亚洲专在线电影| 97视频精品全国免费观看| 99精品国产在热久久| 久久一区二区三区黄色片| 亚洲国产成人AⅤ片在线观看| 人妻少妇久久中文字幕| 国产av普通话对白国语| 亚洲人成无码网站18禁| 日韩在线观看精品亚洲| 蜜桃视频中文在线观看| 亚洲精品日韩在线丰满| 激情综合网激情激情五月天| 久久综合开心激情五月天| 精品乱码一区二区三四五区 | 中文人妻| 2021亚洲va在线va天堂va国产| 少妇太爽了在线观看免费视频| 成人国内精品视频在线观看| 日韩亚洲精品中文字幕|