感觉上次写的植物大战僵尸与俄罗斯方块的反应还不错,这次这个文章就更有动力了

这次就写一个天天酷跑吧

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

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

还是老样子先定义`import pygame,sys

import random`

* 1

* 2

写一下游戏配置`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)表示(游戏中,游戏结束)`

* 1

* 2

* 3

* 4

* 5

* 6

* 7

* 8

* 9

* 10

* 11

* 12

* 13

写人物`class Role: #人物

def __init__(self,surface=None,y=None):

self.surface=surface

self.y=y

self.w=(surface.get_width())/12

self.h=surface.get_height()/2

self.currentFrame=-1

self.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)`

* 1

* 2

* 3

* 4

* 5

* 6

* 7

* 8

* 9

* 10

* 11

* 12

* 13

写障碍物`class Object: #障碍物

def __init__(self,surface,x=0,y=0):

self.surface=surface

self.x=x

self.y=y

self.w=surface.get_width()

self.h=surface.get_height()

self.currentFrame=random.randint(0,6)

self.w = 100

self.h = 100

def 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]

return False

return True`

* 1

* 2

* 3

* 4

* 5

* 6

* 7

* 8

* 9

* 10

* 11

* 12

* 13

* 14

* 15

* 16

* 17

写背景`class Bg: #背景

def __init__(self,surface):

self.surface=surface

self.dx=-10

self.w=surface.get_width()

self.rect=surface.get_rect()`

* 1

* 2

* 3

* 4

* 5

* 6`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,object

rate=4

#是否生成障碍物

if not random.randint(0,300)

return

y=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=1

role.vy=role.vy_start

elif role.state==1:

role.state=2

role.vy=role.vy_start

elif gameState==1:

if event.key==pygame.K_SPACE:

#重新开始游戏

initGame()

if gameState==0:

#背景的移动

bg.dx+=10

if bg.dx==1200:

bg.dx=0

#人物的移动

if role.state==0:

role.currentFrame+=1

if role.currentFrame==12:

role.currentFrame=0

else:

role.y+=role.vy

role.vy+=role.g

if role.y>=508-85:

role.y=508-85

role.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("发生了碰撞!")`

* 1

* 2

* 3

* 4

* 5

* 6

* 7

* 8

* 9

* 10

* 11

* 12

* 13

* 14

* 15

* 16

* 17

* 18

* 19

* 20

* 21

* 22

* 23

* 24

* 25

* 26

* 27

* 28

* 29

* 30

* 31

* 32

* 33

* 34

* 35

* 36

* 37

* 38

* 39

* 40

* 41

* 42

* 43

* 44

* 45

* 46

* 47

* 48

* 49

* 50

* 51

* 52

* 53

* 54

* 55

* 56

* 57

* 58

* 59

* 60

* 61

* 62

* 63

* 64

* 65

* 66

* 67

* 68

* 69

* 70

* 71

* 72

* 73

* 74

* 75

* 76

* 77

* 78

* 79

* 80

* 81

* 82

* 83

* 84

* 85

* 86

* 87

* 88

* 89

* 90

* 91

* 92

* 93

* 94

* 95

ok啦,这就是这个天天酷跑的全部代码啦,有问题可以留言,我看到都会回的。

用python写跑酷游戏脚本,用Python写一个天天酷跑相关推荐

  1. 【Python游戏】Python各大游戏合集:超级玛丽、天天酷跑、我的世界、魔塔、雷霆战机 附带源码

    相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加Pyth ...

  2. python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)

    python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...

  3. 用Python写一个天天酷跑

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

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

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

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

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

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

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

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

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

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

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

  9. 用python写跑酷游戏脚本_用python写游戏之2D跑酷游戏(二)

    这篇文章介绍2D跑酷游戏中,添加地板资源, 给主角附加重力作用,以及添加游戏控制器和游戏场景的切换. 废话不多说,直接开始. 添加地板资源 定义地板类,继承自pygame.sprite.Sprite ...

最新文章

  1. (传送门)android绘图canvas.clipRect()方法的作用
  2. 学习.Net的经典网站
  3. yum 报错:centos yum (28, 'Connection time-out') Trying other mirror.
  4. 【Forge】Minecraft 1.7.10 Mod开发研究 - 黑猫背包MOD 【06-给你唱一首岁月的歌】
  5. 485通信自动收发电路,历史上最详细的解释
  6. java privilege的用法_java反射--注解的定义与运用以及权限拦截
  7. js判断字符是否为空的方法
  8. 关于mysql中select出数据未排序问题
  9. 【HDU】1695 GCD
  10. 初步了解关于js跨域问题
  11. 解析RocketMQ的消息索引文件consumequeue
  12. 旅游大数据:从投资决策到分析工作的常态化
  13. $$$$方正GBK字库内码表$$$$
  14. html使用highcharts绘制饼图,Highcharts绘制饼图的简单实例
  15. RS-485总线,这篇很详细
  16. windows WTS 服务与桌面交互
  17. Xcode iOS 工程目录结构解析
  18. cobaltstrike如何安装使用(包含CS联动MSF详细用法!)? (゚益゚メ) 渗透测试
  19. Roman Numeral Converter--将给定的数字转换为罗马数字
  20. 微信V3 - 微信支付统一下单 --01

热门文章

  1. USART EVEN 串口偶校验
  2. 小陈学linux第三节
  3. [渝粤教育] 山东大学 2021秋中国武术文化(艺术英语) 参考 资料
  4. ABAP 使用MODIF ID实现动态选择屏幕示例
  5. HCIP-IoT——华为云物联网端到端开发
  6. 操作系统 | 期末复习 · I/O系统
  7. YDOOK AI : Pytorch :使用 tensor.zeros() tensor.zeros_like() 生成定义 全零数组 全0数组
  8. 用Python爬取微博热搜数据
  9. SQL中的连接(左、右、内连接)
  10. mysql 前面7天时间_mysql获取7天前数据,日期比较