Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 坦克游戏:Can';我想不出敌人瞄准的正确公式_Flash - Fatal编程技术网

Flash 坦克游戏:Can';我想不出敌人瞄准的正确公式

Flash 坦克游戏:Can';我想不出敌人瞄准的正确公式,flash,Flash,最近,我和托德·帕金斯一起观看了Flash视频:“Lynda.com-ActionScript 3.0项目:游戏开发” 上一课是“创建一个闪速坦克游戏”。我跟着做了一个和课上描述的完全一样的游戏 但是在本课的例子中,敌人的坦克没有下降AI。敌人在随机移动和射击,玩这个游戏似乎没什么乐趣 我决定让人工智能更强大。我已经设法让敌人在被玩家击中时改变移动方向 如果敌人成功击中玩家,它将停止并继续以相同的枪角和相同的位置射击玩家,直到他错过或被玩家击中 问题是计算右炮角的公式不够正确。敌人射门不错,但他

最近,我和托德·帕金斯一起观看了Flash视频:“Lynda.com-ActionScript 3.0项目:游戏开发”

上一课是“创建一个闪速坦克游戏”。我跟着做了一个和课上描述的完全一样的游戏

但是在本课的例子中,敌人的坦克没有下降AI。敌人在随机移动和射击,玩这个游戏似乎没什么乐趣

我决定让人工智能更强大。我已经设法让敌人在被玩家击中时改变移动方向

如果敌人成功击中玩家,它将停止并继续以相同的枪角和相同的位置射击玩家,直到他错过或被玩家击中

问题是计算右炮角的公式不够正确。敌人射门不错,但他还是打偏了很多

下面是我使用的公式:

enemyTargetRotation=Math.asin(Math.abs(enemy_mc.y - player_mc.y)/(Math.sqrt(Math.pow(player_mc.x - enemy_mc.x, 2)+ Math.pow((enemyWall_mc.height - stage.height),2)))/180*Math.PI);
      enemyTargetRotation*=10000;
      enemyTargetRotation+=180;

为什么不干脆
Math.atan2(y2-y1,x2-x1)/Math.PI*180
?它应该给出坦克的x1,y1坐标和目标的x2,y2坐标的射击角度。

为什么不干脆
Math.atan2(y2-y1,x2-x1)/Math.PI*180
?它应该给出坦克的x1,y1坐标和目标的x2,y2坐标的射击角度。

嗯,问题是敌人的坦克站在高地上。坦克发射的子弹不是直线,而是抛物线。您可以检查源代码以验证。Угол - неизвестная, начало в своем танке, должна пересекать чужой. ээээ... аааааааааа,ч-ааааy=x*tg(a)-x^2/(2*v^2-cos^2(a))。。。Так вот нужный угол а и под тангенсом и под косинусом как его найти? я не очень силён в тригонометрии... надо как-то из тангенса получить косинус?Так... tg(x)=sin(x)/cos(x),cos^2(x)。Аcos^2(x)=1/2+1/2*cos(2x)。пытался решить, но там получилось какое-то моструозное выражение. cos(2x)/cos(x)。在1101年的研究中,该地区的除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除外外外外外外外外外外外外外外外外外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他外外外外外外外外外外外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他外外外外外外外外外外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他ааПаа, пока не попадешь. 问题是敌人的坦克站在高地上。坦克发射的子弹不是直线,而是抛物线。您可以检查源代码以验证。Угол - неизвестная, начало в своем танке, должна пересекать чужой. ээээ... аааааааааа,ч-ааааy=x*tg(a)-x^2/(2*v^2-cos^2(a))。。。Так вот нужный угол а и под тангенсом и под косинусом как его найти? я не очень силён в тригонометрии... надо как-то из тангенса получить косинус?Так... tg(x)=sin(x)/cos(x),cos^2(x)。Аcos^2(x)=1/2+1/2*cos(2x)。пытался решить, но там получилось какое-то моструозное выражение. cos(2x)/cos(x)。在1101年的研究中,该地区的除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除除外外外外外外外外外外外外外外外外外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外以外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他外外外外外外外外外外外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他外外外外外外外外外外的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他ааПаа, пока не попадешь. За несколько итераций должно сойтись.