質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

Q&A

解決済

1回答

412閲覧

Siv3ⅮでQuaternion を使って TPS 風の移動をする際のエラー

furukawa1687

総合スコア17

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

0グッド

0クリップ

投稿2019/05/24 04:05

旧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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

静的でない参照は特定のオブジェクトを基準とする相対参照である必要があります

静的関数ではない普通のメンバー関数を静的関数風に呼び出しているんじゃないでしょうか?

Siv3Dもクォータニオンもわからないですが、

Quaternion::Yaw(yaw)

ではないでしょうかね?(たぶん関数名が変わっているのではないかと)

投稿2019/05/24 07:44

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

furukawa1687

2019/05/24 08:19

ご回答ありがとうございます。 いろいろ調べて実装した結果解決いたしました。
takabosoft

2019/05/24 08:32

違う方法で解決されたのでしたら、その方法を提示した方が良いかと思います(検索でここへたどり着いた方のためにも)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問