基于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基础教程之对象和类的实际运用
Aug 29 Python
Python编写百度贴吧的简单爬虫
Apr 02 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
Python2与Python3的区别实例分析
Apr 11 Python
零基础使用Python读写处理Excel表格的方法
May 02 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
Python 内存管理机制全面分析
Jan 16 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 setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
js获取单选按钮的数据
2006/11/27 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
javascript动态加载二
2012/08/22 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
浅析Python中的for 循环
2016/06/09 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
会计应届生的自荐信
2013/12/13 职场文书
团队激励口号
2014/06/06 职场文书
2014年团支书工作总结
2014/11/14 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript