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


🎁个人主页:工藤新一¹
🔍系列专栏:C++面向对象(类和对象篇)
🌟心中的天空之城,终会照亮我前方的路
🎉欢迎大家点赞👍评论📝收藏⭐文章
文章目录
- @[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锁敌模式
文章目录
- @[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 管理器中,暴露对外访问的接口



🌟 各位看官好,我是工藤新一¹呀~
🌈 愿各位心中所想,终有所致!
