旧Siv3d(OpenSiv3Dではない方)を使って、TPSのゲームを作りたいと思い下記の記事を参考にコードを書いていたのですが、
m_rot = m_rot * Quaternion::rotateYaw(yaw);
の部分で、「静的でない参照は特定のオブジェクトを基準とする相対参照である必要があります」というエラーが出てしまいます。
解決策等ありましたら、ご回答いただけると幸いです。
↓参考記事
3Dプレイヤー移動
C++
1Player::Player() :Task() 2 ,m_pos(0,0,0) 3 ,m_rot(Quaternion::Identity()) 4 ,m_size(4) 5 , m_Update(this, &Player::Update, CallGroup_Update) 6 , m_Draw(this, &Player::Draw, CallGroup_Draw) 7{ 8 9} 10 11void Player::Update() 12{ 13 double yaw = Clamp((Mouse::Pos().x - Window::Size().x / 2) / 4000.0, -0.05, 0.05); 14 15 if (Abs(yaw) < 0.03) 16 { 17 yaw = 0.0; 18 } 19 20 m_rot = m_rot * Quaternion::rotateYaw(yaw); 21 22 const Vec3 walkDirection = 23 Input::KeyA.pressed * Vec3::Left 24 + Input::KeyD.pressed * Vec3::Right 25 + Input::KeyW.pressed * Vec3::Forward 26 + Input::KeyS.pressed * Vec3::Backward; 27 28 m_pos += m_rot * walkDirection * 0.1; 29} 30 31void Player::Draw() 32{ 33 Box(m_pos, m_size,m_rot).draw(Palette::Skyblue); 34}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/24 08:19
2019/05/24 08:32