📄 dolly.cpp
字号:
#include <airobot/c/SimpleRobot.hpp>
#include <airobot/ commons/Math.hpp>
/**
* C#例子机器人Dolly,此机器人主要演示了比较有趣的特殊技巧
* Dolly这个名字由克隆羊多利的名字而来,他会克隆敌人的运动,而且实现方法简单。
*/
class Dolly: public SimpleRobot {
private:
long time;
//扫描到敌人,往敌人的方向射击
public:
void onTick(TickAction* action) {
Bot* bot = getFirstOpponent();
if (bot==null) return;
//shoot
if (getFirePrepareTime() <= 0) {
//计算敌人的方向
double heading =
Math::atan2(bot->getY() - getY(),bot->getX() - getX());
//在敌人方向正负40度范围内随机发弹
fire(heading + rand() * MathUtils::toRadians(80)
- MathUtils::toRadians(40), 1 + rand() * 2);
}
//turn 转到与敌人对称的方向
double needTurn = MathUtils::anglePI(bot->getHeading() + MathUtils::PI
- getHeading());
turn(needTurn);
//move 与敌人保持速度一样
move(bot->getVelocity());
if(getTime() - time > 1){
println("lost time : " + (getTime() - time));
}
time = getTime();
};
//启动机器人程序
int main(int argC, char* argV[])
{
Robot* robot = new Dolly();
return startup(argC, argV, robot);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -