RSS

点と点の斜辺の長さと角度を取得する。

04 7月

【やりたいこと】

・高さが異なる2点間を、CCScale9Spriteの線の画像を伸ばして繋ぎたい

【欲しい値】
・画像を横に伸ばすので、その長さ
・2点間の高さが異なるので画像を回転させる必要がある。その角度

点1(x1, y1)
点2(x2, y2)

— [サンプル] ——————————————————–

CCScale9Sprite* lineImage =CCScale9Sprite::create("02_bg_way.png");

float sX = 0; // 点1のX位置
float sY = 0; // 点1のY位置

float eX = 1; // 点2のX位置
float eY = 1; // 点2のY位置

// 長さ
float width = ccpDistance(ccp(sX, sY), ccp(eX, eY));

// 斜辺
float hAngle = ccpToAngle(ccpSub(ccp(sX, sY), ccp(eX, eY)));
float angle = CC_RADIANS_TO_DEGREES(hAngle);
angle *= -1;

if (angle < 0){
angle = 360+angle;
}

lineImage->setContentSize(ccp(width, lineImage->getContentSize().height));
lineImage->setPosition(sX, sY);
lineImage->setRotation(angle);

(距離取るのにめちゃめちゃ √((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1)) とか考えたんだよ・・・orz)
Cocos2d-xで用意されてました。
そりゃあゲームでよく使う計算だよねえ・・
気が付かなくてめっちゃググってました・・・

 

 

広告
 
コメントする

投稿者: : 2014/07/04 投稿先 C++, Cocos2d-x

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。