質問編集履歴
3
中身の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,8 +55,8 @@
|
|
55
55
|
auto length = sqrt(vecX * vecX + vecY + vecY);
|
56
56
|
|
57
57
|
//正規化された移動量
|
58
|
-
auto nomalX =
|
58
|
+
auto nomalX = vecX / length;
|
59
|
-
auto nomalY =
|
59
|
+
auto nomalY = vecY / length;
|
60
60
|
|
61
61
|
//正規化した速度を代入
|
62
62
|
x += nomalX * (speed * frameTime);
|
2
中身の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
**C++の正規化について**
|
2
2
|
|
3
3
|
現在、ブロックくずしを作っており、弾の速度からの斜め移動の正規化の計算方法がわかりません。
|
4
|
-
|
4
|
+
これであっているのでしょうか
|
5
5
|
仕様ライブラリはopenSiv3Dです。
|
6
6
|
|
7
7
|
```C++
|
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
//正規化した速度を代入
|
62
62
|
x += nomalX * (speed * frameTime);
|
63
|
-
y +=
|
63
|
+
y += nomalY * (speed * frameTime);
|
64
64
|
|
65
65
|
if (x >= 800 - radius || x <= radius) vecX *= -1;
|
66
66
|
if (y >= 600 - radius || y <= radius) vecY *= -1;
|
@@ -96,5 +96,4 @@
|
|
96
96
|
ball.draw();
|
97
97
|
}
|
98
98
|
```
|
99
|
-
void Ball::Update()の関数です。
|
99
|
+
void Ball::Update()の関数です。
|
100
|
-
弾の跳ね返りの時に逆の方向に跳ね返りが起こっているので正規化が何かおかしいのかと思っています。
|
1
中身の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
現在、ブロックくずしを作っており、弾の速度からの斜め移動の正規化の計算方法がわかりません。
|
4
4
|
|
5
|
+
仕様ライブラリはopenSiv3Dです。
|
6
|
+
|
5
7
|
```C++
|
6
8
|
コード
|
7
9
|
h
|