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

左右键控制小人移动去接空中下来的金币,接住金币得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_position

class 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_position

self.speed=speed

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

my_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=0

return highscore

bakscreen=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的倍数时修改level

levelnum=scorenum/50+1

speed=[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=10

iright=iright+1

filename='image\\'+str(iright)+'.png'

if x<50 :

x=50

else:

x=x-10

backimg_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=0

ileft=ileft+1

filename='image\\'+str(ileft)+'.png'

if x>560:

x=560

else:

x=x+10

backimg_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+=5

loadtext(levelnum,scorenum,highscore)

goldx=random.randint(50,580)

mygold=goldrect([goldx,100],speed)

pygame.display.update()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 126怎么设置发送邮箱验证码,phpmailer发送网易126邮箱的例子

本文介绍下&#xff0c;使用phpmailer发送网易126.com邮件的例子&#xff0c;有需要的朋友参考下。使用PHPMailer类发邮件的例子&#xff1a;IsSMTP();//邮件服务器$mail->Host "smtp.126.com";$mail->SMTPDebug 0;//使用SMPT验证$mail->SMTPAuth true;/…

容器中apscheduler不执行_APScheduler:定时任务框架

APScheduler:定时任务框架安装文档: https://apscheduler.readthedocs.io/en/stable/userguide.html安装$ pip install apscheduler>>> import apscheduler>>> apscheduler.version3.6.3组件APScheduler由一下四部分组成triggers:触发器,指定定时任务执行的时…

nginx php image,[Docker]应该把 nginx 和 PHP 放在一个 image 里还是分开?

因为老板想搞 K8S&#xff0c;但是我连 Docker 都不懂&#xff0c;就觉得还是要学一点点 Docker 的&#xff0c;之前还是看了一点点的&#xff0c;甚至折腾过一个开发环境的方案&#xff0c;但是&#xff0c;很长时间不弄了以后&#xff0c;就全都还回去了。这次我又想自己搭建…

python pep8模块_读懂PEP8,让你的Python代码更加优雅

PEP8《8 号 Python 增强规范》(Python Enhacement Proposal #8)&#xff0c;简称PEP8通俗的来讲 PEP8 是针对 python 代码格式而编订的风格指南&#xff0c;令代码更加易读易懂。像谷歌这样的大公司是有自己内部的风格规范Google Style&#xff0c;目的就是为了提高开发效率。据…

python数值模拟教程_数值模拟必备random模块

该模块实现了各种分布的伪随机数生成器。可以在区间内抽取一个随机数&#xff0c;可以在列表中抽取一个元素&#xff0c;可以从分布中抽取样本 。random模块不能直接访问&#xff0c;需要导入 random 模块&#xff0c;然后通过 random 静态对象调用该方法。import random1 生成…

php版本哪个没有面向对象,php面向对象的方法重载两种版本比较

多个函数用同一个名字&#xff0c;但参数表&#xff0c;即参数的个数或(和)数据类型可以不同&#xff0c;调用的时候&#xff0c;虽然方法名字相同&#xff0c;但根据参数表可以自动调用对应的函数。PHP4 中仅仅实现了面向对象的部分的、简单的功能&#xff0c;而 PHP5 以后对对…

python实现录音小程序 界面_小程序如何实现录音 播放功能

第二步&#xff1a;编辑文件首先在src下创建一个test包并在test包下新建一个类MyRecord具体步骤代码如下所示&#xff1a;package test;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import javax.sound.sampled.*;public class MyRecord…

织梦php网站修改教程,织梦DEDEcms织梦软件模型增加图集功能教程(含修改文件下载)...

这篇文章主要为大家详细介绍了织梦DEDEcms织梦软件模型增加图集功能教程(含修改文件下载)&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。织梦DEDEcms织梦软件模型增加图集功能,这是今天361模板要给大家分享的。下…

python自动截图发送邮件_PhantomJS按尺寸截取页面,并用python发送邮件

前言&#xff1a;当前有个任务是要把几个网站的日志返回状态码进行汇总&#xff0c;用饼图展示&#xff0c;并每天发送邮件。一、分析问题画出饼图&#xff0c;这个我用kibana给画出来了&#xff0c;下面不做讲解&#xff1b;截取饼图&#xff0c;因为kibana是用js展示出来的&a…

nikita popov php,PHP中对performance的考虑点

Nikita Popov 在他的演讲中谈了几个PHP 程序中和performance相关的point。1.PHP使用shared memory, preload的方式事先分配&#xff0c;而只有在所有的处理结束之后&#xff0c;share memory 才会断开和所有进程或者thread之间的联系。光是opcode&#xff0c;FPM的设定还不足以…

python建模仿真 matlab_清华大学出版社-图书详情-《仿真建模与MATLAB实用教程》

MATLAB语言是目前世界上最为流行的科学计算语言之一&#xff0c;它的特点是能够快速地完成诸如矩阵运算、微分、寻优等计算任务。由于它配备了很多应用领域的专业工具箱,诸如金融、信号处理、图像处理、神经网络、嵌入式系统、仿真建模等&#xff0c;而且每个工具箱都包含了该应…

java web使用jquery,JAVA_Web_JQuery

简介&#xff1a;jquery 全称 javaScript Query.是js的一个框架。本质上仍然是js。特点&#xff1a;支持各种主流的浏览器、使用特别简单、拥有便捷的插件扩展机制和丰富的插件。一、JQuery内部封装原理介绍&#xff1a;匿名闭包。下面这两行代码是jquery包下的已经封装的代码&…

python语法学习_Python学习1——语法

Python语法包括了行、缩进、注释、标识符、保留关键字等方面。打印语句&#xff1a;>>> print(hello,world!)hello,world!输入语句&#xff1a;>>> input(请输入你的名字&#xff1a;)请输入你的名字&#xff1a;哈哈#”哈哈”是你自己输入的名字哈哈 #打印出…

java 两个页面传递数据,请问Cookie怎么在两个页面间传递数据?

参考代码如下&#xff1a;//如果请求的Cookie对象为空if (Request.Cookies["userCookie"] null){//创建一个Cookie对象HttpCookie userCookie new HttpCookie("userCookie");//给对象赋值userCookie.Values["userName"] userInfo.UserName.ToS…

优化matlab作业,现代设计优化算法MATLAB实现

开篇语前阵子做现代设计方法的时候&#xff0c;发现网上很是缺乏这种作业形式的简易算法实现&#xff0c;所以特地来简书写一篇。有两份&#xff0c;一份是我的(说来惭愧&#xff0c;我的大部分都是在网上找的代码&#xff0c;然后在自己的电脑上跑一次&#xff0c;跑出来了就行…

怎样用python画玫瑰花的简笔画_玫瑰花简笔画素描作品图片

玫瑰原产是中国。在古时的汉语&#xff0c;“玫瑰”一词原意是指红色美玉。玫瑰花这么漂亮&#xff0c;素描怎么画得好看呢?你知道玫瑰花的简笔画素描是怎样的吗?今天先和学习啦小编一起欣赏这些玫瑰花简笔画素描图片&#xff0c;希望你会有所收获的。玫瑰花简笔画素描图片欣…

多因子选选股MATLAB代码,金工研报:利用卷积神经网络进行多因子选股

首先&#xff0c;我们先来看一下通过卷积神经网络选股模型的整体流程&#xff0c;然后再根据每一步流程进行介绍&#xff0c;具体如下图所示&#xff1a;1、数据获取用于历史回测数据来自所有A股股票&#xff0c;其中剔除了ST股以及上市3个月的股票&#xff0c;另外&#xff0c…

python list tuple 打包 解包_python的打包与解包

python的*与**&#xff0c;在函数的定义与调用过程中&#xff0c;有着不同的作用打包参数&#xff1a;一、函数定义时&#xff0c;形参前加*号(如&#xff1a;*args)&#xff1a;收集实参中所有的位置参数&#xff0c;打包成新元组并将该元组赋值给args变量实参位置参数&#x…

python 成员函数 泛型函数_【一点资讯】白学这么多年 Python?连泛型函数都不会写? www.yidianzixun.com...

泛型&#xff0c;如果你尝过java&#xff0c;应该对他不陌生吧。但你可能不知道在 Python 中(3.4 )&#xff0c;也可以实现 简单的泛型函数。在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式&#xff0c;官方名称 是single-dispatch。你或许听不懂&…

matlab bad apple,【bad apple】matlab制作矩阵苹果~

有屏幕的地方就有bad apple那么作为一名工科生&#xff0c;熟练的操♂作马桶萝卜(matlab)是一项基本技能下面开始讲解如何用matlab制作别具一格的“矩阵苹果”~实验环境matlab R2018a原版bad apple视频技术要求可以即时演算图形可以将处理后的每帧图形合并成新的视频先上代码%t…