Access: 2051963
p-lux.net Ver.10.00 by Ryogo
吉里吉里2をマルチモニタに対応するには
吉里吉里2はマルチモニタに対応していない。
厳密に言えば、吉里吉里のSystemクラスのdesktopWidthやscreenWidthは
プライマリモニタの値しか取得できない。
その為、何が起こるかと言うと、ウィンドウがプライマリ以外の画面外にあるかを
正しく判定する事が出来無いと言うことになる。

これにより何が起こるかと言うと、例えば、デフォルトの状態で、
セカンダリモニタに吉里吉里を持って行きダイアログを表示すると、
プライマリモニタに収まる位置に表示されてしまう。



これは、YesNoDialog.tjsのウィンドウ位置の調整周りを改変すれば
吉里吉里のセンターに持ってくることが可能である。

しかし、無条件で吉里吉里のセンターに持ってくるのは問題がある。
YesNoDialogで表示されるウィンドウはモーダルウィンドウといって、
モーダルウィンドウをどうにかしない限り、
親のウィンドウ(吉里吉里本体のウィンドウ)が操作できない。(移動すらできない)
その為、モニタの画面外にモーダル状態のウィンドウが表示されると
パソコンに詳しくない人はゲームを終了できなくなると言う問題に陥る。



その為、KAGEXなどでは、ダイアログを使用せずに、YesNoDialogをレイヤーで表現している。
(※KAGEXでも、ムービー再生中などはモーダルウィンドウを使用している)

KAGのYesNoDialogをレイヤー化するのは簡単とは言えない。
例えば、何らかの影響でYesNoDialogレイヤーより上にレイヤーが表示される事があると
ダイアログレイヤーが後ろに隠れてしまう為ゲームが終了できないなどの問題が発生する。
また、モーダルウィンドウ表示中は、TJSの命令が停止するが、レイヤー処理の場合は止まらないので、コールバックなどを作ってあげる必要がある。


そもそも、この問題は、YesNoDialogをマルチモニタに対応できればいいわけで、
そういったプラグインはないのかと言われると、実は存在する。
2年前に、ねいと言うプログラマがW.Deeさんにそのようなソースを提供しており、
そのデータは、ここに存在する。

YesNoDialog.tjsの改造方法もmanual.tjsに書かれているので、参考にすると良い。


【今日の乱数を使用した幾何学模様】

© 2003-2025 p-lux.net, Ryogo.

ページトップへ