| hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
シューティングといえばやっぱりこれが無いと。
いきなりサンプルです。ならうより慣れろということで…?
| + | 衝突判定サンプル |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | - | | | | | ! - | - | ! - | | | | | | | | - | | ! | |
こちらに投稿されたものです。
| + | 衝突判定サンプル |
![]()
|
関連ページ:当たり判定モジュール
![[hsp3]](./image/req/hsp3.png)
| + | 矩形同士の衝突判定 |
![]()
|
![[hsp3]](./image/req/hsp3.png)
| + | 円同士の衝突判定 |
![]()
|
![[hsp3]](./image/req/hsp3.png)
| + | 円と直線の衝突判定 |
![]()
|
拡張性皆無なスクリプトになってしまいました…orz
処理速度がどうなってるか分からないので…プラグインを探して使ったほうが早くて扱いやすいと思います。(^ ^;
よいアイデアありましたら修正お願いします。
| + | モジュール |
|
|
コメント
|
楕円は2焦点から外周までの距離の合計が一定と言う性質を持っています。
そこで、2焦点から任意座標までの距離を算出することで、それが一定値以下なら楕円の内側、一定値以上なら外側として判定できます。
![[hsp3]](./image/req/hsp3.png)
| + | 楕円と点の衝突判定 |
![]()
|
簡単にできそうで、意外にに難問です。
ちなみに検索すると解法が見つかります。
http://marupeke296.com/COL_2D_No7_EllipseVsEllipse.html
見つかりますが、よく分かりませんでした。_| ̄|○
そこで、もう少しいい加減にやってみることにします。
マウスのほうの楕円が半径1.0の円になるように縦横比を変換。
円と楕円の判定という形にします。
楕円の方を外側に1.0だけ膨らませればいいのですが、難しいので単純に半長軸と半短軸に+1.0します。(この方法では1.0より近い場所も出てくるので正確さを求めることが出来ません。)
短径/長径が小さいと誤差が出やすいようです
ともかくこれで点と楕円の判定という形になりました。
あとは「楕円と点」で書いた方法で判定します。
![[hsp3]](./image/req/hsp3.png)
| + | 楕円と楕円の衝突判定 |
![]()
|
このスクリプトの場合、短径/長径が近い2つの楕円の判定であれば、小さい誤差で判定できます。
IntersectRect?を使用したものです。
| + | 当たり判定 |
![]()
|
対応する四辺が平行な矩形同士の交差判定
上のコメントでkz3さんが書いていることの補足説明。