BufferedRendererは熟練者向きのクラスです。
Rendererクラスを継承して作られているので、必要に応じてRendererクラスの情報も参照してください。
BufferedRendererは、その名の通りバッファに描画するためのクラスです。
本クラスはゲーム中と同じような情報を利用して描画し、それをバッファにためます。また、バッファの内容をcreateSpriteメソッドを通してスプライト化することも出来ます。
複雑な図形やビットマップフォントの作成をスプライト化することを想定して作られています。
var buffer = new BufferedRenderer({width:320, height:320});
横幅と縦幅を
CommonSize形式で指定してインスタンスを生成します。
BufferedRendererに特別な利用手続きは必要ありません。インスタンスを生成後、任意の描画処理を行い、createSpriteでSprite化するのが最も一般的な使い方でしょう。
buffer: HTMLCanvasElement;//描画に利用するバッファ
c: CanvasRenderingContext2D;//描画に利用するコンテキスト
size: CommonSize;//描画可能な最大サイズ
clear() {
バッファの内容をクリアします。
---
createSprite(area?:Area,distArea?:Area) {
area?:Area;//スプライト化元の範囲。省略時はBufferedRenderer全体
distArea?:Area;//スプライト化先の範囲。省略時はBufferedRenderer全体
描画した内容を基に
Spriteクラスのインスタンスを作成します。
---
createImage(area?:Area, distArea?:Area):HTMLCanvasElement {
area?:Area;//スプライト化元の範囲。省略時はBufferedRenderer全体
distArea?:Area;//スプライト化先の範囲。省略時はBufferedRenderer全体
描画した内容を基に新しくHTMLCanvasElementを生成し返します。
この値は、SpriteクラスやCharacterクラスのimageフィールドの値として代入できます。
例えば、フィルタを適用して色変えをした画像を敵のCharacterクラスのimageフィールドに指定する、などの用途が考えられます。
---
applyFilter(c:CanvasRenderingContext2D, size:CommonSize) {
c:CanvasRenderingContext2D;//フィルタ適用対象コンテキスト
size:CommonSize;//コンテキストのサイズ
指定されたコンテキストが管理している対象にフィルタを適用します。
---
renderUnit(entity:E) {
entity:E;//描画対象のEntity
バッファに一つEntityを描画します。
---
renderLayer(layer:Layer) {
layer:Layer;//描画対象のLayer
バッファにLayerを丸ごと描画します。
---
renderScene(scene:Scene) {
scene:Scene;//描画対象のScene
バッファにSceneを丸ごと描画します。また、本メソッドでの描画開始前には自動的にclearメソッドが呼ばれます。
---
refresh() {
バッファを新しく作り直します。
---
draw(area:Area, context:CanvasRenderingContext2D)
area:Area;
context:CanvasRenderingContext2D;
このバッファが現在持つ内容を直接描画します。
---