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++】stack和queue的接口使用以及底层实现
开发语言·c++
xcLeigh1 天前
Unity基础:Light灯光组件入门——Directional Light、Point Light与Spotlight
unity·游戏引擎·教程
(Charon)1 天前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
ShineWinsu1 天前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
呜喵王阿尔萨斯1 天前
extern “C“ in C++
c语言·c++·算法
乐观勇敢坚强的老彭1 天前
C++信奥静态数组和动态数组
数据结构·c++·算法
gumichef2 天前
第一章:面向对象核心——类和对象深度讲解
开发语言·c++
ao-weilai2 天前
C++基础:类和对象
开发语言·c++
郝学胜-神的一滴2 天前
[简化版 GAMES 104] 现代游戏引擎 04:从0到1构建你的游戏世界
c++·游戏·unity·游戏引擎·软件工程·unreal engine
Bryce学亮2 天前
FileLine,基于 Qt 6 + QML 构建的跨平台文件传输与即时通讯工具
数据库·c++·人工智能·python·qt·github