FlashLite1.1の最近のブログ記事

あたり判定

FlashLite1.1には,ムービークリップ同士の衝突判定を行える「hitTest関数」が無いため,それに代わる判定を何かの方法で行うしかない。そこでゲーム制作本来の方法である「座標範囲による判定」を行っている。

if (../../:pc_dmg == 0) { //[1]
if (_x - 32 <= ../pc:_x and _x + 32 >= ../pc:_x) { //[2]
if (_y - 32 <= ../pc:_y and _y + 32 >= ../pc:_y) { //[2]
gotoAndPlay ("get");
} else {
gotoAndPlay (1);
}
} else {
gotoAndPlay (1);
}
} else {
gotoAndPlay (1);
}

[1] PCがダメージ状態でなければ,PCとメダルクリップとの当たり判定を行う

[2] ここで,PCとメダルクリップとの座標範囲による当たり判定を行っている。詳しくは下記の図で

04-09a.jpg

TH400_04-09b.jpg

TH400_04-09c.jpg

このように,クリップの基準点を中心とした座標範囲を当たり有効範囲と設定し,クリップ同士の当たり判定を行う。この方法なら,両者がどのように動いて衝突しても当たり判定が行える。ここでとても重要なのは,当たり有効範囲の調整である。

 

Flash lite 1.1はパスの書き方が通常とは違う。

tellTarget関数でのムービークリップのアクセスの仕方。

■ルート
tellTarget("/") {
    命令文;
}

■parent
tellTarget("../") {
    命令文;
}

■2階層目
(例)rootに"ball"MC、”ball”MCの中に"smallBall"MCを配置し、smallBallに処理をさせる場合
tellTarget("/ball/smallBall") {
    命令文;

ボタンフォーカス枠の表示OFF

ケータイのFlashは,Flashコンテンツ内にボタンが設置されていると,ケータイの上下キーを押すことによって,四角いフォーカス枠が表示されてしまう。これを非表示にしたければ,「_focusrect=false」としておけば表示されなくなる。

1