基于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求pi的方法
Oct 08 Python
通过C++学习Python
Jan 20 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
Python实现自动发送邮件功能
Mar 02 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Django实现文件上传下载功能
Oct 06 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 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生成excel文件的简单方法
2014/02/08 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
用JavaScript调用WebService的示例
2008/04/07 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
详解Python中的join()函数的用法
2015/04/07 Python
Python版微信红包分配算法
2015/05/04 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
sklearn的predict_proba使用说明
2020/06/28 Python
Python如何给你的程序做性能测试
2020/07/29 Python
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
小学信息技术教学反思
2014/02/10 职场文书
标准化管理实施方案
2014/02/25 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
个人工作总结范文2014
2014/11/07 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL