基于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执行get提交的方法
Apr 29 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
简单介绍Python中的floor()方法
May 15 Python
Python的时间模块datetime详解
Apr 17 Python
python分布式环境下的限流器的示例
Oct 26 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
Django vue前后端分离整合过程解析
Nov 20 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP静态成员变量
2017/02/14 PHP
PHP7多线程搭建教程
2017/04/21 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
Python3遍历目录树实现方法
2015/05/22 Python
详解在Python中处理异常的教程
2015/05/24 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
使用python实现对元素的长截图功能
2019/11/14 Python
使用python远程操作linux过程解析
2019/12/04 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
大学生大二自我鉴定
2013/10/28 职场文书
土木工程应届生求职信
2013/10/31 职场文书
总裁岗位职责
2013/12/04 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
科研课题实施方案
2014/03/18 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
python之json文件转xml文件案例讲解
2021/08/07 Python