范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

使用Python开发一个恐龙跑跑小游戏,玩起来

  相信很多人都玩过 chrome 浏览器上提供的恐龙跑跑游戏,在我们断网或者直接在浏览器输入地址"chrome://dino/"都可以进入游戏
  今天我们就是用 Python 来制作一个类似的小游戏  素材准备
  首先我们准备下游戏所需的素材,比如恐龙图片,仙人掌图片,天空,地面等等,我们统一放到 dino 文件夹下
  游戏逻辑
  我们使用 Pygame 来制作游戏,先进行游戏页面的初始化  import pygame  # 初始化 pygame.init() pygame.mixer.init() # 设置窗口大小 screen = pygame.display.set_mode((900, 200)) # 设置标题 pygame.display.set_caption("恐龙跳跳") # 使用系统自带的字体 my_font = pygame.font.SysFont("arial", 20) score = 0 # 背景色 bg_color = (218,220,225)
  接下来我们将各种素材加载进内存  # 加载正常恐龙 dino_list = [] temp = "" for i in range(1, 7):     temp = pygame.image.load(f"dino/dino_run{i}.png")     dino_list.append(temp) dino_rect = temp.get_rect() index = 0  # x 初始值 dino_rect.x = 100 # y 初始值 dino_rect.y = 150 # print(dino_rect)  # 设置y轴上的初速度为0 y_speed = 0 # 起跳初速度 jumpSpeed = -20 # 模拟重力 gravity = 2   加载地面 ground = pygame.image.load("dino/ground.png")  # 加载仙人掌 cactus = pygame.image.load("dino/cactus1.png") cactus_rect = cactus.get_rect() cactus_rect.x,cactus_rect.y = 900,140  # 加载重新再来 restart = pygame.image.load("dino/restart.png") restart_rect = restart.get_rect() restart_rect.x,restart_rect.y = (900-restart.get_rect().width)/2,(200-restart.get_rect().height)/2+50 # 加载 gameover gameover = pygame.image.load("dino/gameover.png") gameover_rect = gameover.get_rect() gameover_rect.x, gameover_rect.y = (     900-gameover.get_rect().width)/2, (200-gameover.get_rect().height)/2 # 地面移动速度与距离 ground_speed = 10 ground_move_distance = 0  # 时钟 clock = pygame.time.Clock()  # 重新再来一次 is_restart = False text_color = (0,0,0)
  再接下来,我们通过一个 while 死循环来保持游戏进程  while True:     # 每秒30次     clock.tick(30)     ...
  在上面的循环当中,我们需要两个检测机制,事件检测和碰撞检测
  事件检测  # 事件侦测     for event in pygame.event.get():         if event.type == pygame.QUIT:             if result_flag:                 with open("result.ini", "w+") as f:                     f.write(str(best))             sys.exit()         # 空格键侦测         if event.type == pygame.KEYDOWN:             if event.key == pygame.K_SPACE and dino_rect.y==150:                 y_speed = jumpSpeed
  主要检测退出事件和空格键事件
  碰撞检测  # 碰撞检测     if dino_rect.colliderect(cactus_rect):         while not is_restart:             # 事件侦测             for event in pygame.event.get():                 if event.type == pygame.QUIT:                     if result_flag:                         with open("result.ini", "w+") as f:                             f.write(str(best))                     sys.exit()                 # 空格键侦测                 if event.type == pygame.KEYDOWN:                     if event.key == pygame.K_SPACE:                         is_restart = True                         bg_color = (218,220,225)                         ground_speed = 10             # 设置重新再来图片             screen.blit(restart, restart_rect)             screen.blit(gameover, gameover_rect)             pygame.display.update()
  对于碰撞,只要恐龙碰撞到了仙人掌,那么游戏结束,展示重新再来图片
  由于我们希望游戏可以记录我们的最好成绩,所以这里使用了本地文件存储游戏记录的方式,当游戏结束的时候,根据当前游戏成绩来判断是否将新的成绩写入文件当中
  下面是计算跑动距离和最好成绩的代码  # 统计距离     score += ground_speed     score_surface = my_font.render("Distance: "+str(score), True, text_color)      # 计算最好成绩     result_flag = False     if score >= best:         best = score         result_flag = True     best_result = my_font.render("Best Result: " + str(best), True, text_color)
  我们还需要给不同距离增加不同的游戏难度,毕竟跑起来,肯定距离越远,难度越大嘛  # 更换背景色,成绩大于4000     if score > 4000:         bg_color = (55,55,55)         ground_speed = 15         text_color = (255,255, 255) # 更换背景色,成绩大于8000     if score > 8000:         bg_color = (220,20,60)         ground_speed = 20         text_color = (255, 255, 255)      # 更换背景色,成绩大于12000     if score > 12000:         bg_color = (25,25,112)         ground_speed = 25         text_color = (255, 255, 255)      # 设置背景色     screen.fill(bg_color)
  最后我们将所有加载到内存当中的元素都呈现在 screen 上  # 设置地面图片1     screen.blit(ground, (0-ground_move_distance, 180))     # 设置地面图片2,在右边边界外     screen.blit(ground, (900-ground_move_distance, 180))     # 设置恐龙图片     screen.blit(dino_list[index % 6], dino_rect)     # 设置仙人掌图片     screen.blit(cactus, cactus_rect)     # 设置分数     screen.blit(score_surface,(780,20))     # 设置最好成绩     screen.blit(best_result, (20, 20))      pygame.display.update()
  为了增加游戏性,我们再增加背景音乐和跳跃音效  pygame.mixer.music.load("background.mp3") pygame.mixer.music.play(-1, 0) sound = pygame.mixer.Sound("preview.mp3")
  这样,一个简单易用的恐龙跑跑游戏就完成了,我们来看下效果吧
  好了,今天的分享就到这里,喜欢就点个 赞 吧
  END
  最近有一些小伙伴,让我帮忙找一些 学习资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是Python学习必备!
  所有资料都整理到网盘了,需要的私信777获取!

