g_stage.isonthegroundはCollision関数で毎ループチェックしているので、コメントアウトしても、ジャンプ処理が入ったときのループでの非接地時の処理をスルーするだけで、次のループから処理しているみたいです。
とりあえず、もとの問題は解決してしまったので、「解決」とします。
ただ、なぜジャンプ処理が入ったときのループでの非接地時の処理をおこなうと、キャラが吹っ飛ぶのかはわからないままです。
検索結果 4 件
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: Box2Dでキャラが吹っ飛びます・・・
- 返信数: 6
- 閲覧数: 3006
Re: Box2Dでキャラが吹っ飛びます・・・
コードを眺めていると、左右移動よりジャンプの処理がおかしいのかな?っと思って、
g_stage.isontheground = false;
を
g_stage.isontheground = true;
になんとなくしてみると、偶然、何故か問題が解決してしまいました。
こんなことなら、g_stage.isonthegroundに値を代入する必要がないのでは、と考えコメントアウトしてみると、やはり、正常に動作しました。
逆に、この挙動はなぜ?という問題が発生してしまいました。
g_stage.isontheground = false;
を
g_stage.isontheground = true;
になんとなくしてみると、偶然、何故か問題が解決してしまいました。
こんなことなら、g_stage.isonthegroundに値を代入する必要がないのでは、と考えコメントアウトしてみると、やはり、正常に動作しました。
逆に、この挙動はなぜ?という問題が発生してしまいました。
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: Box2Dでキャラが吹っ飛びます・・・
- 返信数: 6
- 閲覧数: 3006
Re: Box2Dでキャラが吹っ飛びます・・・
言われてみた通り、左右移動時にSetLinearVelocity(vec)のyメンバに0を代入すると、吹っ飛びは回避されました。
しかし、通常ジャンプ時に比べ、ジャンプ力が高いのに無理やり押さえつけている感が出てしまいました。
いまだ、左右移動時にジャンプをすると、y軸方向に上向きに強い力が加わっているようです。
どこでそのような力が加わるのかわかりません・・・
しかし、通常ジャンプ時に比べ、ジャンプ力が高いのに無理やり押さえつけている感が出てしまいました。
いまだ、左右移動時にジャンプをすると、y軸方向に上向きに強い力が加わっているようです。
どこでそのような力が加わるのかわかりません・・・
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: Box2Dでキャラが吹っ飛びます・・・
- 返信数: 6
- 閲覧数: 3006
Re: Box2Dでキャラが吹っ飛びます・・・
回答ありがとうございます。
今週末にでも、修正してみます。
もし、それでもわからなかった場合、またお教えいただくと思いますが、そのときはよろしくおねがいします。
今週末にでも、修正してみます。
もし、それでもわからなかった場合、またお教えいただくと思いますが、そのときはよろしくおねがいします。