FlxObject
API Reference > flixel > FlxObject
FlxObject
FlxObjectは表示オブジェクト(FlxSprite、FlxTextなど)のほとんどの基底クラスです。 これは、ゲームのオブジェクト、基本的な状態情報、サイズ、スクロール、および基本的な物理学と運動に関するいくつかの基本的な属性が含まれています。
- FlxObject
- スーパークラス
- 定数
- staticメソッド
- フィールド
- x:Float = 0 : X座標
- y:Float = 0 : Y座標
- width:Float : コリジョンの幅
- height:Float : コリジョンの高さ
- camera:FlxCamera
- cameras:Array<FlxCamera>
- pixelPerfectRender:Bool = true
- angle:Float = 0 : 回転角度
- moves:Bool = true : 移動を可能にするかどうか
- immovable = false : trueを指定すると衝突しても動かなくなります
- solid:Bool : オブジェクトの衝突を行うかどうか
- scrollFactor:FlxPoint : カメラの動きに対する動きの比率を指定します
- velocity:FlxPoint : 移動速度を指定します。単位は1秒間に進むピクセル数です
- acceleration:FlxPoint : 加速度を指定します。単位は1秒間に進むピクセル数です
- drag:FlxPoint : 速度の減少量
- maxVelocity:FlxPoint : 最大移動速度
- last:FlxPoint : 1フレーム前の座標
- mass:Float = 1 : 仮想的な質量を表します
- elastcity:Float = 0 : 弾力性を表す値です
- angularVelocity:Float = 0 : 角速度を指定します
- angularAcceleration:Float = 0 : 角加速度を指定します
- angularDrag:Float = 0 : 角減速度をしています
- maxAngular:Float = : 最大の角度を指定します 10000
- health:Float = 1 : HP (ratio)
- touching:Int = NONE : 現在触れている方向
- wasTouching:Int = NONE : 1フレーム前の触れた方向
- allowCollisions:Int = ANY : 衝突を許可する方向を指定します。
- collisonXDrag:Bool = true
- debugBoundingBoxColor:Null<Int> = null
- ignoreDrawDebug:Bool = false : デバッグ用のコリジョン描画の有効フラグ
- メソッド
- new() : コンストラクタ
- getScreenXY() : スクリーン座標を取得する
- getMidpoint : 中心座標を取得する
- inWorldBounds : ゲーム境界(FlxG.worldBounds)内かどうかチェックします
- reset() : オブジェクトをrevive() して指定の座標に設定します
- isOnScreen() : 画面内に存在するかどうかをチェックします
- isTouching() : 指定の方向に接触しているかどうかをチェックします
- justTouched() : 指定の方向に触れたかどうか
- hurt() : ダメージを与えます
- setPosition() : 座標を設定します
- setSize() : コリジョンのサイズを設定します
- overlapsPoint() : 指定の座標に重なっているかどうかを調べます
スーパークラス
定数
SEPARATE_BIAS:Float = 4
この値は、2つのオブジェクトが衝突それらを分離しようとして停止する前に交差しなければならない最大ピクセル数を表します。 コリジョン抜けが発生していない限り、これを変更しないでください。
向き
facing / allowCollisions / touching で使用可能な、向きを表す定数です。
定数名 | 値 | 説明 |
LEFT | 0x0001 | 左向き。`facing`に代入して使用します。コリジョンやタッチ判定に使用します |
RIGHT | 0x0010 | 右向き。`facing`に代入して使用します。コリジョンやタッチ判定に使用します |
UP | 0x0100 | 上向き。`facing`に代入して使用します。コリジョンやタッチ判定に使用します |
DOWN | 0x1000 | 下向き。`facing`に代入して使用します。コリジョンやタッチ判定に使用します |
NONE | 0x0000 | 無効な向き。`facing`に代入して使用します。コリジョンやタッチ判定に使用します |
CEILING | UP | 天井 |
FLOOR | DOWN | 下から登れる床 |
WALL | LEFT-RIGHT | 左右のみ有効な壁 |
ANY | LEFT-RIGHT-UP-DOWN | どの方向からも通り抜けできない(どこからでも衝突を行う)。デフォルト値 |
staticメソッド
separate() : Flixelが用意している衝突処理を呼び出します
通常はFlxG.collide() / FlxG.overlap() を使います。 個別に衝突判定をする場合に使います
フィールド
x:Float = 0 : X座標
y:Float = 0 : Y座標
width:Float : コリジョンの幅
height:Float : コリジョンの高さ
camera:FlxCamera
cameras:Array<FlxCamera>
pixelPerfectRender?:Bool = true
angle:Float = 0 : 回転角度
moves:Bool = true : 移動を可能にするかどうか
falseを設定すると速度と加速度、角速度の設定が反映されなくなります
immovable = false : trueを指定すると衝突しても動かなくなります
solid:Bool : オブジェクトの衝突を行うかどうか
falseを設定すると衝突判定が無効になります。中身は allowCollisions の値を NONE(無効) 変更しているだけです trueに設定すると、allowCollisions が ANY(どの方向からも有効) となります
scrollFactor:FlxPoint : カメラの動きに対する動きの比率を指定します
通常は(1,1)でカメラがスクロールすると画面外に出て行ってしまいます。 例えば(0, 0)の場合はスクリーンの固定の位置となり動きません(背景など)。 ボタンなどのUIは(0,0)にしておくのがよいでしょう
velocity:FlxPoint : 移動速度を指定します。単位は1秒間に進むピクセル数です
acceleration:FlxPoint : 加速度を指定します。単位は1秒間に進むピクセル数です
drag:FlxPoint : 速度の減少量
maxVelocity:FlxPoint : 最大移動速度
last:FlxPoint : 1フレーム前の座標
mass:Float = 1 : 仮想的な質量を表します
弾力性`elastcity`と一緒に使用します。変更するとエフェクトなどでクレイジーな結果が出ますので、ご利用は計画的にお願いします
elastcity:Float = 0 : 弾力性を表す値です
衝突後の反応に影響が出ます。
angularVelocity:Float = 0 : 角速度を指定します
angularAcceleration:Float = 0 : 角加速度を指定します
angularDrag:Float = 0 : 角減速度をしています
maxAngular:Float = : 最大の角度を指定します 10000
health:Float = 1 : HP (ratio)
HPや装甲のパーセンテージなど何にでも使える値です hurt関数を呼び出すと減少します
touching:Int = NONE : 現在触れている方向
wasTouching:Int = NONE : 1フレーム前の触れた方向
allowCollisions:Int = ANY : 衝突を許可する方向を指定します。
UP,DONW,LEFT,RIGHTなど。プラットフォームゲームでよくある下から登れる床の場合は「UP」を指定します。
collisonXDrag:Bool = true
debugBoundingBoxColor?:Null<Int> = null
ignoreDrawDebug?:Bool = false : デバッグ用のコリジョン描画の有効フラグ
メソッド
new() : コンストラクタ
- 引数
- X:Float = 0 : 初期座標(X)
- Y:Float = 0 : 初期座標(Y)
- Width:Float = 0 : コリジョンの幅
- Height:Float = 0 : コリジョンの高さ
- 戻り値:Void
getScreenXY() : スクリーン座標を取得する
- 引数
- 戻り値
- FlxPoint : スクリーン座標
getMidpoint : 中心座標を取得する
inWorldBounds? : ゲーム境界(FlxG.worldBounds)内かどうかチェックします
通常、領域外に出たらオブジェクトは消します
- 戻り値
- Bool : ゲーム領域(FlxG.worldBounds)の外にいるとtrue
reset() : オブジェクトをrevive() して指定の座標に設定します
- 引数
- X:Float : 座標(X)
- Y:Float : 座標(Y)
- 戻り値:Void
isOnScreen?() : 画面内に存在するかどうかをチェックします
- 引数
- ?Camera:FlxCamera : カメラオブジェクト(指定がなければFlxG.cameraを使用する)
- 戻り値:Bool : 画面内に存在すればtrue
isTouching() : 指定の方向に接触しているかどうかをチェックします
特定の面に接しているかどうかを調べる便利関数。 super.update() を呼び出すと判定のための値がクリアされるので、 super.udpate() を呼び出す前にチェックを行います。
- 引数
- Direction:Int : 方向定数
- 戻り値:Bool : 接触してれば true
使用例: 床に着地しているかどうかを調べる
if(isTouching(FlxObject.FLOOR)) { // 地面に着地している if(FlxG.keys.justpressed.SPACE) { // SPACEキーでジャンプする } }
justTouched() : 指定の方向に触れたかどうか
特定の面に接しているかどうかを調べる便利関数。 super.update() を呼び出すと判定のための値がクリアされるので、 super.udpate() を呼び出す前にチェックを行います。 前フレームのチェック時に触れている場合はfalseとなります
- 引数
- Direction:Int : 方向定数
- 戻り値:Bool : 触れたのならtrue
hurt() : ダメージを与えます
フィールドのhealth値を減らして、0以下になったらkill()します
- 引数
- Damage:Int : ダメージ量
setPosition() : 座標を設定します
- 引数
- X:Float = 0 : 座標(X)
- Y:Float = 0 : 座標(Y)
- 戻り値:Void
setSize() : コリジョンのサイズを設定します
- 引数
- Width:Float : コリジョンの幅
- Height:Float : コリジョンの高さ
- 戻り値:Void