基于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 连接sqlite及简单操作
Jun 30 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Python实现的简单计算器功能详解
Aug 25 Python
Django基础三之视图函数的使用方法
Jul 18 Python
python 默认参数相关知识详解
Sep 18 Python
python logging日志模块原理及操作解析
Oct 12 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
详解python中各种文件打开模式
Jan 19 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
python怎么调用自己的函数
Jul 01 Python
python神经网络ResNet50模型
May 06 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
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
简单的js表格操作
2016/09/24 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
Python如何实现线程间通信
2020/07/30 Python
python requests库的使用
2021/01/06 Python
python压包的概念及实例详解
2021/02/17 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
酒店保安领班职务说明书
2014/03/04 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
放飞理想主题班会
2015/08/14 职场文书
2016公司新年问候语
2015/11/11 职场文书
导游词之山东孔庙
2019/11/04 职场文书
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS