写出来的效果图就是这样了:

下面就更新一下全部的代码吧

还是老样子先定义

import pygame,sys
import random

写一下游戏配置

width = 1200            #窗口宽度
height = 508            #窗口高度
size = width, height
score=None              #分数
myFont=myFont1=None     #字体
surObject=None          #障碍物图片
surGameOver=None        #游戏结束图片
bg=None                 #背景对象
role=None               #人物对象
object=None             #障碍物对象
objectList=[]           #障碍物对象数组
clock=None              #时钟
gameState=None          #游戏状态(0,1)表示(游戏中,游戏结束)

写人物

class Role: #人物def __init__(self,surface=None,y=None):self.surface=surfaceself.y=yself.w=(surface.get_width())/12self.h=surface.get_height()/2self.currentFrame=-1self.state=0        #0代表跑步状态,1代表跳跃状态,2代表连续跳跃self.g=1            #重力加速度self.vy=0           #y轴速度       self.vy_start=-20   #起跳开始速度def getRect(self):return (0,self.y+12,self.w,self.h)

写障碍物

class Object:  #障碍物def __init__(self,surface,x=0,y=0):self.surface=surfaceself.x=xself.y=yself.w=surface.get_width()self.h=surface.get_height()self.currentFrame=random.randint(0,6)self.w = 100self.h = 100def getRect(self):return (self.x,self.y,self.w,self.h)def collision(self,rect1,rect2):#碰撞检测if (rect2[0]>=rect1[2]-20) or (rect1[0]+40>=rect2[2])or (rect1[1]+rect1[3]<rect2[1]+20) or (rect2[1]+rect2[3]<rect1[1]+20):return Falsereturn True

写背景

class Bg:   #背景def __init__(self,surface):self.surface=surfaceself.dx=-10self.w=surface.get_width()self.rect=surface.get_rect()
def initGame():global bg,role,clock,gameState,surObject,surGameOver,score,myFont,myFont1,objectList#分数初始化score=0#初始化objectList=[]#加载字体myFont=pygame.font.Font("./freesansbold.ttf",32)myFont1=pygame.font.Font("./freesansbold.ttf",64)   # 创建时钟对象 (可以控制游戏循环频率)clock = pygame.time.Clock()#初始化游戏状态gameState=0#游戏背景surBg=pygame.image.load("image/bg.bmp").convert_alpha()bg=Bg(surBg)#结束画面surGameOver=pygame.image.load("image/gameover.bmp").convert_alpha()#人物图片surRole=pygame.image.load("image/role.png").convert_alpha()  role=Role(surRole,508-85)#障碍物图片surObject=pygame.image.load("image/object.png").convert_alpha()  def addObject():global surObject,object,objectList,objectrate=4#是否生成障碍物if not random.randint(0,300)<rate:returny=random.choice([height-100,height-200,height-300,height-400])object=Object(surObject,width+40,y)objectList.append(object)def updateLogic():global gameState,score#键盘事件处理for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type==pygame.KEYDOWN:#空格键跳跃if gameState==0:if event.key==pygame.K_SPACE:if role.state==0:role.state=1role.vy=role.vy_startelif role.state==1:role.state=2role.vy=role.vy_startelif gameState==1:if event.key==pygame.K_SPACE:#重新开始游戏initGame()if gameState==0:#背景的移动   bg.dx+=10if bg.dx==1200:bg.dx=0 #人物的移动  if role.state==0:    role.currentFrame+=1if role.currentFrame==12:role.currentFrame=0  else:role.y+=role.vyrole.vy+=role.g if role.y>=508-85:role.y=508-85role.state=0#障碍物的移动addObject()for object in objectList:object.x-=10     #障碍物移动# 障碍物超出屏幕,移除障碍物if object.x+object.w<=0:objectList.remove(object)score+=10    #避开障碍物,加10分print("移除了一个目标")   #碰撞检测if object.collision(role.getRect(),object.getRect()):if(object.currentFrame==6):objectList.remove(object)score+=100  #吃金币加100分print(score)print("吃了一个金币")else: gameState=1   #游戏失败print("发生了碰撞!")

ok啦,这就是这个天天酷跑的全部代码啦,有问题可以留言。

在这里还是要推荐下我自己建的Python学习Q群:831804576,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),
包括我自己整理的一份2022最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

