AS3でビデオガミッシュを開発してきました。道路、火、フィニッシュゲートなどを含むゲームフィールドを描画する配列があります。次に、プレーヤーがマウスで制御するMovieClipを追加し、道路のMovieClipとの衝突を確認します。
しかし、私は動作しません...それは「IN」をトレースすることはありません。コードにエラーが見つかりませんでした-しかし、確信が持てません...この問題を解決するために手を貸していただけませんか。
みんなありがとう!
コードは次のとおりです。
Declarations:
public class Player extends MovieClip
{
public var player:MovieClip;
public var road:MovieClip;
public var finish:MovieClip;
public var fire:MovieClip;
public var sting:MovieClip;
public var map:Array = new Array();
アレイの初期化:
/* 1 ROAD
* 2 FINISH
* 3 FIRE
* 4 STRING
*/
public function Player():void
{
map = [ [ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ]
];
// 10 x 10 array
hitTest関数の追加:
addEventListener( Event.ENTER_FRAME, playerHitTest );
そしてhitTest関数:
public function playerHitTest( e:Event ):void
{
if ( player.hitTestObject( road ) )
{
trace("IN");
}
}
PS:条件を設定する!player.hitTestObject( road )
と、常に「IN」をトレースします。
再度、感謝します!