发布时间:2024-02-26 16:48:12 浏览量:106次
我们已经学习了如何为程序中增加音乐音效,今天呢,木辛老师带着大家将学到的知识应用到实际的项目里。
就以咱们之前做的弹弹球游戏为例吧
传送门:Python小课堂之贪玩的木辛老师:做一个弹弹球游戏吧
请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达人吧~
我们为这个弹弹球游戏增加一些音效吧。
每次球碰到球拍的时候要增加一个声音。因为我们之前使用了碰撞检测,当球碰到球拍的时候会让他反向,只需要在这个代码块的最后添加音效播放的逻辑就可以了:
增加碰撞时音效播放逻辑
当然了,我们在这个程序之前要增加music模块的初始化过程:
初始化music模块
还有加载声效逻辑。咱们这次把声音设置为40%,不至于太吵。
运行一下听听效果吧~
嗯嗯,我这里的效果还比较满意;小朋友,你们那边效果怎么样呀?
我们增加完了这个音效以后,还想再增加更多的声音,让我们一步一步的来实现吧。
我们将会在以下几个地方增加声音
我们需要准备的是对应这些场景的声音,大家可以通过网络搜索一些音频文件,也可以自己通过麦克风配音获得。
这一些准备妥当以后,我们只需要增加新的代码就可以了:
hit_wall = pygame.mixer.Sound(“hit_wall.wav") hit_wall.set_volume(0.4) get_point = pygame.mixer.Sound(“get_point.wav") get_point.set_volume(0.2) new_life = pygame.mixer.Sound(“new_life.wav”) new_life.set_volume(0.5) bye = pygame.mixer.Sound(“game_over.wav”) bye.set_volume(0.6)
在这的代码里,我们设置了不同的音量,只是为了试试哪个音量听起来更合适。当然了,你可以按照自己的喜好来设置。但是一定记住,所有的音频文件都有复制到当前代码的位置哟!
下一步就是在发生事件时的响应代码中增加play()方法。
只要碰到窗口左右两边就发出hit_wall的声音:这个事件在球的move()方法中检测,我们还要让球的x速度反向(使球在两边”反弹“)。
增加碰撞时音效播放逻辑
同理,我们在检测到球碰到窗口顶边的时候,播放get_point的音效。在这里,仍然需要将球反弹,并为玩家+1分。
增加碰撞时音效播放逻辑
其他事件逻辑,按照这两个例子修改即可,这里我们给小朋友们留下动手实验题目,请大家私信我们你们的做法哟!
做到这里,我们的程序添加音效的时候已经差不多了~
哎呀!好像我们落了一件事。
播放bye声音和gong声音的代码放到了主while循环中,Pygame窗口关闭前他们是不会停止的(笑哭),所以只要while循环还在运行,声音就会反复播放!这应该怎么修改呢?
嗯······
我们想了一下,可以这么修改。在谈谈球游戏里,我们有一个done变量是用来控制游戏什么时候结束的,通过这个变量,我们就可以控制播放bye声音和gong声音了~嗯嗯,小小的自我表扬一下!
增加碰撞时音效播放逻辑
好了,咱们的程序修改完了,小朋友们试一下看看效果如何吧!
“嘣,嘣,嘣”
咦??? 游戏结束了,但是好像还有小球撞击的声音呢?这是怎么回事呀?
嗯······
这个问题可能需要稍微考虑一下。
我们修改的代码里,通过done变量来通知我们游戏什么时候结束,利用这一点,我们能够知道什么时候播放bye声音,什么时候显示最后的分数消息。
但是大家有没有想过,这时候小球在干吗?
尽管小球这个时候已经到达了窗口的底边,但是他还在不停地移动呀!
球继续的向下走,在碰撞的道路上越走越远,没有什么可以阻止它了。
虽然我们看不到它,但是仍然能够听到声音!
球只要在运动,当它的x值变得足够大或者足够小的时候,它就会碰撞左右两边!这种情况发生在move()方法中,只要while循环在运行,这个方法就一直有效。
解决办法大概有这么几种:
大家可以根据自己的情况,选择适当的方式实现一下。
嗯嗯,这次,我们的程序算是完全捯饬完了,应该也算是一个比较精致的小游戏了,大家也可以玩很久了!
经过这两次的学习,小朋友们对游戏编程中的音效和声音,是不是有了很深入的了解了呀!
我们在本节课的最后,复习一下之前学过的内容吧~
小朋友们不要忘记关注我们哟 ,下期课程更精彩,请大家一起期待吧~
快乐编程,快乐成长,拜拜!
热门资讯
探讨游戏引擎的文章,介绍了10款游戏引擎及其代表作品,涵盖了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戏设计领域和数字艺术教育的重要性,欢迎点击咨询报名。
2. 手机游戏如何开发(如何制作传奇手游,都需要准备些什么?)
如何制作传奇手游,都需要准备些什么?提到传奇手游相信大家都不陌生,他是许多80、90后的回忆;从起初的端游到现在的手游,说明时代在进步游戏在更新,更趋于方便化移动化。而如果我们想要制作一款传奇手游的
3. B站视频剪辑软件「必剪」:免费、炫酷特效,小白必备工具
B站视频剪辑软件「必剪」,完全免费、一键制作炫酷特效,适合新手小白。快来试试!
游戏中玩家将面临武侠人生的挣扎抉择,战或降?杀或放?每个抉定都将触发更多爱恨纠葛的精彩奇遇。《天命奇御》具有多线剧情多结局,不限主线发展,高自由...
5. Bigtime加密游戏经济体系揭秘,不同玩家角色的经济活动
Bigtime加密游戏经济模型分析,探讨游戏经济特点,帮助玩家更全面了解这款GameFi产品。
6. 3D动漫建模全过程,不是一般人能学的会的,会的多不是人?
步骤01:面部,颈部,身体在一起这次我不准备设计图片,我从雕刻进入。这一次,它将是一种纯粹关注建模而非整体绘画的形式。像往常一样,我从Sphere创建它...
7. 3D动画软件你知道几个?3ds Max、Blender、Maya、Houdini大比拼
当提到3D动画软件或动画工具时,指的是数字内容创建工具。它是用于造型、建模以及绘制3D美术动画的软件程序。但是,在3D动画软件中还包含了其他类型的...
三昧动漫对于著名ARPG游戏《巫师》系列,最近CD Projekt 的高层回应并不会推出《巫师4》。因为《巫师》系列在策划的时候一直定位在“三部曲”的故事框架,所以在游戏的出品上不可能出现《巫师4》
想让你的3D打印模型更坚固?不妨尝试一下Cura参数设置和设计技巧,让你轻松掌握!
10. Unity3D入门:手把手带你开发一款坦克大战的游戏
Unity工程创建完成后如图所示: 接下来应该导入此项目所需的Unity Package文件,要用到的Unity package文件大家可以去Unity3D的官方网站下载(地址:ht...
最新文章
同学您好!