当前位置:网站首页>如何实现网格建造系统
如何实现网格建造系统
2022-08-10 05:37:00 【优梦创客】
版权声明
- 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
- 更多学习资料请加QQ:1517069595获取(企业级性能优化/Shader特效/热更新/shader特效/服务器/商业项目实战/每周直播/一对一指导)
我们的建造系统要实现的目标:

- WASD在地图上移动
- 按1~6键切换建造单位类型
- 建筑单元可占据多个网格
- 左键按下执行建造(有建造效果)
- R键且换建造方向
- 右键按下销毁建在单位
- 不能重叠建造
定义基础网格数据结构


定义建筑预制体,点击创建实例

点击创建实例
解决创建位置重叠

只能创建在网格内(不能横跨)

- 根据鼠标位置得到网格位置
- 从而确保绘制在网格内
- 思考:如何从鼠标位置得到网格位置?
确保不能重叠建造


配置各建筑单位的数据

解决跨网格建筑单位重叠


解决方法:
- 获取建筑单位占据的所有网格坐标(如何实现?)
- 根据网格坐标找到网格对象
- 将这些网格对象都设置为被正在创建的建筑物占据
- 思考:如何实现GetPositionList?
使建筑单位创建方向可旋转(难点)

定义旋转轴(在Step2)
- 定义当前方向
- 定义旋转规则
- 如何保持在同一个网格区域内旋转?
- 思考如何实现:
- GetNextDir
- GetRotationOffset
- GetRotationAngle
按键切换建筑单位种类


- 建立一个建筑单位种类列表
- 默认新建第0个种类的建筑
建立建筑放置预览效果



- GridObject改为存放PlaceObject
- 存储PlaceObject到GridObject
右键清除预览对象

运用放置效果

商业进阶

- 如何实现建筑单位升级?
- 升级系统(数据配置、UI界面、升级逻辑、服务器交互…)
- 如何实现建筑单位的AI?
- 建筑单位的抽象化:
- 怪物:自动战斗
- 角色:自主行为(休息、工作、娱乐、生活)、与场景内道具单位(如驾驶设施)的交互
- 设施:自动穿行的出租车、游乐场设施等
- 资源:可开采物、可拾取道具、障碍…
- 如果有成百上千个建筑呢?
- 如果不同的玩家类型可以建造的建筑类型不同呢?
- 如何增加建造游戏单元的UI操作界面?
- 如何联网游玩?


更多学习资源请加QQ:1517069595获取(/企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
完整视频可以点击B站链接:https://www.bilibili.com/video/BV1TK4y1g7Se
边栏推荐
- 51单片机AD590温度测量ADC0832运放2.73V减法电压变换
- STM32单片机手机APP蓝牙高亮RGB彩灯控制板任意颜色亮度调光
- pytorch-09. Multi-classification problem
- 51单片机ST188手持人体温度脉搏心率测量仪锂电池充电
- mkfs.minix.c之minix_super_block.s_ninodes获取解析
- 开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)
- Explain the principle of MySql index in detail
- STM32F407ZG 看门狗 IWDG & WWDG
- 二叉树 6/20 86-90
- 酸回收工艺讲解
猜你喜欢

【C语言】结构体变量学习笔记1

Deep learning TensorFlow entry environment configuration

STM32F407ZG GPIO输出相关实验

新建STM32F407ZG Keil5项目

从零开始构建Google Protocol Buffer / protobuf 的helloworld工程(超级详细)

51单片机AD590温度测量ADC0832运放2.73V减法电压变换

LeetCode refers to the offer 21. Adjust the order of the array so that the odd numbers are in front of the even numbers (simple)

Flutter Package 插件开发

接口自动化2.0

以STM32F103C6TA为例通过配置CubeMX实现GPIO输出完成点灯实例
随机推荐
Gradle学习(二)Groovy
所有文章汇总目录
Deep learning TensorFlow entry environment configuration
【fiddler3】使用fiddler设置弱网模式
酸回收树脂工艺技术详解
内核性能分析总结
GC0053-STM32单片机NTC热敏电阻温度采集及控制LCD1602
pytorch-10. Convolutional Neural Networks (homework)
Notes for RNN
Pytorch - 07. Multidimensional characteristics of input processing
STM32F407ZG TIM通用定时器
除砷树脂吸附原理
享元模式-缓存池
Tensorflow 2.0 使用流程详解
STC12C5A60S2单片机WIFI信号扫描报警监视系统信号增强信号过低报警
为什么游戏需要热更新
电镀废水除六价铬
剑指 Offer(第 2 版)7/7 14-17
51单片机RS485远程双机多机温度采集主从机多节点蜂鸣器报警
LeetCode 100. The same tree (simple)