作品やら思ったコトを書き留めておく、付箋みたいなトコロ。
M.E.の思うトコロ
壊)ブロックをこするときの当たり判定を最適化
検証用バージョンv2
今までは、Flash独自の機能を使って当たり判定を出していました。
しかし、その機能が重いのに結構大雑把なため、実装を変えてみました。
ブロックを回転させたときに、溜まっている300個のブロックすべてを検索対象にし、
それを落下ブロック分だけ繰り返すということをしていました。
つまり、「300×落下ブロックの個数」のコストでした。
今回からは、ブロックの位置を検索しない事で高速化しました。
原理を簡単に言うと、一つの落下ブロック当たり25箇所の地点が、
ブロック溜りのどこに相当する位置であるかを計算で求めています。
計算でブロックの位置が分かるので、その場所にブロックがあるかを調べるだけです。
これにより、「25×落下ブロックの数」の大幅な最適化。
これにより、当たり判定が高速化しました。
調べる地点が、25箇所という大雑把さなのに、
Flashの機能を使うより精度が高いという、驚きの結果。
これで、いくらか軽くなると良いのですが。
今までは、Flash独自の機能を使って当たり判定を出していました。
しかし、その機能が重いのに結構大雑把なため、実装を変えてみました。
ブロックを回転させたときに、溜まっている300個のブロックすべてを検索対象にし、
それを落下ブロック分だけ繰り返すということをしていました。
つまり、「300×落下ブロックの個数」のコストでした。
今回からは、ブロックの位置を検索しない事で高速化しました。
原理を簡単に言うと、一つの落下ブロック当たり25箇所の地点が、
ブロック溜りのどこに相当する位置であるかを計算で求めています。
計算でブロックの位置が分かるので、その場所にブロックがあるかを調べるだけです。
これにより、「25×落下ブロックの数」の大幅な最適化。
これにより、当たり判定が高速化しました。
調べる地点が、25箇所という大雑把さなのに、
Flashの機能を使うより精度が高いという、驚きの結果。
これで、いくらか軽くなると良いのですが。
コメント ( 2 ) | Trackback ( 0 )