じろうの公開メモ

自分用のメモ置き場です

clipRectとsetClip

本文と⇒g.clipRect(0, 0, 120, 120);
収録ソースが違う⇒g.setClip(0, 0, 120, 120);
がうまく動く謎を解明しようか

こたえ:
setClip
public abstract void setClip(int x,int y,int width,int height)
指定した座標が指定した矩形に現在のクリップを設定します。このメソッドは、デバイス境界やウィンドウ可視に関連したクリッピングに依存しないユーザクリップを設定します。クリッピング領域外でレンダリング操作を行なっても効果はありません。

clipRect
public abstract void clipRect(int x,int y,int width,int height)
現在のクリップと指定された矩形を交差させます。結果がクリップされる領域は現在のクリッピング領域と指定した矩形の交差部分です。クリップが設定されたことがないか、またはクリップが setClip(null) を使用してクリアされたため現在のクリッピング領域がない場合は、指定した矩形が新しいクリップとなります。このメソッドで、デバイス境界やウィンドウ可視に関連したクリッピングには依存しないユーザクリップを設定します。このメソッドは現在のクリップを小さくする場合に限り使用できます。現在のクリップを大きくするには、任意の setClip メソッドを使用します。クリッピング領域外でレンダリング操作を行なっても効果はありません。

簡単に言うとsetClipして、さらにその範囲にsetClipするようなイメージかな

でもって本文がいつも間違ってるんだな把握
解説では堂々とsetClipメソッドを使ってといってしまっている・・・

マップスクロール


[Doja]
// オフスクリーンバッファへの描画開始
g.lock();
// マップイメージの描画
g.drawImageMap(imap,px,py);
// オフスクリーン・バッファのフラッシュ
g.unlock(true);
[MIDP]
//マップの描画位置設定
tlay.setPosition(px, py);
//マップイメージの描画
tlay.paint(g);
//オフスクリーンバッファのフラッシュ
flushGraphics();

キー入力の違い

「Doja」
int ks = getKeypadState();
if((ks & (1 << Display.KEY_UP)) !=0){py-=2;}
MIDP
int ks = getKeyStates();
if*1*2*3*4*5(」と表示されます。

ほんとうのこたえ:
<pre>を使う

*1:ks & UP_PRESSED)!=0){py-=2;} key_2とかにも対応するならDojaのが楽だな 蛇足:ダブル括弧って脚注になるのね ※二重カッコを表示したい場合には、「

*2:」と「

*3:」で囲みます 例えば「

*4:カッコの中

*5:」と書けば「)((カッコの中