math
@@ -301,6 +301,8 @@ | ||
301 | 301 | // チェックポイントを取得 |
302 | 302 | HPLVector getEdgeDown(HPLRect& rHitArea, int nFaceDir); |
303 | 303 | void adjustToBlock(HPLShootingObject* lpObject, int TILE_SIZE); |
304 | + | |
305 | + | |
304 | 306 | } |
305 | 307 | |
306 | 308 | #endif |
@@ -640,3 +640,19 @@ | ||
640 | 640 | } |
641 | 641 | } |
642 | 642 | } |
643 | + | |
644 | +/** 最初の角度と目的までの距離から、必要な速度を計算 | |
645 | +*/ | |
646 | +float HPLMath::getSpeedFromDistanceAndDeg(float fDistance, float fDeg, float fMinVel, float fGravity) { | |
647 | + float fVal = fGravity * fDistance / (2 * HPLMath::getTableSin(fDeg) *HPLMath::getTableCos(fDeg)); | |
648 | + fVal = fabs(fVal); | |
649 | + if (fVal <= 0){ | |
650 | + if (fMinVel <= 0){ | |
651 | + return 0; | |
652 | + } | |
653 | + fVal = fMinVel; | |
654 | + } | |
655 | + float fSpeed = sqrt(fVal); | |
656 | + return fSpeed; | |
657 | +} | |
658 | + |
@@ -303,6 +303,11 @@ | ||
303 | 303 | |
304 | 304 | // ランダムな順番を作成 |
305 | 305 | void getRandomIndexes(vector<int>& vecIndexes, int nNum); |
306 | + | |
307 | + /** 最初の角度と目的までの距離から、必要な速度を計算 | |
308 | + * @param[in] fMinVel 速度が0の場合、(エラーになるので)必要な最低速度を設定。0の場合、0のときに0を返す | |
309 | + */ | |
310 | + float getSpeedFromDistanceAndDeg(float fDistance, float fDeg, float fMinVel, float fGravity); | |
306 | 311 | } |
307 | 312 | |
308 | 313 | /* |