基于python的pygame实现造梦西游天宫道的笔记(三)

本文概述了一位开发者在游戏制作中对近战怪物的AI寻路、攻击行为,以及远程投掷怪物的场景切换与攻击逻辑的重构。还介绍了Boss的多样攻击和游戏胜利/失败结果的展示。重点在于角色交互与场景设计的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近准备去参与一个面试,所以在忙忙完实验室的工作后,抽了两天把游戏的内容充实一下,因为最开始就是要做造梦西游的“复刻”的,所以去掉了之前的“躲箭”的代码,相应的增加了与怪物之间的交互的内容。
主要增加了三个场景,我分别从这三个场景中比较重要的内容进行思维抽象:

一、近战怪物

1.AI寻路实现。

定义怪物的攻击范围后,有两种情况:
(1)当主角在近战怪物的攻击范围内,则怪物启动其类中的“攻击函数”,绘制攻击动作并进入僵直阶段。
(2)当主句在近战怪物的攻击范围之外,则怪物会依据主角方向关系向主角方向移动。

2.怪物攻击

当主角在怪物攻击动作的“落下”阶段时仍处在怪物的攻击范围内,则主角会相应掉血,掉血量取决于近战怪物攻击力。
在这里插入图片描述

二、远程投掷类怪物

1.场景切换

在讲解远程投掷类怪物之前,先描述一下场景切换的原理。
主要的思路就是巧用参考系,背景不动,参考图片动(这里的参考图片为带有云纹的楼梯),就可以构造出简单的场景移动效果。
在这里插入图片描述
这里的长楼梯的移动效果是利用两个占满屏幕的长楼梯,他们在屏幕上各显示一部分,在需要场景移动时统一向左移动,看起来长楼梯就像是“循环”了一样。
在这里插入图片描述

2.投掷类怪物

远程类怪物的投掷物要额外定义为sprites,具体用法可以参考pygame中给出的参考,这里不作详细描述。主要有以下几种情形需要处理:
1.当主角在投掷类怪物的攻击范围(这个范围远比近战怪物要大)内,怪物会投掷相应的道具,道具具有一定的水平和垂直方向加速度,以做出抛物线的效果。
2.当主角不在攻击范围内,则控制怪物往主角方向移动。
3.循环判断投掷的道具中,是否有与主角位置重合的道具,如果有,就相应地减少主角血量,具体数据取决于投掷类怪物攻击力。反之不做操作。
在这里插入图片描述

三、Boss

boss这里的话,没什么难度,只是boss的动作比较多,需要整理的内容也就相应的比较复杂。
1.boss有两种攻击方式,主角在boss攻击范围内时,轮流执行自己的攻击方式。
2.“向天”射箭的攻击方式,在创建这些“箭”的时候,会自动带上目标落点(即Boss在射箭时的主角所在位置),剩下的就是些加速度的处理了
在这里插入图片描述

四、游戏胜利/失败结果

1.胜利失败与否,会在游戏结束时,在右上角显示,其实就是个简单的图形绘制啦!

结语

至此,本地游戏的部分就写完了,下一步的计划是申请一个云服务器,然后试一试联机游戏能否实现。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值