0
這將如何實現?這裏是我到目前爲止的代碼只是旋轉基於鼠標的位置,以及子彈船:在精靈正面臨的方向上做子彈射擊
xPos = ship.getPosition().x, yPos = ship.getPosition().y, mousex = sf::Mouse::getPosition(window).x, mousey = sf::Mouse::getPosition(window).y;
if (mousex > 800) mousex = 800; if (mousey > 600) mousey = 600; if (mousex < 0) mousex = 0; if (mousey < 0) mousey = 0;
double angle = atan2(mousey - yPos, mousex - xPos) * (180/3.14159);
ship.setRotation(90+angle);
bullet.setRotation(-90+angle);
那麼,如何將匹配子彈的速度是一樣的方向船正面臨?所以如果我發射一顆子彈,它應該正好射向船的目標。
我到目前爲止所嘗試的是創建一個從子彈到鼠標位置的距離矢量,並通過該距離矢量移動子彈,但當然會立即將子彈移動到鼠標的位置,只需1幀。它需要像一個仍然朝向鼠標位置的正常速度。
好像基本三角給我。要麼'velocity_x = cos(角度)*速度; velocity_y = sin(angle)* speed;'或者規格化向量'[mousex-xPos,mousey-yPos]'並且將其分量與速度 – PeterT 2014-11-21 12:30:58