基于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 13 Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
python 经典数字滤波实例
Dec 16 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
python 命名规范知识点汇总
Feb 14 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
PHP 上传文件的方法(类)
2009/07/30 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
php中{}大括号是什么意思
2013/12/01 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
javascript call和apply方法
2008/11/24 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
Python 可视化神器Plotly详解
2020/12/26 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
支教个人总结
2015/03/04 职场文书
银行催款通知书
2015/04/17 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书