これは吉里吉里Zの仕様でしょうか。
[現象]
フルスクリーン表示でマウスをクリックした際、得られる
Layer.cursor[XY]が吉里吉里と異なる。
具体的には、primaryLayer.cursor[XY]が、吉里吉里2では
フルスクリーン画面でも黒帯を除いた表示画面左上を0,0と
している(左黒帯部分はcursorX < 0)が、吉里吉里Zでは
フルスクリーン画面左上を0,0としているように見える。
[テストスクリプト]
system/MainWindow.tjs の KAGWindow.onMouseDown()関数に、
以下のようにデバッグ情報の表示行を追加して確認した。
function onMouseDown(x, y, button)
{
// フルスクリーン時の画面外クリックを判定
if (fullScreened)
{
dm('x = '+x+', y='+y+', btn='+button);
// x,yは実座標のためプライマリレイヤで判定
var pl = primaryLayer;
var px = pl.cursorX;
var py = pl.cursorY;
dm('px = '+px+', py='+py+', pl.width='+pl.width+', pl.height='+pl.height);
(snip)
[吉里吉里2での値]
以下は、吉里吉里2.31.2013.411を使い、1980x1200の
ディスプレイに800x600のゲーム画面をフルスクリーン
表示した時に、左下、右下それぞれをクリックした際の
座標。
左下:
21:54:11 x = -160, y=1199, btn=0
21:54:11 px = -80, py=599, pl.width=800, pl.height=600
右下:
21:54:13 x = 1759, y=1199, btn=0
21:54:13 px = 879, py=599, pl.width=800, pl.height=600
[吉里吉里Z(1.1.0.2)での値]
上と同じ条件での実行結果。
px が吉里吉里2とZとで大きく異なる。
※ pyとyが少し異なるのはメニューを表示していたため
左下:
21:33:22 x = -160, y=1180, btn=0
21:33:22 px = 0, py=590, pl.width=800, pl.height=600
右下:
21:37:20 x = 1759, y=1180, btn=0
21:37:20 px = 959, py=590, pl.width=800, pl.height=600
現在の最新KAGに付属しているMainWindow.tjsは、黒帯
クリックを拾うために kag.onMouseDown()をトラップして
黒帯かどうかを判定していますが、吉里吉里Zではこの判定を
誤ることがあり、今のままのMainWindow.tjsでは黒帯
クリックでonPrimaryClick()が呼ばれないことがあります。