左右键控制小人移动去接空中下来的金币,接住金币得5分,接不住游戏结束,金币速度会随着level的关数
而越来越快import pygame,sys,os,random
pygame.init()class rect():#画出小人def __init__(self,filename,initial_position):self.image=pygame.image.load(filename)self.rect=self.image.get_rect()self.rect.topleft=initial_positionclass goldrect(pygame.sprite.Sprite):#绘出金币def __init__(self,gold_position,speed):pygame.sprite.Sprite.__init__(self)self.image=pygame.image.load('image\\gold.png')self.rect=self.image.get_rect()self.rect.topleft=gold_positionself.speed=speeddef move(self):self.rect=self.rect.move(self.speed)def drawback(): #绘出背景图片my_back=pygame.image.load('image\\qi3.jpg') bakscreen.blit(my_back,[0,0])def loadtext(levelnum,score,highscore):#绘出成绩、level、最高分等my_font=pygame.font.SysFont(None,24)levelstr='Level:'+str(levelnum)text_screen=my_font.render(levelstr, True, (255, 0, 0))bakscreen.blit(text_screen, (650,50))highscorestr='Higescore:'+str(highscore)text_screen=my_font.render(highscorestr, True, (255, 0, 0))bakscreen.blit(text_screen, (650,80))scorestr='Score:'+str(score)text_screen=my_font.render(scorestr, True, (255, 0, 0))bakscreen.blit(text_screen, (650,110))    def loadgameover(scorenum,highscore):#绘出GAME OVERmy_font=pygame.font.SysFont(None,50)levelstr='GAME OVER'over_screen=my_font.render(levelstr, True, (255, 0, 0))bakscreen.blit(over_screen, (300,240))highscorestr='YOUR SCORE IS '+str(scorenum)over_screen=my_font.render(highscorestr, True, (255, 0, 0))bakscreen.blit(over_screen, (280,290))if scorenum>int(highscore):#写入最高分highscorestr='YOUR HAVE GOT THE HIGHEST SCORE!'text_screen=my_font.render(highscorestr, True, (255, 0, 0))bakscreen.blit(text_screen, (100,340))highfile=open('highscore','w')highfile.writelines(str(scorenum))  highfile.close()  def gethighscore(): #读取最高分if os.path.isfile('highscore'):highfile=open('highscore','r')highscore=highfile.readline() highfile.close() else:highscore=0return highscorebakscreen=pygame.display.set_mode([800,600])
bakscreen.fill([0,160,233])
pygame.display.set_caption('Dig!Dig!')
drawback()levelnum=1 #level
scorenum=0 #得分
highscore=gethighscore()#最高分
ileft=1  #记录向左移动步数,用来控制图片
iright=10 #记录向右移动步数,用来控制图片
x=100
y=450
filename='image\\1.png'
backimg_ren=rect(filename,[x,y])
bakscreen.blit(backimg_ren.image,backimg_ren.rect)
loadtext(levelnum,scorenum,highscore)
goldx=random.randint(50,580)
speed=[0,levelnum]
mygold=goldrect([goldx,100],speed)
pygame.display.update()while True:if scorenum>0 and scorenum/50.0==int(scorenum/50.0):#当得分是50的倍数时修改levellevelnum=scorenum/50+1speed=[0,levelnum]for event in pygame.event.get():if event.type==pygame.QUIT:sys.exit()#make gold    pressed_keys = pygame.key.get_pressed()if pressed_keys[pygame.K_LEFT]:#按下左键drawback()  loadtext(levelnum,scorenum,highscore)if iright > 14 :iright=10iright=iright+1filename='image\\'+str(iright)+'.png'if x<50 :x=50else:x=x-10backimg_surface=rect(filename,[x,y])bakscreen.blit(backimg_surface.image,backimg_surface.rect)if pressed_keys[pygame.K_RIGHT]:#按下右键drawback()loadtext(levelnum,scorenum,highscore)if ileft > 4 :ileft=0ileft=ileft+1filename='image\\'+str(ileft)+'.png'if x>560:x=560else:x=x+10backimg_surface=rect(filename,[x,y])bakscreen.blit(backimg_surface.image,backimg_surface.rect)drawback()loadtext(levelnum,scorenum,highscore)mygold.move()bakscreen.blit(mygold.image,mygold.rect) backimg_surface=rect(filename,[x,y])bakscreen.blit(backimg_surface.image,backimg_surface.rect)if mygold.rect.top>600:#判断金币是否着地,一但着地,游戏结束loadgameover(scorenum,highscore)if mygold.rect.colliderect(backimg_surface.rect):#判断金币是否与小人碰撞,如果碰撞表示小人接到金币scorenum+=5loadtext(levelnum,scorenum,highscore)goldx=random.randint(50,580)mygold=goldrect([goldx,100],speed) pygame.display.update()

