用Python写一个天天酷跑

news/2025/2/16 5:02:03/

感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了
这次就写一个天天酷跑吧
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啦,这就是这个天天酷跑的全部代码啦,有问题可以留言,我看到都会回的。


http://www.ppmy.cn/news/252467.html

相关文章

几行代码就做出一个天天酷跑,你学会了吗?

首先看效果&#xff0c;是这样滴: 下面就更新一下全部的代码吧&#xff0c;还是老样子先定义。 import pygame,sys import random写一下游戏配置 width 1200 #窗口宽度 height 508 #窗口高度 size width, height scoreNone #分数 myF…

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

写出来的效果图就是这样了: 相关文件 小伙伴们可以关注小编的Python源码、问题解答&学习交流群&#xff1a;733089476 有很多的资源可以白嫖的哈&#xff0c;需要源码的小伙伴可以在君羊领取 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import …

如何用python做出一个游戏——《天天酷跑》

众所周知&#xff0c;python的功能非常强大&#xff0c;可以发展的方向有很多&#xff01;这里也包括了制作一些中小型的游戏&#xff0c;当然&#xff01;大型游戏也是可以做的&#xff01;但是不常见用python&#xff01; 今天给大家分享一个用python做出一个简易版的《天天…

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

感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错&#xff0c;这次这个文章就更有动力了 这次就写一个天天酷跑吧 写出来的效果图就是这样了 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random学习Python加V&#xff1a;tz16494 写一下游戏配置…

C语言小小小项目 仿天天酷跑——Day1

在b站刷到了rock老师的视频&#xff0c;于是就跟着做了&#xff0c;攒点经验&#xff0c;学点知识 视频链接&#xff1a;C语言手写天天酷跑_哔哩哔哩_bilibili 今天迟了&#xff0c;就把代码贴上来 明天开始认真写 先上一下到目前为止的效果&#xff08;只是让窗口动起来了…

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

写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random写一下游戏配置 width 1200 #窗口宽度 height 508 #窗口高度 size width, height scoreNone #分数 myFontmyFont1None …

Scala天天酷跑小游戏

需求分析&#xff1a; 实现《天天酷跑》的核心逻辑&#xff0c;该游戏具有登录、注册、玩家操作、结束等功能。注册模块&#xff1a;需要玩家身份信息为&#xff1a;用户名 密码 昵称 邮箱登录模块&#xff1a;需要玩家信息为&#xff1a;用户名 和 密码玩家&#xff08;Person…

超级入门版本天天酷跑(5天成果)

学习了1个多星期的easyx图形库教程后&#xff0c;结合csdn上面飞机大战的相关思路&#xff0c;做了一些坐标题目。本人c语言学了大概有130多天&#xff0c;尝试了一下天天酷跑的小项目,素材图片太过简陋.并且程序终止于添加血条&#xff0c;音效以及按键长按问题&#xff08;期…