スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

KAGのバックログをフェードイン/フェードアウト

吉里吉里/KAGでバックログ(履歴)を表示または非表示にするときに、フェードイン/アウトできるスクリプト。
欲しいという人がいたのでやってみたら案外すぐ出来た。

afterinit.tjsに下のスクリプトを貼り付ければOK。
最初の『kag.historyFadeTime = 200;』の数字を変えればフェードの時間を調整できます。
kag.historyFadeTime = 2000// バックログのフェード時間
kag.historyFading = 0// バックログをフェード中か。-1の時隠し中。1のとき表示中
kag.historyFadingStopFlag = false// フェードを停止するか
// 表示するときにフェードをかけるように書き換え
kag.showHistory_org = kag.showHistory;
kag.showHistory = function() {
  showHistory_org(...);
  historyLayer.opacity = 0;
  this.historyActionStartTime = System.getTickCount();
  System.removeContinuousHandler(historyFadeFunction);
  System.addContinuousHandler(historyFadeFunction);
  historyFading = 1;
incontextof kag;
// 隠すときにフェードをかけるように書き換え
kag.hideHistory_org = kag.hideHistory;
kag.hideHistory = function() {
  historyLayer.opacity = 255;
  this.historyActionStartTime = System.getTickCount();
  System.removeContinuousHandler(historyFadeFunction);
  System.addContinuousHandler(historyFadeFunction);
  historyFading = -1;
incontextof kag;
// バックログフェード用の関数。opacityを徐々に上げるor下げる
kag.historyFadeFunction = function(now) {
  if (historyFading < 0) { // 隠す
    historyLayer.opacity = 255 - (((now - historyActionStartTime) / historyFadeTime) * 255);
    if (historyFadingStopFlag || historyLayer.opacity <= 0) {
      historyFadingStopFlag = false;
      historyLayer.opacity = 0;
      System.removeContinuousHandler(historyFadeFunction);
      hideHistory_org(...);
      historyFading = 0;
    }
  } else { // 表示する
    historyLayer.opacity = ((now - historyActionStartTime) / historyFadeTime) * 255;
    if (historyFadingStopFlag || historyLayer.opacity >= 255) {
      historyFadingStopFlag = false;
      historyLayer.opacity = 255;
      System.removeContinuousHandler(historyFadeFunction);
      historyFading = 0;
    }
  }
incontextof kag;
// ホイールが回った時にフェードを停止
kag.historyLayer.windowMouseWheel_org = kag.historyLayer.windowMouseWheel;
kag.historyLayer.windowMouseWheel = function() {
  if (window.historyFading) { window.historyFadingStopFlag = true; }
  else { windowMouseWheel_org(...); }
incontextof kag.historyLayer;
// マウスが押された時にフェードを停止
kag.historyLayer.onMouseDown_org = kag.historyLayer.onMouseDown;
kag.historyLayer.onMouseDown = function() {
  if (window.historyFading) { window.historyFadingStopFlag = true; }
  else { onMouseDown_org(...); }
incontextof kag.historyLayer;
// キーが押された時にフェードを停止
kag.historyLayer.onKeyDown_org = kag.historyLayer.onKeyDown;
kag.historyLayer.onKeyDown = function() {
  if (window.historyFading) { window.historyFadingStopFlag = true; }
  else { onKeyDown_org(...); }
incontextof kag.historyLayer;


以下余談。
画面遷移でエフェクトかかるゲームは嫌いです。
オプション画面がでる時に一瞬エフェクトかけるくらいなら許します。
が、バックログは比較的使用回数多いので減点大。
上のだとクリック、ホイール、キーボードでエフェクトスキップできるのでまあマシなはず。
どうしてもエフェクトかけたいならスキップ出来るようにしてほしい。
スポンサーサイト

タグ : 吉里吉里 KAG TJS プラグイン

カテゴリ : KAG

コメントの投稿

非公開コメント

最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。