用 Python 写了一个天天酷跑(附源码)相关推荐

  1. 天天酷跑php源码_使用Java实现天天酷跑(附源码)

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  2. 天天酷跑php源码_Java实现天天酷跑小游戏完整代码(附源码)

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  3. 假期用Python写8个小游戏(附源码)

    假期玩嗨了吧,我给你准备了六个小游戏,有胆子来玩一玩吗?我自己是玩了很多遍的,所以想让大家一起玩,独乐乐不如众乐乐.代码放在下面了,动手操作吧. 1.小恐龙 玩法:上下控制起跳躲避 源码分享: Pyt ...

  4. python写的点名器(内附源码)

    抱歉,最近爷爷病了住院一个多月,很久没更新了.现在医院有空的时候就边敲代码边陪伴爷爷,感谢三连,感谢不离不弃的铁粉~mua~ 前言:想起小学的时候老师想点名找小伙伴回答问题的时候,老师竟斥巨资买了个点 ...

  5. 用Python写了个电影网站系统(附源码)

    项目介绍 该项目为基于Python的Flask框架搭建的在线电影网站 项目介绍:网站前端采用HTML5编写,使用Bootstrap前端开发框架,后端使用Python3语言编写,以及Flask的Web框 ...

  6. 一口气用Python写了13个小游戏 (附源码)

    大家好,今天给大家分享13个游戏源码,可以自己复现玩玩,研究下里面的编程逻辑,对学习编程(特别是初学者)应该会有很大帮助. 由于文章较长,大家记得滑到文末点个赞哈- 1.吃金币 源码分享: impor ...

  7. 用Python写一个天天酷跑

    感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了 这次就写一个天天酷跑吧 Python源码.问题解答学习交流群:773162165 写出来的效果图就是这样了 下面就更新一下全 ...

  8. 用python写跑酷游戏脚本,用Python写一个天天酷跑

    感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了 这次就写一个天天酷跑吧 写出来的效果图就是这样了 下面就更新一下全部的代码吧 还是老样子先定义`import pygame, ...

  9. 使用Python写一个天天酷跑

    感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了 这次就写一个天天酷跑吧 写出来的效果图就是这样了 下面就更新一下全部的代码吧 还是老样子先定义 import pygame, ...

最新文章

  1. LuckyDraw app使用CosmosDB的成本分析
  2. P2408 不同子串个数 SAM
  3. Mongo数据库搭建
  4. 计算机硬件知识考证题,计算机硬件知识题(答案)资料
  5. cpu频率_新版win10修复CPU频率显示不正确的bug
  6. 3D引擎多线程:资源异步加载
  7. openstack中region、az、host aggregate、cell 概念
  8. echarts中矢量图片路径设置
  9. 056 日志的正则式方式加载
  10. SHA256算法原理介绍以及实现
  11. ghost手动恢复linux,GHOST手动恢复系统(GHOST还原系统)步骤详解
  12. java毕业设计鸿鹄教育培训mybatis+源码+调试部署+系统+数据库+lw
  13. 相见恨晚的编程学习词典!谁还不是南极滑冰的那个崽儿?!
  14. 蓝墨云功能扩展之试卷导出WORD文档
  15. 混合 html5蓝牙打印小票怎么排版,蓝牙打印机打印小票项目版
  16. Burp Suite工具详解
  17. GD32报错Feature(s) : RDI, FlashBP, FlashDL, JFlash, GDB
  18. Python+opencv学习记录3:色彩空间
  19. 西瓜决策树-sklearn实现
  20. linux wn725 wifi,【已解决】Ubuntu / Linux 安装USB无线网卡( tp-link TL-WN725N rtl8188eu )

热门文章

  1. Android—WebView加载速度优化工程实践
  2. ITL(Interested Transaction List)理解
  3. 适合白帽子学习的一些网站
  4. 网络基础--路由器的基本配置
  5. 阿里买的域名,腾讯买的云服务器,请问在哪里备案?
  6. 腾讯云轻量应用服务器和云服务器的区别是什么?哪个更好?
  7. 好心情:如何识别正常的焦虑与病理性焦虑?
  8. Java学习笔记(视频:韩顺平老师)2.0
  9. kubectl源码分析之auth reconcile
  10. juice购买_juice是什么牌子 在哪里购买