com.jblend.graphics.sprite
クラス SpriteCanvas

java.lang.Object
  |
  +--javax.microedition.lcdui.Displayable
        |
        +--javax.microedition.lcdui.Canvas
              |
              +--com.jblend.graphics.sprite.SpriteCanvas

public abstract class SpriteCanvas
extends javax.microedition.lcdui.Canvas

SpriteCanvasクラス。 Canvasに機能追加を施したクラスである。 背景はSpriteCanvas内の仮想画面に描画する。仮想画面の大きさは端末によりことなる。 内部にコンストラクタで指定した大きさのフレームバッファを持ち、仮想画面からのコピーが可能である。 スプライトキャラクターはフレームバッファに描画し、背景と重ねた上で、フレームバッファから 実画面に転送する。 パレット最大256個登録可能であり、デフォルトではすべて0(RGB=0)が格納されている。


クラス javax.microedition.lcdui.Canvas から継承したフィールド
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
コンストラクタの概要
SpriteCanvas(int numPalettes, int numPatterns)
          SpriteCanvasコンストラクタ。
 
メソッドの概要
 void copyArea(int sx, int sy, int fw, int fh, int tx, int ty)
          仮想画面からフレームバッファへの転送を行う。
 void copyFullScreen(int tx, int ty)
          仮想画面全体を指定の位置にコピーする。
static short createCharacterCommand(int offset, boolean transparent, int rotation, boolean isUpsideDown, boolean isRightsideLeft, int patternNo)
          描画コマンドを作成する。
 void createFrameBuffer(int fw, int fh)
          フレームバッファを作成する。
 void disposeFrameBuffer()
          スプライト機能の利用を終了する。
 void drawBackground(short command, short x, short y)
          背景を仮想画面に描画する。
 void drawFrameBuffer(int tx, int ty)
          フレームバッファの内容を実画面に転送する。
 void drawSpriteChar(short command, short x, short y)
          スプライトキャラクターをフレームバッファに描画する。
static int getVirtualHeight()
          仮想画面の高さを取得する。
static int getVirtualWidth()
          仮想画面の幅を取得する。
 void setPalette(int index, int palette)
          パレットデータを設定する。
 void setPattern(int index, byte[] data)
          パターンデータを設定する。
 
クラス javax.microedition.lcdui.Canvas から継承したメソッド
getGameAction, getHeight, getKeyCode, getKeyName, getWidth, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyPressed, keyReleased, keyRepeated, paint, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, showNotify
 
クラス javax.microedition.lcdui.Displayable から継承したメソッド
addCommand, isShown, removeCommand, setCommandListener
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SpriteCanvas

public SpriteCanvas(int numPalettes,
                    int numPatterns)
SpriteCanvasコンストラクタ。
パラメータ:
numPalettes - パレット数
numPatterns - パターン数
例外:
IllegalArgumentException - パレット数、パターン数が1〜256でない場合に発生する。
メソッドの詳細

createFrameBuffer

public void createFrameBuffer(int fw,
                              int fh)
フレームバッファを作成する。
指定サイズのフレームバッファを作成します。 サイズは最大で実画面サイズです。 システム内で同時に1つのみ作成可能です。
パラメータ:
fw - フレームバッファの幅
fh - フレームバッファの高さ
例外:
IllegalStateException - フレームバッファが作成済みの場合に発生する。
IllegalArgumentException - フレームバッファのサイズが実画面より大きい場合に発生する。

disposeFrameBuffer

public void disposeFrameBuffer()
スプライト機能の利用を終了する。
フレームバッファが作成されていない場合は何もしません。

getVirtualWidth

public static int getVirtualWidth()
仮想画面の幅を取得する。
戻り値:
int - 仮想画面の幅

getVirtualHeight

public static int getVirtualHeight()
仮想画面の高さを取得する。
戻り値:
int - 仮想画面の高さ

setPalette

public void setPalette(int index,
                       int palette)
パレットデータを設定する。 パレットデータは24bitである。
パラメータ:
index - パレットインデックス
palette - パレットデータ
例外:
ArrayIndexOutOfBoundsException - パレットインデックスがコンストラクタで 指定した数を超えた場合に発生する。
RuntimeException - Nativeスプライト機能が設定に失敗した場合に発生する。

setPattern

public void setPattern(int index,
                       byte[] data)
パターンデータを設定する。 パターンデータは1キャラクタ8×8の64byteである。
パラメータ:
index - パターンインデックス
data - パターンデータ
例外:
ArrayIndexOutOfBoundsException - パターンインデックスがコンストラクタで 指定した数を超えた場合に発生する。
IllegalArgumentException - 配列サイズが64以外の場合に発生する。
RuntimeException - Nativeスプライト機能が設定に失敗した場合に発生する。

createCharacterCommand

public static short createCharacterCommand(int offset,
                                           boolean transparent,
                                           int rotation,
                                           boolean isUpsideDown,
                                           boolean isRightsideLeft,
                                           int patternNo)
描画コマンドを作成する。 効果は回転、上下反転、左右反転の順に適応される。
パラメータ:
offset - パレットオフセット(0〜7)
transparent - 透過色の利用(true:利用)
rotation - 回転(回転なし:0、90度:1、180度:2、270度:3)
isUpsideDown - 上下反転(true:反転)
isRightsideLeft - 左右反転(true:反転)
patternNo - パターン番号
例外:
IllegalArgumentException - 不適切な値が指定された場合に発生する。

drawSpriteChar

public void drawSpriteChar(short command,
                           short x,
                           short y)
スプライトキャラクターをフレームバッファに描画する。 描画コマンドはcreateCharacterCommandで作成されたものを使用する。
パラメータ:
command - 描画コマンド
x - 描画X座標
y - 描画Y座標

drawBackground

public void drawBackground(short command,
                           short x,
                           short y)
背景を仮想画面に描画する。 描画コマンドはcreateCharacterCommandで作成されたものを使用する。 描画コマンドのうち、透過機能は無視される。
パラメータ:
command - 描画コマンド
x - 描画X座標(8ピクセル単位)
y - 描画Y座標(8ピクセル単位)

copyArea

public void copyArea(int sx,
                     int sy,
                     int fw,
                     int fh,
                     int tx,
                     int ty)
仮想画面からフレームバッファへの転送を行う。 フレームバッファに描かれていたスプライトキャラクターは上書きされる。
パラメータ:
sx - 転送元X座標
sy - 転送元Y座標
fw - コピーする幅
fh - コピーする高さ
tx - フレームバッファ上のX座標
ty - フレームバッファ上のY座標
例外:
IllegalArgumentException - 転送元座標が負の場合に発生する。
IllegalArgumentException - フレームバッファのサイズ指定が異常な場合に発生する。

copyFullScreen

public void copyFullScreen(int tx,
                           int ty)
仮想画面全体を指定の位置にコピーする。
パラメータ:
tx - コピー先X座標
ty - コピー先Y座標

drawFrameBuffer

public void drawFrameBuffer(int tx,
                            int ty)
フレームバッファの内容を実画面に転送する。
パラメータ:
tx - 実画面のX座標
ty - 実画面のY座標