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



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

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

相关推荐
数据智能老司机16 小时前
用 C/C++ 从零实现 Redis——简介
c++·redis
RIDDLE!16 小时前
Visual Studio使用C++配置OpenCV环境,同时添加模板以4.12为例
c++·opencv·visual studio
企鹅虎16 小时前
英雄C++入门到精通
c++
小虎l16 小时前
英雄C++入门到精通
c++
青草地溪水旁16 小时前
设计模式(C++)详解——解释器模式(2)
c++·设计模式·解释器模式
Kevinhbr17 小时前
CSP-J/S初赛赛后总结
c++·程序人生·ccf csp-j/s
Zewen PAN17 小时前
新手 Visual Studio 环境配置 详解
c++·ide·visual studio
hhhwx66619 小时前
Linux学习记录--利用信号量来调度共享资源(2)
linux·c语言·c++·学习
1白天的黑夜119 小时前
队列+宽搜(BFS)-662.二叉树最大宽度-力扣(LeetCode)
c++·leetcode·宽度优先·队列
yihai-lin19 小时前
Rust/C/C++ 混合构建 - Cmake集成Cargo编译动态库
c语言·c++·rust