几亿人都在玩的谷歌小恐龙游戏,全世界最高分是 99999?你呢?
前言
“越努力越幸運鴨💦💦,記得每天進步一點點哦!“
? ? ? ? ? ? ? ? ? ? ? ? ? ——Python是世界上最好的語言
Everybody 大家好~(也不清楚我的開頭的單詞寫錯沒,懶.jpg 沒百度,錯了你們掠過就好~哈哈)
生活就像闖關游戲,每天都會遇到很多很多開心不開心,好的事情,壞的事情。
今天給大家寫一款簡單的小恐龍闖關小游戲,希望大家不管遇到什么事情都要勇敢向前闖,遇到難
題堅持走下去啦~
”成功根本沒有什么秘訣可言,如果真是有的話,就是兩個:第一個就是堅持到底,永不放棄;第二個是當
你想放棄的時候,回過頭來看看第一個秘訣:堅持到底,永不放棄。“
(悄悄告訴你這句話是百度的🤫🤫🤫🤫🤫🤫)
那么,讓我們續航,充滿能量開始往前沖沖沖👇👇👇👇👇👇
?正文
1)準備好環境
本文需要的環境如下👇
Python、Pycharm 安裝包:我用的是3.7的Python跟2019年的社區版Pycharm,這個可以看大家的
基本上都是可以用的,代碼兼容都可以運行的。然后就是一個主要用到的Pygame游戲模塊。
環境安裝不會的可以找我拿安裝包跟安裝的視頻、相應的Pycharm專業版的永久激活碼這邊也是有
的但是有版本限制有的不能激活的哈。
第三方庫的安裝通常是:
pip install? pygame或者是感覺安裝速度太慢可以添加鏡像源文件的,這邊我通常用的是豆瓣的鏡像源:
pip install -i https://pypi.douban.com/simple/ pygame2)準備好素材
?3)附主程序
import cfg import sys import random import pygame from modules import *'''main''' def main(highest_score):# 游戲初始化pygame.init()screen = pygame.display.set_mode(cfg.SCREENSIZE)pygame.display.set_caption('小恐龍闖關游戲')# 導入所有聲音文件sounds = {}for key, value in cfg.AUDIO_PATHS.items():sounds[key] = pygame.mixer.Sound(value)# 游戲開始界面GameStartInterface(screen, sounds, cfg)# 定義一些游戲中必要的元素和變量score = 0score_board = Scoreboard(cfg.IMAGE_PATHS['numbers'], position=(534, 15), bg_color=cfg.BACKGROUND_COLOR)highest_score = highest_scorehighest_score_board = Scoreboard(cfg.IMAGE_PATHS['numbers'], position=(435, 15), bg_color=cfg.BACKGROUND_COLOR, is_highest=True)dino = Dinosaur(cfg.IMAGE_PATHS['dino'])ground = Ground(cfg.IMAGE_PATHS['ground'], position=(0, cfg.SCREENSIZE[1]))cloud_sprites_group = pygame.sprite.Group()cactus_sprites_group = pygame.sprite.Group()ptera_sprites_group = pygame.sprite.Group()add_obstacle_timer = 0score_timer = 0# 游戲主循環clock = pygame.time.Clock()while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE or event.key == pygame.K_UP:dino.jump(sounds)elif event.key == pygame.K_DOWN:dino.duck()elif event.type == pygame.KEYUP and event.key == pygame.K_DOWN:dino.unduck()screen.fill(cfg.BACKGROUND_COLOR)# --隨機添加云if len(cloud_sprites_group) < 5 and random.randrange(0, 300) == 10:cloud_sprites_group.add(Cloud(cfg.IMAGE_PATHS['cloud'], position=(cfg.SCREENSIZE[0], random.randrange(30, 75))))# --隨機添加仙人掌/飛龍add_obstacle_timer += 1if add_obstacle_timer > random.randrange(50, 150):add_obstacle_timer = 0random_value = random.randrange(0, 10)if random_value >= 5 and random_value <= 7:cactus_sprites_group.add(Cactus(cfg.IMAGE_PATHS['cacti']))else:position_ys = [cfg.SCREENSIZE[1]*0.82, cfg.SCREENSIZE[1]*0.75, cfg.SCREENSIZE[1]*0.60, cfg.SCREENSIZE[1]*0.20]ptera_sprites_group.add(Ptera(cfg.IMAGE_PATHS['ptera'], position=(600, random.choice(position_ys))))# --更新游戲元素dino.update()ground.update()cloud_sprites_group.update()cactus_sprites_group.update()ptera_sprites_group.update()score_timer += 1if score_timer > (cfg.FPS//12):score_timer = 0score += 1score = min(score, 99999)if score > highest_score:highest_score = scoreif score % 100 == 0:sounds['point'].play()if score % 1000 == 0:ground.speed -= 1for item in cloud_sprites_group:item.speed -= 1for item in cactus_sprites_group:item.speed -= 1for item in ptera_sprites_group:item.speed -= 1# --碰撞檢測for item in cactus_sprites_group:if pygame.sprite.collide_mask(dino, item):dino.die(sounds)for item in ptera_sprites_group:if pygame.sprite.collide_mask(dino, item):dino.die(sounds)# --將游戲元素畫到屏幕上dino.draw(screen)ground.draw(screen)cloud_sprites_group.draw(screen)cactus_sprites_group.draw(screen)ptera_sprites_group.draw(screen)score_board.set(score)highest_score_board.set(highest_score)score_board.draw(screen)highest_score_board.draw(screen)# --更新屏幕pygame.display.update()clock.tick(cfg.FPS)# --游戲是否結束if dino.is_dead:break# 游戲結束界面return GameEndInterface(screen, cfg), highest_score'''run''' if __name__ == '__main__':highest_score = 0while True:flag, highest_score = main(highest_score)if not flag: break4)效果展示
游戲界面——
?障礙物界面——
障礙物有🌵、飛鳥。按空白鍵是跳躍躲避障礙物。撞到障礙物游戲結束!
游戲結束——
?總結
幾億人都在玩的谷歌小恐龍游戲,全世界最高分是 99999?那你想試試看嘛?你的最高分是多少
呢?(不要問我.jpg 我還沒滿千分)關注公眾號:Python源碼 領取代碼
總結
以上是生活随笔為你收集整理的几亿人都在玩的谷歌小恐龙游戏,全世界最高分是 99999?你呢?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台达变频器vfb—d参数表_台达变频器参
- 下一篇: RK 3568 移植CH9344驱动流程