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 管理器中,暴露对外访问的接口



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

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

相关推荐
菜_小_白8 分钟前
RTP协议收发组件开发
linux·网络·c++
jf加菲猫13 分钟前
第12章 数据可视化
开发语言·c++·qt·ui
wsoz20 分钟前
Leetcode矩阵-day7
c++·算法·leetcode·矩阵
Emberone23 分钟前
C++内存管理+模板初尝试:暴风雨前的尝试
c++
6Hzlia24 分钟前
【Hot 100 刷题计划】 LeetCode 79. 单词搜索 | C++ 标准方向数组 DFS 与回溯
c++·leetcode·深度优先
呆呆敲代码的小Y44 分钟前
【Unity工具篇】| 使用YooAsset接入自己的游戏项目,实现完整热更新流程
游戏·unity·游戏引擎·热更新·yooasset·资源热更新
张老师带你学1 小时前
Unity 低多边形 赛博朋克城市 拼装 模型 道路 建筑 buildin
科技·游戏·unity·游戏引擎·模型
ฅ^•ﻌ•^ฅ11 小时前
Unity mcp并使用claude code制作游戏
游戏·unity·游戏引擎
沐雪轻挽萤1 小时前
4. C++17新特性-内联变量 (Inline Variables)
开发语言·c++
张老师带你学1 小时前
unity资源 buildin 低多边形 小镇村
科技·游戏·unity·游戏引擎·模型