# Trick or Treat
## 运行
**服务端**
要求: python 2.7
```
python server/main.py
```
**客户端**
Unity里运行login场景或者打包直接运行即可。
# 游戏实现功能
## 服务端
- **玩家数据管理**
- 数据库使用sqlite,玩家登陆时会从数据库中玩家账号密码信息,如果登陆成功,则会从角色信息中读取玩家角色信息(如果不存在则会在服务端重新创建一个玩家角色)
- 服务端会储存玩家的名字,玩家经验值,玩家等级,以及升级的陷阱等级和导弹(玩家远程攻击)等级,历史最高分数等。
- 玩家的等级和陷阱、技能的等级上限目前定为10级。
- **升级**
- 玩家击杀怪物会获取经验值和金钱,金钱可以用来购买陷阱,经验值达到一定值玩家会自动升级。玩家升级可以获取技能点,技能点可以用来升级陷阱和导弹攻击伤害。
- **攻击方式/技能**
- 普通攻击,点击鼠标左键,单体攻击,攻速较快,伤害较少
- 导弹攻击,点击鼠标右键,群体伤害,伤害较高,具有冷却时间。可以升级,升级会提高伤害
- **注意**:导弹攻击具有队友伤害,即会伤害自己和队友!(ps:杀死队友可以获取队友金钱。)
- **怪物**
- 怪物寻路逻辑通过A*算法在服务端实现。
- 近战怪(小熊和兔子)。近战怪会一直向玩家移动,直到距离足够接近,对玩家以一定频率发起攻击。其中兔子的移动速度会比小熊快,但是血量比小熊少。
- 远程怪(大象)。大象同样会向玩家移动,当其和玩家的距离到达其射程之后,会向玩家抛出一个南瓜,当南瓜砸到玩家时,玩家的血量会减少。
- 怪物会向距离其最近的玩家发起攻击,如果玩家进入了地图不可选取的区域(寻路无法到达的地方),怪物会停止移动,知道玩家再次进入可以寻路的区域。
- **陷阱**
- 玩家可以释放两种陷阱,尖刺陷阱和减速陷阱。释放陷阱需要花费金钱购买。
- 尖刺陷阱
- 尖刺陷阱会对进入其中的怪物进行周期性的伤害。
- 如果玩家升级了尖刺陷阱,之后释放的尖刺陷阱的伤害会变高(玩家升级陷阱不会影响地图上已经存在的陷阱的性能)。
- 减速陷阱
- 减速陷阱会降低进入其中的怪物的移动速度。
- 升级减速陷阱会使玩家之后放置的减速陷阱减速力度更大。
- **游戏流程**
- 怪物的产生分为不同波次,后续的波次怪物的数量会增多。
- 每两波怪物产生的时间间隔有10s。
## 客户端
- **操作**:
- 玩家通过第三人称视角操控角色,玩家的攻击(普通攻击和导弹)会射向屏幕中间的准星
- 玩家可以八方向移动
- **怪物**:
- 近战怪会持续向玩家移动并且离玩家距离足够近时发动攻击。
- 远程怪会向玩家移动知道玩家进入其攻击射程后,向玩家抛南瓜。(南瓜受重力系统的影响,并保证如果玩家不移动,南瓜能准确砸中玩家)
- 怪物头上具有血条会实时显示服务器传送来的怪物血量信息
- 怪物收到伤害时会发出受伤的声音。
- **关卡流程**
- 每波关卡会有一定数量的怪物产生,后边的关卡怪物的数量会不断增多。
- 两个关卡之间会给玩家10s的等待休息时间,并在屏幕上显示下一波怪物到达的倒计时。
- **网络同步**
- 客户端服务端数据同步的频率是100ms一次
- 通过平滑处理客户端怪物和同步玩家的移动减少Gameobject的抖动,即每次收到同步位置后不是直接同步位置,而是通过位置获取该物体移动的方向,并在每个客户端帧中移动相应的位移。
- **陷阱**
- 玩家点击释放陷阱时会在准星和场景的碰撞点放置一个陷阱,并通过物理系统检测碰撞判断此时陷阱是否处于合理的位置,如果可以释放,则改变其shader,将其变为绿色,否则则变为红色。只有在陷阱为绿色时,玩家点击确认按钮才可以成功放置陷阱。
- 陷阱放置后会开启相应的动画。
- **UI**
- 游戏中会实时显示玩家的血量,玩家的经验条,玩家的级别,玩家的名称,玩家当前的金钱和分数,玩家的陷阱以及导弹的技能图标和级数,导弹技能的冷却时间,玩家的技能点数,下一波怪物到达的时间等。
- 怪物和其他玩家的上部会实时绘制一个血条用于显示怪物或者其他玩家的当前血量。
# 服务端
## 服务端架构
游戏服务端的架构在给的服务端架构模板上编写而成。
服务器主要分为以下几个模块:
- `simpleServer.py`,服务器主模块,主要负责游戏所有entity的管理以及游戏服务器的主流程的运行。
- `storage/`目录, 数据存储模块,用于和sqlite数据库交互,储存玩家账户以及游戏角色的信息
- `gameDatabase.py`: 是用于链接数据库的单例模块
- `table.py`: 是操纵数据库表的基类
- `accountTable.py`: 是用于储存用户登陆注册信息的表
- `playerEntityTable.py`: 是用于用户游戏角色数据的表
- `service/`目录,即服务器提供的服务模块,通过客户端传入的指定的server id和command id来调用不同的回掉函数进行处理
- `dispatcher.py`: 模板中提供的分配器的基类
- `loginService.py`: 用于处理登陆注册逻辑的服务
- `missileEntityService.py`: 用于处理导弹(玩家技能)相关逻辑的服务
- `monsterEntityService.py`: 用于处理怪物相关逻辑的服务
- `playerEntityService.py`: 用于处理各个玩家相关逻辑的服务
- `trapEntityService.py`: 用于处理陷阱相关逻辑的服务
- `serviceMsg.py`: 用于传入通信信息的类
- `path_finder/`目录,寻路模块,用于怪物自动寻路。
- `navmesh_matrix.txt`: 游戏场景的地图数据,在`mapReader.py`模块中读入。
- `mapReader.py`: 地图读取模块,用于读入地图数据,并进行相应的预处理
- `pathFinder.py`: 寻路模块,用于传入地图中的起始位置和终点位置,返回路径的列表。
- `enemyMove.py`: 怪物移动模块,获取怪物的移动方向。调用`pathFinder.py`模块,通过传入的怪物坐标和目的玩家坐标,返回怪物移动的方向向量
- `netWork/`目录,框架中的网络通信模块,管理已经连接的客户端以及消息的收发
- `netStream.py`: 发送接收数据的底层模块
- `simpleHost.py`: clinet的管理模块
- `entities/`目录,服务器端的各个entity的类模块,各个entity在游戏服务器中管理。
- `entity.py`: 各个entity的基类
- `missileEntity.py`: 导弹(玩家技能)的模块
- `monsterEntity.py`: 怪物模块
- `playerEntity.py`: 玩家(player)模块
- `trapEntity.py`: 陷阱模块
- `common_server/`目录,服务器通用模块
- `timer.py`: 服务器计时器模块
- `common/`目录,服务器基本设置
- `conf.py`: 通信消息格式的配置
- `constrants.py`: 用到的常量以及游戏数据的配置
- `events.py`: 框架中的事件模块,用于定义消息格式
- `header.py`: 框架中的消息头模块,用于序列化和反序列化通信消息头部
- `msgHandler.py`: 消息解析器,用于处理和解析自定义消息格式
## 服务端怪物寻路
游戏的怪物寻路在服务器端完成,通过在二维网格中的A*算法实现,传入的地图数据是从Unity中导出的二维网格坐标。
在进行寻路时首先找到场景中距离其最近的玩家的坐标,随后找到在寻路网格中距离怪物和玩家最近的可循路的整点坐标,通过
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Unity制作的多人在线的第三人称策略类射击游戏 ,服务端实现怪物寻路,服务端由python 实现。 (服务端没有用任何python第三方库)
资源推荐
资源详情
资源评论
























收起资源包目录





































































































共 833 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论

- 普通网友2024-12-30非常有用的资源,有一定的参考价值,受益匪浅,值得下载。

神仙别闹
- 粉丝: 5829
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 软件公司介绍ppt.pptx
- 浅析电气自动化控制系统的应用及发展趋势(1).docx
- 大数据时代下软件工程技术的应用-1(1).docx
- 基于大数据时代背景下企业管理模式的创新探究-2(1).docx
- 信息化项目可行性研究报告(1).docx
- 试析人工智能在计算机网络技术中的运用问题(1).docx
- 互联网金融时代建设银行移动支付创新发展之路(1).docx
- 毕业设计(论文)-基于PROTEUS的单片机LED点阵显示屏的仿真设计(1).doc
- 基于大数据时代下人工智能在计算机网络技术中的应用(1).docx
- 软件开发规范(1).doc
- 计算机考试题库及答案——2023年整理(1).doc
- 计算机科学与技术的应用现状与未来趋势分析(1).docx
- 软件测试规范(2)(1).doc
- 软件编制的脚手架施工方案(含物料提升机、卸料平台)(1).doc
- 电子商务网站方案策划书(1).doc
- 初中数学深度学习的基本理解与实施策略(1).docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
