Python+Pygame如何实现简单的射击小游戏
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本文小编为大家详细介绍"Python+Pygame如何实现简单的射击小游戏",内容详细,步骤清晰,细节处理妥当,希望这篇"Python+Pygame如何实现简单的射击小游戏"文章能帮助大家解决疑惑,下
千家信息网最后更新 2025年01月19日Python+Pygame如何实现简单的射击小游戏
本文小编为大家详细介绍"Python+Pygame如何实现简单的射击小游戏",内容详细,步骤清晰,细节处理妥当,希望这篇"Python+Pygame如何实现简单的射击小游戏"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、运行环境
1)环境安装
Python3、 Pycharm 、Pygame模块部分自带模块就不展示啦。
第三方库的安装:pip install pygame 或者
带镜像源 pip install -i https://pypi.douban.com/simple/ +模块名
2)素材(图片、音乐等)
二、代码展示
主程序
import pygame,os,randomfrom pygame.locals import *from pygame.sprite import *def load_image(name): fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0],"filedata"),name) image=pygame.image.load(fullname) return imagedef load_sound(name): fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0],"filedata"),name) sound=pygame.mixer.Sound(fullname) return soundWIDTH=700HEIGHT=600class Explosion(Sprite): def __init__(self,screen,posrect): super(Explosion,self).__init__() self.screen=screen self.posrect=posrect self.image=load_image("explosion.png") self.rect=self.image.get_rect() self.rect=self.posrect self.rates=0 def update(self): self.rates+=1 if self.rates>=40: self.kill()class Enemy(Sprite): def __init__(self,screen): super(Enemy,self).__init__() self.screen=screen self.screenrect=self.screen.get_rect() self.image=load_image("eatingfood.png") self.rect=self.image.get_rect() self.rect.center=(random.uniform(50,WIDTH-50), random.uniform(50,HEIGHT-50)) self.xspeed=random.uniform(1,2) self.yspeed=random.uniform(1,2) if random.choice([True,False]): self.xspeed=-self.xspeed if random.choice([True,False]): self.yspeed=-self.yspeed def update(self): self.rect.centerx+=self.xspeed self.rect.centery+=self.yspeed if self.rect.top>self.screenrect.height or self.rect.bottom<0: self.kill() elif self.rect.left>self.screenrect.width or self.rect.right<0: self.kill()def initmain(): pygame.init() screen=pygame.display.set_mode((WIDTH,HEIGHT)) pygame.display.set_caption("") gameFont=pygame.font.SysFont("宋体",26,True) rates=0 score=0 fpstime=pygame.time.Clock() cursor=load_image("aimcursor.png") cursorrect=cursor.get_rect() pygame.mouse.set_visible(False) enemys=Group() explosions=Group() sou=load_sound("sou.mp3") duang=load_sound("duang.mp3") while True: fpstime.tick(70) screen.fill((128,128,128)) screen.blit(gameFont.render("Score: "+str(score),True,(0,0,0)),(2,2)) rates+=1 enemys.draw(screen) enemys.update() explosions.draw(screen) explosions.update() if rates%25==0: enemys.add(Enemy(screen)) cursorrect.center=pygame.mouse.get_pos() screen.blit(cursor,cursorrect) for event in pygame.event.get(): if event.type==QUIT: pygame.quit() __import__("sys").exit() elif event.type==MOUSEBUTTONDOWN and event.button==1: cld=[] for sf in enemys: if sf.rect.collidepoint(event.pos): sf.kill() score+=int(abs(sf.xspeed)+abs(sf.yspeed)) explosions.add(Explosion(screen,sf.rect.center)) cld.append(True) else: cld.append(False) if not any(cld): sou.play() else: duang.play() pygame.display.flip()if __name__=="__main__": initmain()
三、效果展示
都是静态的截图展示,科能效果不是很好!动态的展示我就没录制视频了哈,大家拿代码自己玩儿哦~
1)游戏界面
2)击中效果
3)+3分
读到这里,这篇"Python+Pygame如何实现简单的射击小游戏"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
小游戏
射击
效果
文章
模块
代码
内容
环境
妥当
主程序
动态
图片
宋体
思路
截图
新知
更多
步骤
游戏界面
界面
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哈那数据库
宇宏轩网络技术有限公司
石家庄乐牌网络技术有限公司
代理服务器管理规定
浦东新区智能软件开发供应商家
淮安通用软件开发售后服务
浙江软件开发驻场收费标准
软件开发服务公司名称
怎样查询阿里云服务器
软件开发 新业务
车载网络技术 凌永成第四章答案
英雄联盟服务器修复需要多久
湖南软件开发培训学校排名
家庭教育与网络安全周记
怎么具有网络安全意识
广州国内网络技术开发公司
数据库设定软件
在网络安全和信息化
数据库排他锁和共享锁
内蒙古信息化网络安全产业园
flink流式读取数据库
打拐dna数据库怎样进入
三方仓储软件开发
数据库查询配侣表
洋浦三都阿迪力软件开发工作室
日本保护国民网络安全
数据库检索管理系统
安卓软件开发区
网络安全手抄报国家一等奖
家庭教育与网络安全周记