@akashic/akashic-engine
Advanced tools
Changelog
2.0.0
その他変更
g.Game#random
を配列でないように変更g.Scene#setTimeout()
, setInterval()
の引数順を変更。旧仕様を非推奨にg.Trigger
のAPIを抜本的に見直しg.Label#bitmapFont
, g.LabelParameterObject#bmpFont
を削除
g.Label#font
を使うよう変更する必要がありますg.Matrix#multplyPoint
, g.PlainMatrix#multplyPoint
を削除
g.Matrix#multiplyPoint
, g.PlainMatrix#multiplyPoint
を使うよう変更する必要がありますg.LoadingScene#_onTargetAssetLoad
を削除
g.LoadingScene#targetAssetLoaded
を使うよう変更する必要がありますg.〜ParameterObject
) でないものを削除
g.BitmapFont
g.CacheableE
g.Camera2D
g.DynamicFont
g.E
g.FilledRect
g.FrameSprite
g.Label
g.MultiLineLabel
g.Pane
g.Scene
g.Sprite
g.Tile
PureVirtualError
と ExceptionFactory#createPureVirtualError
を削除
PureVirtualError
を返していた箇所はビルドエラーで検知されるようになりますg.Game#random
を配列でないように変更
g.RandomGenerator[]
から g.RandomGenerator
に変更しました。g.game.random[0]
で参照できた乱数生成器は、 g.game.random
に置かれるようになりました。
(random
は歴史的経緯から配列として定義されていましたが、第0要素以外は利用されていませんでした。)g.game[0]
を非推奨機能にしました。g.Scene#setTimeout()
, g.Scene#setInterval()
の引数順を変更。
window.setTimeout()
など)により近くなるよう、
引数を (handler: () => void, milliseconds: number, owner?: any)
の順で与えるよう変更しました。this
が指定可能)(milliseconds, handler)
または (millicseconds, owner, handler)
の順でした。これらは非推奨にしました。g.Trigger
を見直し
g.Scene#update
や g.E#pointDown
などで利用している g.Trigger
のAPIを抜本的に見直し、主な操作を add()
, remove()
, removeAll()
に集約しました。g.ConditionalChainTrigger
を廃止
g.Trigger
から chain
機能そのものを分離したため、 ConditionalChainTrigger
は g.ChainTrigger
に一般化されました。g.ChainTrigger
に変更してください。コンストラクタの引数順が変わっている (this
が後になった) 点以外に違いはありません。g.MultiLineLbel
と g.Tile
を削除
g.Trigger
の新旧記述の対応は概ね次のとおりです:
||旧仕様での記述|新仕様での記述|
|----|----|----|
|関数 func
を登録|trigger.handle(func)
|trigger.add(func)
|
|関数 func
を登録(owner
を this
に利用)|trigger.handle(owner, func)
|trigger.add(func, owner)
|
|関数 f
を名前 n
で登録|trigger.handle(f, n)
|trigger.add({ func: f, name: n })
|
|一度呼び出したら解除される関数 f
を登録|N/A|trigger.addOnce(f)
|
|func
と owner
の組み合わせが登録済みか確認|trigger.isHandled(owner, func)
|trigger.contains(func, owner)
|
|func
と owner
の組み合わせの登録を一つ解除|N/A|trigger.remove(f, owner)
|
|全ハンドラを登録解除|N/A|trigger.removeAll()
|
|this
として o
を使う全ハンドラを解除|trigger.removeAll(o)
|trigger.removeAll({ owner: o })
|
|関数 f
を使う全ハンドラを解除|trigger.removeAllByHandler(f)
|trigger.removeAll({ func: f })
|
|ハンドラの有無を確認|triger.hasHandler()
|trigger.length > 0
|
Trigger
の仕様変更詳細add()
を追加従来の Trigger#handle()
は、 owner
(this
として関数に渡される値) の有無によって引数順が変化する紛らわしい仕様になっていました。
引数順を変更して、常に関数を第一引数に取る add()
を加えます。
add()
はオブジェクト引数もとれるようにし、引数順に左右されない記述を可能にします。
remove()
を「登録を一つ解除するメソッド」に変更従来の Trigger
には、 handle()
と対になる「登録を一つ解除するメソッド」が存在しませんでした。
remove()
は重複して登録されているハンドラを全部解除してしまうもので、 handle()
と対称ではありませんでした。
"add" と "remove" で名前上対称になったことを鑑み、 remove()
を「該当する登録を一つ解除する」メソッドに変更します。
removeAll()
に統一従来の Trigger
には、 removeAllByHandler()
, removeByName()
, removeAll()
, remove()
が存在し、それぞれ登録解除の条件以外はほぼ同じ処理でした。
また「全ハンドラの登録を解除するメソッド」が存在しませんでした。
特に removeAll()
は「特定のオーナーに紐づくハンドラすべて」が解除対象であり、名前と処理が一致していませんでした。
これらの「該当するハンドラをすべて登録解除するメソッド」を removeAll()
に一本化します。
このメソッドは、解除の条件としてオブジェクト引数を一つとり、引数がない場合は全ハンドラを解除します。
Changelog
1.12.5
機能追加
g.Asset#onDestroyed
を追加g.Asset#onDestroyed
を追加
Changelog
1.12.4
機能追加
g.Game#resized
を追加g.Game#resized
を追加
g.Game#resized
トリガーを使ってコンテンツ解像度の変更通知を受けることができます。g.Game#width
, g.Game#height
の値も同様に変更されます。g.Game#resized
の引数に、変更後の g.Game#width
, g.Game#height
からなる g.CommonSize
の値が与えられます。g.Game#resized
を追加
g.Game#width
, g.Game#height
の値を変更し、 g.Game#resized
をfireする必要があります。g.Game#resized
の引数に、変更後の g.Game#width
, g.Game#height
からなる g.CommonSize
の値を指定する必要があります。Changelog
1.12.3
機能追加
g.SceneState.BeforeDestroyed
を追加その他変更
DynamicFont#fontFamily
, DynamicFontParameterObject#fontFamily
, GlyphFactory#fontFamily
の型をg.FontFamily|string|(g.FontFamily|string)[]
に変更DynamicFont#fontFamily
, DynamicFontParameterObject#fontFamily
, GlyphFactory#fontFamily
の型をg.FontFamily|string|(g.FontFamily|string)[]
に変更
g.FontFamily
列挙型の定数以外にフォント名(文字列)でフォントを指定できるようになりました。使用できるフォント名は環境に依存します。配列を渡した時、配列の先頭から順に利用可能なフォントが選ばれます。利用可能なフォントが見つからない時、g.FontFamily.SansSerif
が利用されます。Changelog
1.12.1
機能追加
g.TimeStampEvent
を追加その他変更
g.Label
が g.Font
からグリフを取得できなかった場合、エラーにせず警告の表示に留めるよう変更g.Font
に存在しない文字を描画する場合に、エラーではなく警告を表示するように
g.TimeStampEvent
を追加
g.Game#raiseTick()
でティックを生成するなどの際、生成時の時刻情報を保持するイベントとして利用できます。g.Game#saveSnapshot()
の引数に timestamp: number
を追加
g.TimeStampEvent
を生成するゲームにおいて、スナップショットを保存する場合、
他の g.TimeStampEvent
と同じ基準の時刻情報を渡す timestamp
として saveSnapshot()
に与える必要があります。g.TimeStampEvent
を追加
g.TimeStampEvent
の時刻情報を取得し、ティックの消化を遅延する必要があります。Changelog
1.12.0
機能追加
GameMainParameterObject
に globalArgs
を追加。不具合修正
GameMainParameterObject
の localArgs
を削除。文書
その他変更
AudioPlayer
から AudioAsset
に移動AudioPlayer
から AudioAsset
に移動
AudioPlayer#_loop
を参照しているコードはコンパイルエラーになります。GameMainParameterObject
の localArgs
を削除。
args
で行い、args
の役割を globalArgs
が担うようになります。AudioAsset
のコンストラクタと ResourceFactory#createAudioAsset()
の引数に hint: any
が追加されました。派生クラスはこれを追従する必要があります。AudioPlayer
から AudioAsset
に移動
AudioAsset
のコンストラクタと ResourceFactory#createAudioAsset()
の引数に loop: boolean
が追加されました。派生クラスはこれを追従する必要があります。AudioPlayer
のコンストラクタと ResourceFactory#createAudioPlayer()
から loop: boolean
が除かれました。派生クラスはこれを追従する必要があります。defaultLoadingScene
に "none" を指定すると、グローバルアセット読み込み中のローディングシーンを含むデフォルトのローディングシーンを非表示にできます。Changelog
1.11.1
機能追加
GameMainParameterObject
に localArgs
プロパティを追加。不具合修正
GameMainParameterObject
に localArgs
プロパティを追加。
args
の永続化が必要な場合があります。Changelog
1.11.0
機能追加
g.DynamicFont
でフォントウェイトが指定可能にg.DynamicFontParameterObject
を追加g.BitmapFontParameterObject
を追加g.ResourceFactory#createGlyphFactory()
に引数を追加不具合修正
require
が正しく動作しないことがある問題を修正。その他変更
g.DynamicFont
のコンストラクタ引数に DynamicFontParameterObject
が渡せるようにg.DynamicFont
でフォントウェイトが指定可能に
g.DynamicFontParameterObject#fontWeight
を指定することでフォントウェイトを変更することができます。g.BitmapFont
のコンストラクタ引数に BitmapFontParameterObject
が渡せるようにg.DynamicFont
の既存のコンストラクタを非推奨に。
DynamicFontParameterObject
を渡すようにしてください。g.BitmapFont
の既存のコンストラクタを非推奨に。
BitmapFontParameterObject
を渡すようにしてください。g.ResourceFactory#createGlyphFactory()
の引数が追加
g.ResourceFactory
の実装者は引数に応じた g.GlyphFactory
の実装を返す必要があります。追加される引数は順に次のとおりです。
fontWeight: FontWeight
)なし
GameConfiguration
の globalScripts
を asset
に変換する責務をエンジンユーザへ移動しました。
globalScripts
を 通常のアッセット定義に変換したうえで Game
オブジェクトを作成してください。AssetConfiguration
に virtualPath?: string
が追加されました。
Game
オブジェクト作成前にスクリプトアセットに assetBase
を基準とした相対パスを追加してください。