C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)

🎁个人主页: 工藤新一¹

🔍系列专栏: C++面向对象(类和对象篇)

🌟心中的天空之城,终会照亮我前方的路

🎉欢迎大家点赞👍评论📝收藏⭐文章


### 文章目录

  • [@[toc]](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [二十三、 Tower 防御塔基类实现](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.1 Tower 防御塔类通用功能](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.2 Timer 定时器](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.3 回调函数](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4 锁敌与开火逻辑实现](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.1开火模式](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.1.1子弹生成逻辑](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.1.2 方向计算、子弹发射逻辑解析](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.1.3塔防朝向](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.2更新开火动画](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)
  • [23.4.3锁敌模式](#文章目录 @[toc] 二十三、 Tower 防御塔基类实现 23.1 Tower 防御塔类通用功能 23.2 Timer 定时器 23.3 回调函数 23.4 锁敌与开火逻辑实现 23.4.1开火模式 23.4.1.1子弹生成逻辑 23.4.1.2 方向计算、子弹发射逻辑解析 23.4.1.3塔防朝向 23.4.2更新开火动画 23.4.3锁敌模式)

二十三、 Tower 防御塔基类实现

23.1 Tower 防御塔类通用功能

创建 tower 帅选器存放不同的防御塔文件,并且创建 tower 基类


创建 tower_type.h 文件



添加 facing 枚举,表示防御塔(以及 RPG 角色 - 龙)的朝向



设置动画朝向





23.2 Timer 定时器


23.3 回调函数


23.4 锁敌与开火逻辑实现


23.4.1开火模式

23.4.1.1子弹生成逻辑

23.4.1.2 方向计算、子弹发射逻辑解析

23.4.1.3塔防朝向


23.4.2更新开火动画

23.4.3锁敌模式

攻击敌人的优先级设定:

防御塔攻击策略:优先攻击 route_process 进度最大的怪物



​ 这里我们的代码出现了些许小问题,我们无法调用 get 方法,经过查找,我们发现问题,我们并没有在 EnemyManager 管理器中,暴露对外访问的接口



🌟 各位看官好我是工藤新一¹呀~

🌈 愿各位心中所想,终有所致!

相关推荐
报错小能手1 小时前
C++笔记——STL map
c++·笔记
一步一个foot-print1 小时前
【Unity】Light Probe 替代点光源给环境动态物体加光照
unity·游戏引擎
思麟呀2 小时前
Linux的基础IO流
linux·运维·服务器·开发语言·c++
@LYZY3 小时前
Unity 中隐藏文件规则
unity·游戏引擎·游戏程序·vr
QT 小鲜肉3 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
WBluuue3 小时前
数据结构与算法:树上倍增与LCA
数据结构·c++·算法
呆瑜nuage4 小时前
C++之红黑树
c++
亮剑20185 小时前
第2节:程序逻辑与控制流——让程序“思考”
开发语言·c++·人工智能
敲代码的瓦龙5 小时前
操作系统?进程!!!
linux·c++·操作系统
TiAmo zhang5 小时前
现代C++的AI革命:C++20/C++23核心特性解析与实战应用
c++·人工智能·c++20