酷代码 AI
菜单
服务商

作为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`函数找出所有受影响的小怪,并打印出来。 [2023-11-09 00:42:44 | AI写代码神器 | 502点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]