問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:5 / 状態:解決済み / No:19 / ATOM
1 名前:JJ 日付:2010/05/09(日)17:50:05 ID:I/2yAi30RRyX
日々参考にさせていただいています。

http://hakuhin.jp/as/collide.html#COLLIDE_01
こちらのサンプルではブロックに対する横方向への当たり判定に縦方向の条件が入っていませんが
ブロックの上を歩いている時(横方向に進路を遮るブロックが無い時に)ブロックの左右に補正されてしまいます。

 ○←プレイヤー
□□■←ブロック(■に横方向の判定が出てしまい、ブロック左側に補正される。)

このような状態になります。
プレイヤーの矩形がブロックの縦方向の最大、もしくは最小部分の範囲内にいる事を
条件に加える必要があるんでしょうか?
2 名前:kame 日付:2010/05/09(日)18:40:40 ID:GKBiaxnzD6eZ
1つのブロックムービークリップをムービークリップに入れ子にして重ね(そのときアクションスクリプトはカットしておく)、
そのムービークリップにアクションスクリプトをぶち込むというのはどうでしょうか。

3 名前:◆..HAKuHiNs 日付:2010/05/10(月)21:28:00 ID:yDl4tzgDJCHR
>>1
そのサンプルの173行目を

if(dy > 0){

から

if(dy >= 0){

に変更してみてください。



………その修正がされた上での補足情報です。
横方向にブロックが並んでる上にプレイヤーを横方向に
歩かせても、先に上方向に補正されるため引っかかることはありません。

 ←○→
□□□□□□□□





しかし、縦方向にブロックが並んでいる場合は、上下方向に移動させると
先に上下方向に補正されるため引っかかります。

□×
□↑
□○
□↓
□×

この図の場合だと、
「プレイヤーの矩形」と「地形の矩形」が当たっているかをすべて調べて、
「地形の矩形」の右側の位置が同じである「地形の矩形」が複数見つかれば、
一体化された地形であると考え、上下の判定を無視するといった処理を追加する必要があります。
4 名前:JJ 日付:2010/05/16(日)23:41:49 ID:I/2yAi30RRyX
kameさん、hakuhinさん、お答えありがとうございました。
参考にさせていただきます。
5 名前:状態変更 日付:2010/05/17(月)13:53:39 ID:I/2yAi30RRyX
この質問の状態を『解決』に変更しました。
このスレッドについて
質問の状態 :
解決済み
投稿開始日 :
2010/05/09(日)17:50:05
投稿終了日 :
2010/05/17(月)13:53:39
投稿者 :
JJ
レス総数 :
5
スレッド番号 :
19
MondoCollectionSystem ver.0x00020000 by Hakuhin