基于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的__builtin__模块中的一些要点知识
May 02 Python
Python爬取网易云音乐上评论火爆的歌曲
Jan 19 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
浅谈python numpy中nonzero()的用法
Apr 02 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
在python中实现对list求和及求积
Nov 14 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
pandas 按日期范围筛选数据的实现
Feb 20 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令牌 Token改进版
2008/07/18 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
js断点调试经验分享
2017/12/08 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
Python编程之微信推送模板消息功能示例
2017/08/21 Python
python中logging包的使用总结
2018/02/28 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
幼儿园大班毕业感言
2014/02/06 职场文书
社会实践评语
2014/04/28 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
JavaScript的function函数详细介绍
2021/11/20 Javascript