基于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实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
星球大战与Python之间的那些事
Jan 07 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
python利用微信公众号实现报警功能
Jun 10 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
python能做什么 python的含义
Oct 12 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
python有几个版本
Jun 17 Python
去除python中的字符串空格的简单方法
Dec 22 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP之数组学习
2011/05/29 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
Python实现备份文件实例
2014/09/16 Python
Python查找相似单词的方法
2015/03/05 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
用python实现刷点击率的示例代码
2019/02/21 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
JD Sports德国官网:英国领先的运动鞋和运动服饰零售商
2018/02/26 全球购物
房地产销售计划书
2014/01/10 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
儿童生日会策划方案
2014/05/15 职场文书
免职通知
2015/04/23 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
宪法宣传标语100条
2019/10/15 职场文书
MySQL基础(二)
2021/04/05 MySQL