转载于:https://www.cnblogs.com/Alexander11/p/4227767.html

一个简单的pygame接金币游戏相关推荐

  1. python编程制作接金币游戏_一个简单的pygame接金币游戏

    左右键控制小人移动去接空中下来的金币,接住金币得5分,接不住游戏结束,金币速度会随着level的关数 而越来越快 import pygame,sys,os,random pygame.init() c ...

  2. 写一个简单的实时互动小游戏

    在写之前,我们先回顾上一篇文章,从需求.架构.设计.开发上讲述并演示了搭建一个实时通信客户端的过程,并附了图片与视频. 写这篇文章的之前,第一个互动的游戏DEMO已经写好了,先附上截图 很奇怪的一张图 ...

  3. 用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  4. java设计游戏_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  5. 使用Qt写一个简单的五子棋单机小游戏

    使用Qt写一个简单的五子棋单机小游戏 刚学,不够专业请勿喷,有不对的地方还请指出,我渴望进步!现在贴出这个游戏我原创的所有代码.希望可以帮到有需要的人. 游戏界面: 因为后面添加了.wav的音频文件, ...

  6. 用cocos2dx做一个简单的单机捕鱼达人游戏(1)

    用cocos2dx做一个简单的单机捕鱼达人游戏(1) 我使用了cocos2dx 3.9版本和vs2017来开发 今天先做游戏开始界面 开始界面很简单,一个背景图,一个logo,3个button(三种登 ...

  7. 用c++做一个简单的打飞机小游戏(详细说明与注释)

    用c++做一个简单的打飞机小游戏(详细说明与注释) 说明: 代码长度5k多,行数200多行. 不仅没有压行,反而为了条理清晰一点所以很多中间加空换行,把很多可以写在一起的分割成了几个函数. 为了不会忘 ...

  8. python编写一个简单的猜数字小游戏

    该脚本包含了python基础的部分内容,python初学者既可以学习借鉴,也可以向朋友去装13. 本次编写的内容需要导入一个第三方模块random,可获得规定范围的随机数. 首先打开pycharm中下 ...

  9. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

最新文章

  1. 肏蛋的Loadrunner脚本
  2. utxo模型_什么是UTXO?简析账户/余额模型和UTXO模型
  3. ITK:表面提取之前平滑二值图像
  4. 抢攻5G网络功能虚拟化,英特尔推专用FPGA加速卡
  5. 信息图:大数据2016年分析趋势
  6. mysql blob hex_数据库的完整备份与恢复 quot;--hex-blobquot; - - ITeye博客
  7. twitter mysql_twitter-mysql改进点
  8. ANTLR入门:构建一种简单的表达语言
  9. 智慧物业小程序_刷脸支付+电商小程序+智慧酒店营销方案
  10. mysql keepalived双主双活_mysql高可用架构方案之中的一个(keepalived+主主双活)
  11. CentOS7.2安装MySql5.7并开启远程连接授权
  12. SpringBoot 精通系列-如何使用Spring Boot Security进行权限控制
  13. [Swift]LeetCode306. 累加数 | Additive Number
  14. atitit 碎片化学习.docx attilax 总结
  15. tcpip详解卷一arp 地址解析协议
  16. 2017年日本光伏市场展望
  17. MSP430单片机与SIM800A调试
  18. 计算机拼音排序怎么操作,Excel如何按笔画和拼音进行排序,并且以下数字也会随之改变...
  19. 【计算机网络】计算机网络基础知识笔记
  20. 码栈——让一切变得自动化

热门文章

  1. Spring @Value 设置默认值
  2. python的生成器
  3. windows kernel 可以直接读写文件系统资料吗_嵌入式杂谈之文件系统
  4. pythonre正则表达式1012pythonre正则表达式_python re模块 正则表达式
  5. oracle存储过程无效字符_Oracle存储过程基础+ 错误代码
  6. python利用win32com读取doc和pdf内容,并保存到文件
  7. CSS控制的内容超过容器宽度后显示省略号
  8. 四十二、ETL工具Kettle的转换步骤
  9. Python可变数据类型高效编程
  10. GitHub 上又一个面向韭菜玩家的开源项目...