flixel.tweens.FlxTween を使用して、haxe で横スクロール プラットフォーマー用の一見基本的なトゥイーンをいくつか実装しました。例えば:
public static function lunge(sprite: FlxSprite) {
var deltax:Int = sprite.facing==FlxObject.LEFT?-50:50;
return FlxTween.tween(sprite, { x:sprite.x+deltax,y:sprite.y-10 }, 0.10, { type: FlxTween.ONESHOT } );
}
これは期待どおりに機能します。スプライトは前方に 50 ピクセル、上方に 10 ピクセル突き出します。ただし、スプライトは、トゥイーンの外では正常に機能する衝突を無視して、喜んで無差別に私のタイルマップや他のスプライトを突進します。ベロシティのトゥイーンを試みました:
public static function lungeV(sprite: FlxSprite) {
var newVelocity:FlxPoint = new FlxPoint(sprite.velocity.x*3, -40);
return FlxTween.tween(sprite, { velocity: newVelocity }, 0.10, { type: FlxTween.ONESHOT } );
}
これはコンパイルおよび実行されますが、関数が呼び出されると「サポートされていない操作」が表示されます (スタック トレースは、自分自身ではなく、haxe/haxeflixel コードのみを参照します)。
Unsupported operation
Called from flixel.tweens.misc.VarTween::initializeVars line 120
Called from flixel.tweens.misc.VarTween::update line 78
Called from flixel.plugin.TweenManager::update line 31
Called from flixel.FlxGame::update line 698
Called from flixel.FlxGame::step line 648
Called from flixel.FlxGame::onEnterFrame line 493
Called from openfl._legacy.events.EventDispatcher::dispatchEvent line 98
Called from a C function
Called from openfl._legacy.display.DisplayObject::__broadcast line 161
Called from a C function
Called from openfl._legacy.display.DisplayObjectContainer::__broadcast line 280
Called from openfl._legacy.display.Stage::__render line 1074
Called from openfl._legacy.display.Stage::__checkRender line 339
Called from openfl._legacy.display.Stage::__pollTimers line 1059
Called from openfl._legacy.display.Stage::__doProcessStageEvent line 414
Compilation failed.
私も使ってみました
{velocity.x: sprite.velocity.x * 3, ... }
しかし、haxeはこれが好きではありません:
Effects.hx:39: characters 36-37 : Missing ;
Effects.hx:39: characters 37-38 : Unexpected :
Effects.hx:39: characters 37-38 : Unexpected :
Compilation failed.
(わかりやすくするためにフル パスを削除しました。39 行目は FlxTween 呼び出しです。)
解決策と同様に、どの特定のプロパティをトゥイーンできるかを概説するドキュメントは私にはわかりません。トゥイーンなしで同じ機能を実装しましたが、これが可能かどうかを知る必要があります。