如何以特定角度从地面高度向上射击球?
我尝试过申请ball->update(frameTime)
velocity.x = cos(tank->getAngle()) * baseSpeed;
velocity.y = sin(tank->getAngle()) * baseSpeed;
spriteData.x += velocity.x * frameTime;
spriteData.y += velocity.y * frameTime;
但球只是随机飞过并离开了比赛界面。
帮助?
答案 0 :(得分:0)
通过阅读视频的评论,似乎存在误解。我认为当乔治说使用toTarget矢量时,他将其视为球的行进线的梯度。不是球实际的最终目的地。从度到弧度的转换也是
((Tank->getangle()*pi)/180).
非矢量形式:
(可能错误的语法但数学是正确的)
velocity.x = cos((Tank->getangle()*pi)/180) * baseSpeed;
velocity.y = sin((Tank->getangle()*pi)/180) * baseSpeed;
spriteData.x += velocity.x * frameTime;
spriteData.y += velocity.y * frameTime;
我也确定你的frameTime变量是什么,但如果它按照我想象它的名字工作的方式工作,它可能会引起你的问题。如果您的程序在阅读本文时仍然无法正常工作,那很可能与此有关。