基于Python实现射击小游戏的制作


Posted in Python onApril 06, 2022

1.游戏画面

1.1开始

基于Python实现射击小游戏的制作

1.2射击怪物

基于Python实现射击小游戏的制作

2.涉及知识点

1.sprites

2.pygame混音器

3.图章   

4.python基础语法

3.代码

3.1发射声

from sprites import *
try:
    import pygame    
    pygame.mixer.init()
    fire_sound = pygame.mixer.Sound("audio/发射声.wav")
    cricket_sound = pygame.mixer.Sound('audio/cricket.wav')
except:
    import sys
    input("本程序需要pygame混音器支持以便配音,请先在cmd下用pip install pygame安装此模块。")

3.2背景

width,height = 480,360
screen = Screen()
screen.bgpic('res/ghosthouse.jpg')
screen.setup(width,height)

batimages = ['res/bat1.png','res/bat2.png']
batindex = 0
bat = Sprite(visible=False,pos=(-50-width//2,100))
bat.dx = 3
bat.dy = 0
bat.alive = True
bat.show()

3.3射击效果

def bat_alt_costume():
    global batindex
    batindex = 1 - batindex
    bat.shape(batimages[batindex])
    screen.ontimer(bat_alt_costume,90)
bat_alt_costume()    

hole = Sprite(shape='res/Bullet_Hole.png',visible=False)

m1 = Mouse(1)           # 鼠标左键
m3 = Mouse(3)           # 鼠标右键
clock = Clock()         # 时钟对象 
start_stamp = False
while True:
    bat.move(bat.dx,bat.dy)

    # 掉到地面就盖图章,留下尸体
    if bat.ycor() < random.randint(-200,-100):
        bat.dx = 0
        bat.dy = 0
        bat.setheading(random.randint(1,360))
        bat.stamp()
        bat.reborn(-500-width//2,100,3,0,delay=2)
        bat.alive = True
        bat.setheading(0)
        
    # 蝙蝠碰到鼠标指针并且按下了鼠标左键       
    if bat.collide_mouse() and m1.down() and bat.alive:         
        bat.dy = -10                # 开始往下掉
        bat.alive = False
        try: cricket_sound.play()
        except:pass
        
    # 到了最右边就到最左边去重新开始
    if bat.xcor() > width//2 :
        bat.reborn(-500-width//2,100,3,0,delay=2)
        bat.alive = True
        bat.setheading(0)
    hole.goto(mouse_position())

    # 发射子弹,用盖图章留下弹洞,为防连续发射用了start_stamp变量
    if m1.down() and not start_stamp:
        hole.stamp()
        start_stamp = True
        try: fire_sound.play()
        except: pass
        
    # 松开按键后
    if not m1.down():start_stamp = False

    clock.tick(60)

4.经验总结

利用python各种游戏库可以做任何小游戏

到此这篇关于基于Python实现射击小游戏的制作的文章就介绍到这了,更多相关Python射击游戏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的Django框架中simple-todo工具的简单使用
May 30 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
python正则分析nginx的访问日志
Jan 17 Python
python实现简单淘宝秒杀功能
May 03 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Python os模块常用方法和属性总结
Feb 20 Python
Python如何用filter函数筛选数据
Mar 05 Python
pandas中ix的使用详细讲解
Mar 09 Python
Python实现爬取并分析电商评论
Jun 19 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
浅谈Python中对象是如何被调用的
Apr 06 #Python
Python实现猜拳与猜数字游戏的方法详解
python字符串的一些常见实用操作
Apr 06 #Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 #Python
Python Numpy库的超详细教程
You might like
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP中SESSION过期设置
2021/03/09 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python实现的生成word文档功能示例
2019/08/23 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
Java如何读取CLOB字段
2013/10/10 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
电子商务个人自荐信
2013/12/12 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
求职简历自我评价范例
2014/03/12 职场文书
五四青年节演讲稿
2014/05/26 职场文书
董事长致辞
2015/07/29 职场文书
mysql全面解析json/数组
2022/07/07 MySQL