トップページ > 過去ログ > 記事閲覧
座標の扱いについて
名前:そば 日時: 2010/09/24 01:14

3Dアクション基本のサンプルプログラムをいじって ゲームを作成しています。 キャラがある座標内にいるときにENTERキーを押すと イベントが起こる…というプログラムを作りたいと思い // プレイヤー情報構造体 struct PLAYER { VECTOR Position ;       …(他略) } ; // 実体宣言 PLAYER pl ; // プレイヤー情報の実体宣言 …(他略) if(-35.0f <= pl.Position.x <= -27.0f && pl.Position.y == 0.0f && -37.0f <= l.Position.z <= -40.0f && CheckHitKey( KEY_INPUT_RETURN )!= 0){ …(以下イベントが起こる) のような条件文を作成したのですがうまく作動せずに 困っています。エラーは起こらないのですが warning C4804: '<=' : 演算中の 'bool' 型の使用方法が安全ではありません という警告が出てきます。 座標に関しては DrawFormatString( 0, 0, GetColor(255,255,255), "%2f,%2f,%2f ", pl.Position.x,pl.Position.y,pl.Position.z ) ; などとして画面に座標を表示させて 確認できるようにしているので位置の 間違いということは無いと思います。 if( CheckHitKey( KEY_INPUT_RETURN )!= 0){     …(以下略) のように座標に関する条件をはずすとうまく作動します。 pl.Position.x… などはfloat型だと思うのですが間違いなのでしょう か?比較の仕方が良くなさそうとは思うのですが、 なにぶん初心者なので見当がつきません。 初歩的な質問と思いますがどなたかご教示願います。

Page: 1 |

Re: 座標の扱いについて ( No.1 )
名前:tare 日時:2010/09/24 01:39

-35.0f <= pl.Position.x <= -27.0f こんな書き方はできません。 -35.0f <= pl.Position.x && pl.Position.x <= -27.0f と分けましょう。 (このままだと、(-35.0f <= pl.Position.x)が真であるか偽であるかという値と-27.0fを比較してしまっています。当然正常には動きません)
Re: 座標の扱いについて ( No.2 )
名前:そば 日時:2010/09/24 02:04

>tare様 おかげ様で無事解決できました。 本当にありがとうございました!!

Page: 1 |