だから私は最近 flixel をいくつか使っていて、その感覚をつかんでいると思いますが、問題に遭遇しました。
関数を使用する Map クラスがありloadMap()
ますが、これは素晴らしい結果です。
次に、Water タイルで を使用setTileProperties()
して、関数を呼び出し、プレイヤー クラスで Boolean を呼び出して (彼が水中にいることを伝えます)、それによって彼の速度が低下します。1 つのことを除いて、これはまだうまく機能します。水のタイルをタイルの上または右 (約 10 ~ 16 ピクセル、正確な数は得られていません) に渡すと、それでもプレイヤーの速度が低下します。これがFlxG.collide()
機能する方法なのか、それを修正するために何かできることがあるのか、衝突を使用する別の方法を見つける必要があるのか どうかはわかりません。すべての助けに感謝します。
必要な場合のコードは次のとおりです。
Map.as
private function createMap():void {
loadMap(new currentMap, currentTiles, 32, 32, 0, 0, 0);
setTileProperties(4, FlxObject.NONE, PlayerInWater);
}
override public function update():void {
super.update();
FlxG.collide(Registry.player, this);
}
private function PlayerInWater(tile:FlxTile, player:Player):void {
Registry.player.inWater = true;
trace("player is in the water");
}