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

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写一个天天酷跑相关推荐

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

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

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

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

  3. 用 Python 写一个天天酷跑,在线摸鱼不烦恼

    来源丨Python小二 写出来的效果图就是这样了: 下面就更新一下全部的代码吧~ 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 12 ...

  4. 用 Python 写一个天天酷跑 | 内附源码

    写出来的效果图就是这样了: 相关文件 小伙伴们可以关注小编的Python源码.问题解答&学习交流群:733089476 有很多的资源可以白嫖的哈,需要源码的小伙伴可以在+君羊领取 下面就更新一 ...

  5. 王心凌火了,于是我用Python写一个天天酷跑

    写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 1200 #窗口宽度 heig ...

  6. 天天酷跑java_利用Java怎么实现一个天天酷跑游戏

    利用Java怎么实现一个天天酷跑游戏 发布时间:2020-12-15 17:25:03 来源:亿速云 阅读:102 作者:Leah 利用Java怎么实现一个天天酷跑游戏?很多新手对此不是很清楚,为了帮 ...

  7. 用 Python 写了一个天天酷跑(附源码)

    写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 1200 #窗口宽度 heig ...

  8. 【Python游戏】基于Python的pygame模块实现的天天酷跑游戏 | 附带源码

    前言 我相信很多小伙伴都玩过的第一个腾讯游戏,那就是天天酷跑,还记得之前为了凑齐钻石买小单车.人物.坐骑,小编可是花费了老长时间去弄这个的!!不过现在的天天酷跑随便冲个钱都能上大几百万分,没有了以前的 ...

  9. 牛逼,两百行Python代码带你打造一款《天天酷跑》游戏!

    公众号关注 "菜鸟学Python" 第431篇原创,设为 "星标",带你一起学编程! 最近一段时间,小编发现已经好久没有给大家带来趣味游戏的案例展示了.刚好小编 ...

最新文章

  1. 地平线:全球估值第一的AI芯片初创公司诞生!
  2. 13、SpringBoot-CRUD员工修改操作/删除
  3. java内部错误2755_内部错误2755.(安装软件出问题啦)
  4. php7安装详解_,PHP7 redis扩展安装详解
  5. 立志10天学会C++基础应用—day01
  6. python线程池模块第三方包_python线程池(threadpool)模块使用笔记详解
  7. GoogLeNet模型
  8. Ubuntu 12.10方便操作套件
  9. python pytorch tenser 索引 slice 切片
  10. selenium自动化看网课
  11. 通信技术基础知识回顾
  12. GIS空间分析(一)——空间分析与GIS
  13. 软考信息系统项目管理师论成本管理范文
  14. r语言中大小写c的区别吗,R语言和C语言哪个难?
  15. 日本研发5nm取得重大进展,和美国远离EUV,ASML陷入众叛亲离境地
  16. 【如何开发小程序?】如何快速开发一个小程序
  17. QT的Listwidget控件使用
  18. 解决Ubuntu18.04不能用Xshell使用root用户登录
  19. Mac的uTorrent在Catalina不能用——替代品transmission/qBittorrent安装和使用方法
  20. 从零开始学人脸检测之Retinaface篇(内含魔改版GhostNet+mbv2)

热门文章

  1. js中两个等号“==“与三个等号“===“有何不同
  2. TokenInsight 对话首席——钱包安全与发展
  3. 随机漫步的傻瓜:发现市场和人生中的隐藏机遇
  4. win10清理c盘_都说win10运行卡顿,为什么别人电脑快如闪电?原来是它在拖后腿...
  5. 一位高级软件工程师的自述:这个职位到底要做什么工作?
  6. Kubernetes四探(官网Tutorials的学习)
  7. 不要跟别人争对错,争了,对也变成错了。
  8. GSM Communication on EBox4300--(1)
  9. After Effects CC SDK 使用指南(一)—— 序
  10. 【Oracle数据库】关联、子查询