コリジョンマップと、光源になりたいところがあります。光源は、実際に地面が見える形の光を提供します。これで、次のようになります。
したがって、光は壁を通り抜けます。私はそれをこのように見せたい:
(壁との衝突を濃い黄色でマークしました)
そのため、壁に当たると光線は止まります。正しいライトの形を取得したいのですが、それを含むビットマップが最適です)
私の最初のアイデアは、光源から光線を投影し、それらが壁に衝突するタイミングを確認することでした(これを行う方法を知っています)が、たとえば0.001度ごとに光線を投影する必要があるため、光を生成するには時間がかかりすぎます。次のことは、ライトの形状が常に円であるとは限らないことです。場合によっては、楕円または半楕円、さらには三角形または円の一部になることもあります。一般的に、私は何も衝突しない光のビットビットを持っています、そしてそれを少し差し引いて、2番目の画像のように見せたいと思います。
そして最後に、Imはallegro 4.2.1を使用していますが、前述のすべてのビットマップは、0と1の2次元配列です。
助けてくれてありがとう、長い質問と私の悪い英語でごめんなさい。