- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在写一个简单的塔防,我卡在了我的塔必须射击敌人的地方。
使用这段代码:
void Bullet::move(int x, int y, int speed)
{
Punkt delta = {(x + speed) - this->x, (y + speed) - this->y};
if (abs(delta.x) > 1 && abs(delta.y) > 1)
{
this->x += delta.x / this->speed;
this->y += delta.y / this->speed;
}
else
{
this->dead = true;
}
}
其中方法参数是目标位置和速度。它应该沿着 vector 移动子弹直到它到达目标但是 vector 改变因为目标在移动。现在子弹是这样的(黑色是塔,蓝色是子弹,红色是敌人)
而且我知道问题是我的子弹瞄准的是已经移动的东西,所以我的问题是 - 如何改进此代码以使其正常工作?我不知道如何理解 vector 和弹道学,所以在此先感谢您保持简单。
最佳答案
我以前见过的解决这个问题的合理方案如下:
如果您的数学足够聪明,这样看起来会不错。但除此之外,游戏仍将正常运行。
如果敌人有可能在您向他们开火后改变速度(例如,他们会因特殊地形或影响范围的炮塔而减速),这种方法也会更加稳健。
关于c++ - 在 C++ 中沿着二维 vector (塔防)移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294815/
我正在使用 Slick2D 库用 Java 制作塔防游戏。我的子弹数学有问题。现在子弹将在敌人当前的 X,Y 坐标之后射击 - 但由于当子弹到达 X,Y 时敌人已经移动,因此它会落后。除了加快子弹速度
我已经实现了泛洪填充算法,该算法采用带有路径的数组 [15*15] 并生成他在填充路径时所采取的步骤队列。 tl;dr 它看起来像这样 std::queue f_path; void Enemy::
这是我的代码: func bombTowerTurnShoot() { var prevDistance:CGFloat = 1000000 var closesetZombie =
我正在写一个简单的塔防,我卡在了我的塔必须射击敌人的地方。 使用这段代码: void Bullet::move(int x, int y, int speed) { Punkt delta =
我是一名优秀的程序员,十分优秀!