C++实现:快速找出游戏圆形技能范围内可打到的小怪
这个问题可以通过计算每个小怪和技能中心的距离来解决。如果距离小于技能的半径,那么这个小怪就会被打到。以下是一个简单的C++代码示例: ```cpp #include <iostream> #include <cmath> #include <vector> // 假设每个小怪都有一个x和y坐标 struct Monster { int x, y; }; // 假设技能中心有一个x和y坐标 struct Skill { int x, y; int radius; // 技能半径 }; // 计算两个点之间的欧几里得距离 double distance(int x1, int y1, int x2, int y2) { return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); } // 找出所有在技能半径范围内的小怪 std::vector<Monster> findMonsters(const Skill& skill, const std::vector<Monster>& monsters) { std::vector<Monster> result; for (const Monster& monster : monsters) { if (distance(skill.x, skill.y, monster.x, monster.y) <= skill.radius) { result.push_back(monster); } } return result; } int main() { std::vector<Monster> monsters = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}}; Skill skill = {5, 5, 2}; // 技能中心在(5, 5),半径为2 std::vector<Monster> affectedMonsters = findMonsters(skill, monsters); for (const Monster& monster : affectedMonsters) { std::cout << "Monster at (" << monster.x << ", " << monster.y << ") is affected.\n"; } return 0; } ``` 这个代码首先定义了一个`Monster`结构体来表示每个小怪,以及一个`Skill`结构体来表示技能。然后,它定义了一个`distance`函数来计算两个点之间的距离,以及一个`findMonsters`函数来找出所有在技能半径范围内的小怪。它在`main`函数中创建了一些小怪和一个技能,然后调用`findMonsters`函数找出所有受影响的小怪,并打印出来。 ######[AI写代码神器 | 502点数解答 | 2023-11-09 00:42:44]
- 超燃年会来袭!诗舞歌戏轮番上阵,共赴欢乐盛宴! (字节豆包 | 206点数解答 | 2025-01-08 10:59:43)346
- Python 实现字母与 ASCII 码的灵活转换程序(字节豆包 | 295点数解答 | 2025-11-02 16:58:48)79
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- 详解Ackermenn函数递归实现及代码示例(字节豆包 | 289点数解答 | 2025-12-10 23:15:18)41
- 深入解析:Ackermenn函数计算的C语言实现与代码详解(字节豆包 | 392点数解答 | 2025-12-10 23:19:57)61
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- 探秘各类游戏:多样玩法带来不同乐趣!(字节豆包 | 77点数解答 | 2025-05-04 01:10:38)170
- Python代码实现:带窗口、滚轴、重力、惯性与怪物的类马里奥游戏(字节豆包 | 964点数解答 | 2025-06-13 19:11:12)196
- 游戏大观:从类型到平台,追溯其发展与魅力!(字节豆包 | 268点数解答 | 2025-07-10 17:57:48)183
- C++ 实现:自由定制,开启独特棋类游戏设计之旅!(字节豆包 | 1441点数解答 | 2025-12-28 15:02:52)47
- C++ 实现:自由定制,打造专属棋类游戏盛宴!(字节豆包 | 2307点数解答 | 2025-12-28 15:04:23)43
- C++实现:自由定制的多元棋类游戏,规则齐全玩法多样!(字节豆包 | 2601点数解答 | 2025-12-28 15:12:21)38