2021年PS大奖首批获奖名单公布,这八款游戏的确值得一玩索尼粉丝们关注的PlayStationPartnerAwards2021JapanAsia已经公布了首批获奖名单!其实今年的PS大奖包括了最为重要的大奖(GrandAward)伙伴和对象和损友齐乐的最佳选择盘点十款精彩合作游戏讨厌打打杀杀与敌人勾心斗角的游戏?五黑上分打了一天却依旧坐大牢?赛季排位新通行证肝到头秃?如果你也是因此厌烦了累人的PvP游戏,或是暂时想换换口味调节心态,或是带妹子带兄弟娱乐休闲Rookie离队真相公开?Nofe透露重要信息IG转会期态度很消极各位LPL的观众和英雄联盟召唤师大家好,这里是天下游戏汇。Rookie成为自由人的事件引起了整个电竞圈的关注,包括LCK那边也有观众建议让HLE把Rookie和TheShy一起签了王者荣耀吕布削弱,对抗路从新大混乱,新边路法王胜率登顶大家好,我是秋豆相信大家都已经知道体验服的吕布已被削弱,二技能不再造成伤害,从而也不能触发黄刀的真实伤害,可以说不管是打伤害还是消耗,都会少很多伤害。吕布可以说是影响对抗路最大的英谁是魔窟中最厉害的英雄?第三名(岚)刚出是是魔窟新秀,完全代替了傻白的位子,拥有超强的爆发能力,以及越高的伤害就拥有越厚的盾去自保,被控制后达到3枚标记,也能解控释放大招!对比前两位,稍稍逊色,不害怕魔窟所有BOSSSteam2022新年大促!喜加一预告!爷爷玩大镖客2是孙子十倍1。2022农历新年Steam特卖日期曝光!Steam平台秋季大特卖已经结束,不知道大家的钱包君还安然无恙么紧跟着的是另外2场大型特惠,一个是年底的冬季特卖也就是大家常说的圣诞大促季后赛首轮AG淘汰,一诺解释比赛输了还笑悲伤是弱者的表现AG超玩会的KPL秋季赛旅程已经结束了,季后赛第一轮不敌RW侠惨遭淘汰,创下重组回归以来的最差成绩。在比赛直播期间,联盟发布的有关AG的记录片也引发了关注,在纪录片中AG成员纷纷回神秘海域失落遗产合集Steam页面上线明年发售今天又有一款索尼PS主机独占的游戏登陆Steam平台,那便是在前几个月的PlayStationShowcase直播活动中,索尼正式公布的神秘海域盗贼遗产合集,此前本作已经通过了评级Ming排名第4,Meiko排名第5!外媒评级Mata是第1辅助,wolf第3这几天外媒给各位置选手的排名榜单又出炉了,在上单中单和AD榜单公布之后,最新的消息是外媒又发布了世界最强辅助排名,这次LPL一共有2位辅助选手上榜。首先排名第一的是Mata,Mat鬼谷八荒这算不算游戏里最强道号了?玩家这也太有意思了吧大家好,我是戒戒,专注于分享游戏心得和趣事的戒戒!在鬼谷八荒游戏里的最近一次更新中,新增了道号玩法。不得不说这个玩法还是挺有意思的,虽然道号的实战效果微乎其微,但是可以拿来秀一下还S26赛季更新巨变,安琪拉东皇优化巨酷,镜兰陵王玩家笑了文可儿游戏说原创时间如梭,转眼间2021年已经快要结束了,新的一年即将到来。随着2021年的结束,王者荣耀的S25赛季也快要宣告结束了,根据官方的消息,新赛季在一月份就会正式开启。
ROR播放体育赛kpl联赛解读,XYG队伍成功夺得联盟第四位置XYG政治队伍如今取得了全联盟第四的位置,他们的58。82的胜率,助力着他们能够在这一次的秋季赛过程当中位列四强之列,而他们的KDA指数更是占据在全联盟第二的位置,拿下了7。67,英雄联盟生物版的加强石头人,刺客的最终奥义是朴实无华虚假的刺客花里胡哨,真正的刺客朴实无华有这么一个英雄,被动提供一层防护抵挡伤害用来换血,Q技能用来磨损对方血量,大招极其关键甚至能扭转战局。没错,它就是石头人生物版北地之怒,俗称猪CFHD安全功能再度升级以及小细节优化哈喽,大家好。相信小伙伴们每次上游戏都会看到进游戏的开场动画,虽然开场动画不错,但是久而久之大家都会看烦的。(PS关键还需要长按空格键才能跳过)随着测试服的更新除了小细节方面的优化吃鸡是否还对游戏充满热爱?玩家热情消退,只为印记前言相信大家都知道,和平精英这款游戏算上测试服期间也已经陪伴大家有三个年头了,很多玩家也从游戏刚上线,一直玩到现在,相信也有少数玩家获得了19个赛季的王牌印记!但是玩家们有没有感觉闹闹天宫的孙悟空有多强?王者里已是西游一哥,网友两开花不管大人还是小孩,问起西游记中最喜欢的人物,可能在大多数人心里孙悟空总会是第一人选。其实,对于孙悟空这个角色来说总是被赋予了太多的东西,而在游戏中的孙悟空往往给人一种硬汉形象,而大旭旭宝宝dnf还有师傅?宝哥重温好友列表,师傅的等级让观众泪目众所周知,旭旭宝宝全身增幅16之后已经是稳坐国服第一的宝座,强势氪金数千万,终于给了自己青春时代的一个交代。回想起60版本,宝哥还是名不经传的一个DNF小玩家,随着竞速狂潮的崛起,1000天读学思之day4有限游戏VS无限游戏有限游戏与无限游戏只要有至少两个玩家存在,游戏即可成立。但游戏分两种有限游戏与无限游戏。有限游戏的玩家都是已知的。他们有固定的规则,有一致认同的目标,一旦目标达成,游戏就结束了。足霸王详细攻略沙漠沙漠消灭了矮人国王之后不久,那些潜入精灵女神像的小鬼们传来了消息,他们找到了盗贼部队的营地,那是在一片沙漠中。来到沙漠后一直向右走,身边不用带太多小鬼,走不多远就会看到盗贼们,其中热血传奇,美杜莎传奇新手,平民玩家最有用的攻略快来看一下在游戏中,大部分玩家都是平民,主要来自大宝娱乐,但如果你不知道怎么玩这个游戏,那就很难玩了!今天,小编就为各位玩家带来详细的教学文章!看完记得点个关注哦!平民玩家本服务器的所有设备智能时代已来,还要阻止咱家孩子打游戏吗?网络游戏风行的今天,你还会去阻止自己的孩子打游戏吗?据调查,大部分人认为随着智能时代的到来,游戏在生活中无处不在,甚至已经成为一种隐形的社交工具,由于整体社会环境的影响很难阻止或者夏侯惇KPL皮肤曝光义眼夏侯惇,一刀999王者荣耀自今年开始改变了皮肤宣发策略,由先宣传再爆料改为了先出皮肤再宣传,或许是觉得这样能降低玩家的期待值少挨骂,又或许是为了是不是能给玩家一些惊喜惊怒惊吓惊雷。这不,夏侯惇KPL