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

使用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获取!

IG的指挥害了他们输给BLG季后赛仅存理论可能,教练要背锅?在上场比赛零封TES之后,IG不仅给大家送上了惊喜,还成功保留了晋级季后赛的希望。虽然接下来的比赛他们必须要全胜才能掌握主动权,但许多粉丝看到IG连TES都能击败后,他们认为IG真Theshy骗了整个LPLIG生死战零封TES,JKL向前闪现遭解说质疑曾经LPL的顶级战队IG在这个赛季一度有沦落为三流队伍的趋势,虽然Theshy时隔多日重新回到了赛场,但无奈IG整体状态不佳,哪怕面对RW都没能从对手手里拿到一分,因此在积分榜上ILPL又闹乌龙!Doinb吐槽官方发错MVP奖杯,FMVP早已内定?目前LPL季后赛已经进入到最后的阶段,FPX和WE先后战胜对手会师决赛,虽然他们的这场交手并不能决定冠军的归属,但胜者却可以直接进入最后的总决赛,败者则需要再打一场比赛。而对于FP小学弟被香克斯完爆WE拒绝翻盘挺进决赛!圣枪哥真的尽力了在FPX战胜LNG之后,WE和EDG的这场比赛将决定最后的分组,胜者将与FPX会师决赛,而败者将进入败者组挑战LNG。由于WE和EDG两支队伍之间有很大的渊源,因此时隔多年再次看到管泽元魔咒终被破FPX力克LNG挺进胜者组,阿乐全场0作用?经过这段时间的角逐,LPL的4强队伍已经全部产生,他们分别是FPXEDGLNG和WE。其中LNG和WE都给大家上演了一出一穿三的好戏,在排名不高的情况下杀出重围挺进4强,因此这两支LPL真有血脉压制RNG收官战不敌BLG,无缘前三但创造了历史目前LPL夏季常规赛已经进入到收官阶段,各大战队都在为了最后的排名做最后的努力。而对于RNG来说虽然赛季初打出了一波五连败,但后续他们很快找到了状态,一路连胜顺利拿到了季后赛的资格BiuBiu不配打职业一人坑输BLG,3000万引援季后赛一轮游在LPL夏季季后赛首轮的最后一场比赛中,BLG迎来了WE的挑战。虽然WE前面零封OMG晋级到这轮比赛,但赛前不少玩家认为BLG的整体实力要强于WE,WE的季后赛之旅很有可能到这里就王者荣耀演员常用的3个英雄,如果你遇到了,准备6分投吧!在王者荣耀之中有很多英雄是出了就必输的,一般也只有演员才愿意使用他们,像是姜子牙就是最明显的一个。其实如果单从姜子牙的技能来看,这个英雄并不是非常弱的,他的技能控制能力非常强,可以王者荣耀吕布核心装备是破军?王者58星高手告诉你这件才是吕布是王者荣耀之中非常强大的英雄,他的最大特点就是本身带有百分之百的真实伤害。前期可能看不出什么太强的威力,但是到了后期装备成型之后,就算一刀3000血都是常规操作,小脆皮三刀就能列王的纷争得罪了一个厉害的联盟!记得我最早玩列王的纷争是在1020区,其实之前我也玩了一段时间别的区,但是并没有玩好。后来听别人说,一定要在开区之前用一个月的时候先压一个堡,也就是说到了5级之后就不升堡了,而是不王者荣耀后羿之所以厉害,只因这件神装太给力,阿轲见到就跑!后羿是王者荣耀之中非常强势的射手英雄,他的最大特点就是攻速快。可能前期看起来没有什么攻击力,但是到了后期,可以打出非常惊人的伤害,万血张飞在他面前都浪不起来,甚至能直接秒杀。不过后
180复古传奇手游之刷金攻略(新)最近好多朋友们尤其是新人朋友们是不是已经开始入不敷出了呢,最近我发现有好多洞穴都开始减少或者干脆就不爆金币了,连着几天大手大脚或许大家还有点存款但现在小编已经入不敷出了。现在小编已复古传奇中的法神项链你还记得吗?记得那时候在网吧玩游戏传奇,令人激动不已的时刻即将开始!有的时候好运来了真的是挡都挡不住,我记得以前在老区的时候,我一天之内连续遇到了三次好事。第一个是我去升无极,只是用了普通的首热血复古传奇骨灰玩家懂的武器,道士的强势时刻道士这个职业是个较为冷门的职业,因为道士大多是以回血和放毒,强一点的道士就是带狗,但是在零几年的时候,如果你玩道士能够带条狗,那么你就是那个区最强的玩家了。点击添加图片描述(最多6复古传世教你道士如果单混到好装备,喜欢道士的一定不要错过之前玩道士38级的时候,禁地一些重要地方都被那些大行会给包场了,那时候也不喜欢练级,只能到其他地方刷刷装备这个样子,今天就给大家说一说道士单混,可以去哪些比较好的地方。第一个,首选热血传奇,探索玛法大陆的神秘,一介布衣的讲解游戏下载地址微信关注公众号复古传奇三端互通热血传奇曾今轰动中国的一个游戏,记忆中的很多网吧和工作室都是弥漫着传奇的身影,而且传奇也有很多未解之谜,以及神秘的装备,今天来和大家简单的热血传奇在当年,传奇咋没拍电影热血传奇是没拍电影,但同为姊妹篇的传奇世界却拍过一部电影,名字叫百万爱情宝贝。百万爱情宝贝这部电影是2013年上映的,豆瓣评分仅有4。0分,超45。6的人给出一星评价,作为传奇世界1。76版复古传奇1比1还原端游复古传奇,安卓苹果互通手游传奇在中国网游史上的地位,亦如它的名称本身一样,就是一段传奇,成为中国第一款划时代的现象级网游。许多游戏公司在传奇的基础上进行不断创新,成就了无数个版本的变革,如今三九互娱独家运营热血复古传奇传奇中的三个职业中,你是怎么给角色加点的?这个年头玩传奇SF的人不在少数,萝卜青菜各有所爱。也不能说谁对谁错,喜欢某个SF说明这个私服有吸引人的地方,早些很有名的SF玩家的利益也有保障,不过没有保障的SF也是更多,大家擦亮1。80版本复古传奇手游,武力行会的介绍武力解决成立于5年前,其中成员热爱经典版本,成员崇尚集体主义团结精神,认为良好的组织才是一个行会强大的关键,而不是靠个人。并且在经典版本中留下啦他们的各种风采。让我们180版复古手游三职业,战法道pk技巧游戏介绍经典传奇回忆,版本回归,崭新征程,与兄弟们一起,重登珐玛大陆!加入复古传奇重温只属于你的记忆,和兄弟一起再战沙巴克!复古传奇的故事始于东方神秘的玛法大陆。作为一款大型MMO复古传世手游职业全面分析,三职业的平衡机制在传奇世界手游中,战法道三大职业分庭抗礼,各有特色!然而很多玩家对这三个职业的职业平衡都存在着疑问,所以今天将为大家详细的解析战法道,看看传奇世界手游中三大职业的平衡机制究竟在哪里