基于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使用win32com在百度空间插入html元素示例
Feb 20 Python
Python 数据结构之旋转链表
Feb 25 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
Python自定义简单图轴简单实例
Jan 08 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
Pytorch: 自定义网络层实例
Jan 07 Python
django ListView的使用 ListView中获取url中的参数值方式
Mar 27 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
python中reload重载实例用法
Dec 15 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把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
Div自动滚动到末尾的代码
2008/10/26 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
ajax异步请求详解
2017/01/06 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
js实现3D旋转效果
2020/08/18 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python学习笔记之常用函数及说明
2014/05/23 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
教师工作态度自我评价
2015/03/05 职场文书
小英雄雨来观后感
2015/06/09 职场文书
监守自盗观后感
2015/06/10 职场文书
小学运动会加油稿
2015/07/22 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
Python实现简单得递归下降Parser
2022/05/02 Python