DXライブラリ 総合スレッド 2008at GAMEDEVDXライブラリ 総合スレッド 2008 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト639:623 09/02/23 19:27:59 4Qo3h6rv >>626 回答ありがとうございます。 衝突判定に試行錯誤する覚悟でfloatを使っていこうと思います。 >>633 たとえば、5ドットずつ動く弾をx軸から10度の方向に撃つとき、 sin10°*5だと1を割ってしまうので座標を整数で記述していると10度の方向に行かず水平に移動してしまいます。 intを固定小数点数的に記述する方法もあるにはあるのですが あくまでみなし少数なので注意してコーディングしないとバグが出る、要するに面倒くさいんです。 640:名前は開発中のものです。 09/02/23 20:03:52 JKBRWfYb sin10°と書いた時点で浮動小数点使ってる。 まさか1周256°のsinテーブル保持するなんて、オールドテクニック使うつもりじゃないんだよね? 整数部と小数部を持たせる固定小数点だとfloat演算より余計にオーバーヘッド食うよ。 素直にfloatでOK。 641:名前は開発中のものです。 09/02/23 20:22:10 JKBRWfYb みんな知っていることだと思うけど、>>638の誤差云々という話についても書いておく。 1.浮動小数点に関して、==で比較してはならない。 2つの浮動小数点数の差を取り、その絶対値が誤差限界より小さい時には、等しいものと判定するようにする。 2.浮動小数点同士の計算は一番最後に行う。 誤差の蓄積を防ぐため。上手いこと計算の順序を変える。 3.一時的に整数型を使う 0.1を10回足し算する計算を、0.1を10倍して1にしてから10回足して、その後に10で割る。 固定小数点の中でも、特に整数部と小数部を分けた固定小数点はバグの温床になりやすい。 正直いらんお世話だと思うが、1人でも悩んでいるのならとおもって書いておいた。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch