设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: MonsterJohnCN
打印 上一主题 下一主题

[原创发布] 不存在的脚本陈列室

[复制链接]

Lv2.观梦者

梦石
0
星屑
519
在线时间
664 小时
注册时间
2010-6-30
帖子
223
11
发表于 2015-10-26 00:34:48 | 只看该作者
本帖最后由 Front 于 2015-10-26 17:27 编辑

回炉重新整理!!!{:2_269:}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
帖子
839
12
发表于 2015-10-26 01:11:08 | 只看该作者
菜单用图片背景神马的最赞了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
1491
在线时间
1086 小时
注册时间
2013-9-4
帖子
1313
13
发表于 2015-10-26 01:43:59 | 只看该作者
游戏运行中按F8会出现什么东西?脚本编辑器?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
帖子
139
14
 楼主| 发表于 2015-10-26 03:36:41 | 只看该作者
grayuncle 发表于 2015-10-26 01:43
游戏运行中按F8会出现什么东西?脚本编辑器?

你可以理解为一个在游戏中直接测试脚本的工具。
可以临时模拟所有你能通过脚本实现的事情。
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
269
在线时间
112 小时
注册时间
2010-11-14
帖子
10
15
发表于 2015-10-30 00:13:36 | 只看该作者
本帖最后由 肚子饿 于 2015-10-30 00:15 编辑

先顶一个!!!汉化原插件还有DLC的脚本插件确实是坑,希望能坚持下去
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
帖子
139
16
 楼主| 发表于 2015-10-30 01:38:19 | 只看该作者
本帖最后由 MonsterJohnCN 于 2015-10-30 01:54 编辑
肚子饿 发表于 2015-10-30 00:13
先顶一个!!!汉化原插件还有DLC的脚本插件确实是坑,希望能坚持下去


不过汉化过程中我发现RMMV不少原有&DLC插件的实用价值相对来说并不算高,实际汉化还是要做做筛选

后续主要打算汉化RMMV原生库,拟出结构,相比之下感觉实用价值、学习价值以及对个人的能力提升都更有用。


另外PIXI这玩意儿倒是很棒{:2_275:}
实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6438
在线时间
1274 小时
注册时间
2013-8-21
帖子
3657

开拓者

17
发表于 2015-11-22 09:42:51 | 只看该作者
主楼是原创脚本,下面的楼层基本上是汉化么
如果你把他们拆开的话,我就可以发两次糖了
先给原创糖

点评

下面的楼层原本是索引到主楼的,不过后来拆分开了,所以无视掉就行0v0  发表于 2015-11-26 18:45
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
100 小时
注册时间
2016-2-17
帖子
7
18
发表于 2016-2-23 15:30:54 | 只看该作者
  1. //=============================================================================
  2. // PictureCallCommon.js
  3. // ----------------------------------------------------------------------------
  4. // Copyright (c) 2015 Triacontane
  5. // This plugin is released under the MIT License.
  6. // http://opensource.org/licenses/mit-license.php
  7. // ----------------------------------------------------------------------------
  8. // Version
  9. // 1.3.0 2016/01/24 ピクチャをなでなでする機能を追加
  10. //                  トリガーにマウスムーブを追加
  11. //                  ピクチャが回転しているときに正しく位置を補足できるよう修正
  12. // 1.2.1 2016/01/21 呼び出すコモンイベントの上限を100から1000(DB上の最大値)に修正
  13. //                  競合対策(YEP_MessageCore.js)
  14. // 1.2.0 2016/01/14 ホイールクリック、ダブルクリックなどトリガーを10種類に拡充
  15. // 1.1.3 2016/01/02 競合対策(TDDP_BindPicturesToMap.js)
  16. // 1.1.2 2015/12/20 長押しイベント発生時に1秒間のインターバルを設定するよう仕様変更
  17. // 1.1.1 2015/12/10 ピクチャを消去後にマウスオーバーするとエラーになる現象を修正
  18. // 1.1.0 2015/11/23 コモンイベントを呼び出した対象のピクチャ番号を特定する機能を追加
  19. //                  設定で透明色を考慮する機能を追加
  20. //                  トリガーとして「右クリック」や「長押し」を追加
  21. // 1.0.0 2015/11/14 初版
  22. // ----------------------------------------------------------------------------
  23. // [Blog]   : http://triacontane.blogspot.jp/
  24. // [Twitter]: https://twitter.com/triacontane/
  25. // [GitHub] : https://github.com/triacontane/
  26. //=============================================================================

  27. /*:ja
  28. * @plugindesc ピクチャのボタン化プラグイン
  29. * @author トリアコンタン
  30. *
  31. * @param 透明色を考慮
  32. * @desc クリックされた箇所が透明色だった場合は、クリックを無効にする。
  33. * @default OFF
  34. *
  35. * @param ピクチャ番号の変数番号
  36. * @desc コモンイベント呼び出し時にピクチャ番号を格納するゲーム変数の番号。
  37. * @default 0
  38. *
  39. * @param ポインタX座標の変数番号
  40. * @desc マウスカーソルもしくはタッチした位置のX座標を常に格納するゲーム変数の番号
  41. * @default 0
  42. *
  43. * @param ポインタY座標の変数番号
  44. * @desc マウスカーソルもしくはタッチした位置のY座標を常に格納するゲーム変数の番号
  45. * @default 0
  46. *
  47. * @help ピクチャをクリックすると、指定したコモンイベントが
  48. * 呼び出されるようになるプラグインコマンドを提供します。
  49. * このプラグインを利用すれば、javascriptの知識がなくても
  50. * 誰でも簡単にクリックやタッチを主体にしたゲームを作れます。
  51. *
  52. * 注意!
  53. * 一度関連づけたピクチャとコモンイベントはピクチャを消去しても有効です。
  54. * ピクチャが存在しなければどこをクリックしても反応しませんが、
  55. * 同じ番号で再度、ピクチャの表示を行うと反応するようになります。
  56. *
  57. * プラグインコマンド詳細
  58. *  イベントコマンド「プラグインコマンド」から実行。
  59. *  (引数の間は半角スペースで区切る)
  60. *
  61. *  ピクチャのボタン化 or
  62. *  P_CALL_CE [ピクチャ番号] [コモンイベントID] [トリガー]:
  63. *      ピクチャの領域内でトリガー条件を満たした場合に呼び出されるコモンイベントを関連づけます。
  64. *    トリガーは以下の通りです。(省略すると 1 になります)
  65. *      1  : クリックした場合
  66. *      2  : 右クリックした場合
  67. *      3  : 長押しした場合
  68. *      4  : マウスをピクチャに重ねた場合
  69. *      5  : マウスをピクチャから放した場合
  70. *      6  : クリックを解放(リリース)した場合
  71. *      7  : クリックした場合(かつ長押しの際の繰り返しを考慮)
  72. *      8  : クリックしている間ずっと
  73. *      9  : ホイールクリックした場合(PCの場合のみ有効)
  74. *      10 : ダブルクリックした場合
  75. *      11 : マウスを移動した場合
  76. *
  77. *  例:P_CALL_CE 1 3 7
  78. *   :ピクチャのボタン化 \v[1] \v[2] \v[3]
  79. *
  80. *  ピクチャのボタン化解除 or
  81. *  P_CALL_CE_REMOVE [ピクチャ番号] :
  82. *      ピクチャとコモンイベントの関連づけを解除します。
  83. *      全てのトリガーが削除対象です。
  84. *
  85. *  例:P_CALL_CE_REMOVE 1
  86. *   :ピクチャのボタン化解除 \v[1]
  87. *
  88. *  ピクチャのなでなで設定 or
  89. *  P_STROKE [ピクチャ番号] [変数番号]
  90. *    指定したピクチャの上でマウスやタッチを動かすと、
  91. *    速さに応じた値が指定した変数に値が加算されるようになります。
  92. *    この設定はピクチャを差し替えたり、一時的に非表示にしても有効です。
  93. *    10秒でだいたい1000くらいまで溜まります。
  94. *
  95. *  例:P_STROKE 1 2
  96. *   :ピクチャのなでなで設定 \v[1] \v[2] \v[3]
  97. *
  98. *  ピクチャのなでなで解除 or
  99. *  P_STROKE_REMOVE [ピクチャ番号]
  100. *    指定したピクチャのなでなで設定を解除します。
  101. *
  102. *  例:P_STROKE_REMOVE 1
  103. *   :ピクチャのなでなで解除 \v[1]
  104. *
  105. *  ピクチャのポインタ化 or
  106. *  P_POINTER [ピクチャ番号]
  107. *    指定したピクチャがタッチ座標を自動で追従するようになります。
  108. *    タッチしていないと自動で非表示になります。
  109. *
  110. *  例:P_POINTER 1
  111. *   :ピクチャのポインタ化 \v[1]
  112. *
  113. *  ピクチャのポインタ化解除 or
  114. *  P_POINTER_REMOVE [ピクチャ番号]
  115. *    指定したピクチャのポインタ化を解除します。
  116. *
  117. *  例:P_POINTER_REMOVE 1
  118. *   :ピクチャのポインタ化解除 \v[1]
  119. *
  120. * 利用規約:
  121. *  作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
  122. *  についても制限はありません。
  123. *  このプラグインはもうあなたのものです。
  124. */
  125. /*:
  126. * @plugindesc Clickable picture plugin
  127. * @author triacontane
  128. *
  129. * @param TransparentConsideration
  130. * @desc if click position is transparent, click is disabled.
  131. * @default OFF
  132. *
  133. * @param GameVariablePictureNum
  134. * @desc Game variable number that stores the picture number when common event called.
  135. * @default 0
  136. *
  137. * @param GameVariableTouchX
  138. * @desc Game variable number that stores touch x position
  139. * @default 0
  140. *
  141. * @param GameVariableTouchY
  142. * @desc Game variable number that stores touch y position
  143. * @default 0
  144. *
  145. * @help When clicked picture, call common event.
  146. *
  147. * Plugin Command
  148. *
  149. *  P_CALL_CE [Picture number] [Common event ID] [Trigger]:
  150. *      When picture was clicked, assign common event id.
  151. *    Trigger are As below(if omit, It is specified to 1)
  152. *      1  : Left click
  153. *      2  : Right click
  154. *      3  : Long click
  155. *      4  : Mouse over
  156. *      5  : Mouse out
  157. *      6  : Mouse release
  158. *      7  : Mouse repeat click
  159. *      8  : Mouse press
  160. *      9  : Wheel click
  161. *      10 : Double click
  162. *      11 : Mouse move
  163. *
  164. *  P_CALL_CE_REMOVE [Picture number] :
  165. *      break relation from picture to common event.
  166. *
  167. *  This plugin is released under the MIT License.
  168. */
  169. (function () {
  170.     'use strict';
  171.     var pluginName = 'PictureCallCommon';

  172.     var getParamOther = function(paramNames) {
  173.         if (!Array.isArray(paramNames)) paramNames = [paramNames];
  174.         for (var i = 0; i < paramNames.length; i++) {
  175.             var name = PluginManager.parameters(pluginName)[paramNames[i]];
  176.             if (name) return name;
  177.         }
  178.         return null;
  179.     };

  180.     var getParamBoolean = function(paramNames) {
  181.         var value = getParamOther(paramNames);
  182.         return (value || '').toUpperCase() == 'ON';
  183.     };

  184.     var getParamNumber = function(paramNames, min, max) {
  185.         var value = getParamOther(paramNames);
  186.         if (arguments.length < 2) min = -Infinity;
  187.         if (arguments.length < 3) max = Infinity;
  188.         return (parseInt(value, 10) || 0).clamp(min, max);
  189.     };

  190.     var getCommandName = function(command) {
  191.         return (command || '').toUpperCase();
  192.     };

  193.     var getArgNumber = function (arg, min, max) {
  194.         if (arguments.length < 2) min = -Infinity;
  195.         if (arguments.length < 3) max = Infinity;
  196.         return (parseInt(convertEscapeCharacters(arg), 10) || 0).clamp(min, max);
  197.     };

  198.     var convertEscapeCharacters = function(text) {
  199.         if (text == null) text = '';
  200.         var window = SceneManager._scene._windowLayer.children[0];
  201.         return window ? window.convertEscapeCharacters(text) : text;
  202.     };

  203.     if (!Object.prototype.hasOwnProperty('iterate')) {
  204.         Object.defineProperty(Object.prototype, 'iterate', {
  205.             value: function(handler) {
  206.                 Object.keys(this).forEach(function(key, index) {
  207.                     handler.call(this, key, this[key], index);
  208.                 }, this);
  209.             }
  210.         });
  211.     }

  212.     //=============================================================================
  213.     // Game_Interpreter
  214.     //  プラグインコマンド[P_CALL_CE]などを追加定義します。
  215.     //=============================================================================
  216.     var _Game_Interpreter_pluginCommand      = Game_Interpreter.prototype.pluginCommand;
  217.     Game_Interpreter.prototype.pluginCommand = function (command, args) {
  218.         _Game_Interpreter_pluginCommand.call(this, command, args);
  219.         var pictureId, commonId, trigger, variableNum;
  220.         switch (getCommandName(command)) {
  221.             case 'P_CALL_CE' :
  222.             case 'ピクチャのボタン化':
  223.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  224.                 commonId  = getArgNumber(args[1], 1, $dataCommonEvents.length - 1);
  225.                 trigger   = getArgNumber(args[2], 1, 11);
  226.                 $gameScreen.setPictureCallCommon(pictureId, commonId, trigger);
  227.                 break;
  228.             case 'P_CALL_CE_REMOVE' :
  229.             case 'ピクチャのボタン化解除':
  230.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  231.                 $gameScreen.setPictureRemoveCommon(pictureId);
  232.                 break;
  233.             case 'P_STROKE' :
  234.             case 'ピクチャのなでなで設定':
  235.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  236.                 variableNum  = getArgNumber(args[1], 1, $dataSystem.variables.length - 1);
  237.                 $gameScreen.setPictureStroke(pictureId, variableNum);
  238.                 break;
  239.             case 'P_STROKE_REMOVE' :
  240.             case 'ピクチャのなでなで解除':
  241.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  242.                 $gameScreen.removePictureStroke(pictureId);
  243.                 break;
  244.             case 'P_POINTER' :
  245.             case 'ピクチャのポインタ化':
  246.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  247.                 $gameScreen.setPicturePointer(pictureId);
  248.                 break;
  249.             case 'P_POINTER_REMOVE' :
  250.             case 'ピクチャのポインタ化解除':
  251.                 pictureId = getArgNumber(args[0], 1, $gameScreen.maxPictures());
  252.                 $gameScreen.removePicturePointer(pictureId);
  253.                 break;
  254.         }
  255.     };

  256.     //=============================================================================
  257.     // Game_Temp
  258.     //  呼び出し予定のコモンイベントIDのフィールドを追加定義します。
  259.     //=============================================================================
  260.     var _Game_Temp_initialize = Game_Temp.prototype.initialize;
  261.     Game_Temp.prototype.initialize = function() {
  262.         _Game_Temp_initialize.call(this);
  263.         this.clearPictureCallInfo();
  264.     };

  265.     Game_Temp.prototype.clearPictureCallInfo = function() {
  266.         this.setPictureCallInfo(0, 0);
  267.     };

  268.     Game_Temp.prototype.setPictureCallInfo = function(pictureCommonId, pictureNum) {
  269.         this._pictureCommonId = pictureCommonId;
  270.         this._pictureNum      = pictureNum;
  271.     };

  272.     Game_Temp.prototype.pictureCommonId = function() {
  273.         return this._pictureCommonId;
  274.     };

  275.     Game_Temp.prototype.pictureNum = function() {
  276.         return this._pictureNum;
  277.     };

  278.     //=============================================================================
  279.     // Game_Map
  280.     //  ピクチャがタッチされたときのコモンイベント呼び出し処理を追加定義します。
  281.     //=============================================================================
  282.     var _Game_Map_setupStartingEvent = Game_Map.prototype.setupStartingEvent;
  283.     Game_Map.prototype.setupStartingEvent = function() {
  284.         var result = _Game_Map_setupStartingEvent.call(this);
  285.         return result || this.setupPictureCommonEvent();
  286.     };

  287.     Game_Map.prototype.setupPictureCommonEvent = function() {
  288.         var commonId = $gameTemp._pictureCommonId;
  289.         var event    = $dataCommonEvents[commonId];
  290.         var result   = false;
  291.         if (commonId > 0 && !this.isEventRunning() && event) {
  292.             var gameValueNum = getParamNumber(['GameVariablePictureNum', 'ピクチャ番号の変数番号'],
  293.                 0, $dataSystem.variables.length);
  294.             if (gameValueNum !== 0) $gameVariables.setValue(gameValueNum, $gameTemp.pictureNum());
  295.             this._interpreter.setup(event.list);
  296.             result = true;
  297.         }
  298.         $gameTemp.clearPictureCallInfo();
  299.         return result;
  300.     };

  301.     //=============================================================================
  302.     // Game_Troop
  303.     //  ピクチャがタッチされたときのコモンイベント呼び出し処理を追加定義します。
  304.     //=============================================================================
  305.     Game_Troop.prototype.setupPictureCommonEvent = function() {
  306.         var commonId = $gameTemp.pictureCommonId();
  307.         var event = $dataCommonEvents[commonId];
  308.         if (commonId > 0 && !this.isEventRunning() && event) {
  309.             var gameValueNum = getParamNumber(['GameVariablePictureNum', 'ピクチャ番号の変数番号'],
  310.                 0, $dataSystem.variables.length);
  311.             if (gameValueNum !== 0) $gameVariables.setValue(gameValueNum, $gameTemp.pictureNum());
  312.             this._interpreter.setup(event.list);
  313.         }
  314.         $gameTemp.clearPictureCallInfo();
  315.     };

  316.     //=============================================================================
  317.     // Game_Screen
  318.     //  ピクチャに対応するコモンイベント呼び出し用のID配列を追加定義します。
  319.     //=============================================================================
  320.     var _Game_Screen_initialize = Game_Screen.prototype.initialize;
  321.     Game_Screen.prototype.initialize = function() {
  322.         _Game_Screen_initialize.call(this);
  323.         this._pictureCidArray = [];
  324.         this._pictureSidArray = [];
  325.         this._picturePidArray = [];
  326.     };

  327.     var _Game_Screen_update = Game_Screen.prototype.update;
  328.     Game_Screen.prototype.update = function() {
  329.         _Game_Screen_update.apply(this, arguments);
  330.         this.updatePointer();
  331.     };

  332.     Game_Screen.prototype.updatePointer = function() {
  333.         var paramTouchX = getParamNumber(['GameVariableTouchX', 'ポインタX座標の変数番号'],
  334.             0, $dataSystem.variables.length);
  335.         var paramTouchY = getParamNumber(['GameVariableTouchY', 'ポインタY座標の変数番号'],
  336.             0, $dataSystem.variables.length);
  337.         if (paramTouchX > 0) $gameVariables.setValue(paramTouchX, TouchInput.x);
  338.         if (paramTouchY > 0) $gameVariables.setValue(paramTouchY, TouchInput.y);
  339.     };

  340.     Game_Screen.prototype.setPictureCallCommon = function(pictureId, commonId, trigger) {
  341.         var realPictureId = this.realPictureId(pictureId);
  342.         if (this._pictureCidArray[realPictureId] == null) this._pictureCidArray[realPictureId] = [];
  343.         this._pictureCidArray[realPictureId][trigger] = commonId;
  344.     };

  345.     Game_Screen.prototype.setPictureRemoveCommon = function(pictureId) {
  346.         var realPictureId = this.realPictureId(pictureId);
  347.         this._pictureCidArray[realPictureId] = [];
  348.     };

  349.     Game_Screen.prototype.setPictureStroke = function(pictureId, variableNum) {
  350.         var realPictureId = this.realPictureId(pictureId);
  351.         this._pictureSidArray[realPictureId] = variableNum;
  352.     };

  353.     Game_Screen.prototype.removePictureStroke = function(pictureId) {
  354.         var realPictureId = this.realPictureId(pictureId);
  355.         this._pictureSidArray[realPictureId] = null;
  356.     };

  357.     Game_Screen.prototype.setPicturePointer = function(pictureId) {
  358.         var realPictureId = this.realPictureId(pictureId);
  359.         this._picturePidArray[realPictureId] = true;
  360.     };

  361.     Game_Screen.prototype.removePicturePointer = function(pictureId) {
  362.         var realPictureId = this.realPictureId(pictureId);
  363.         this._picturePidArray[realPictureId] = null;
  364.     };

  365.     Game_Screen.prototype.getPictureCid = function(pictureId) {
  366.         var realPictureId = this.realPictureId(pictureId);
  367.         return this._pictureCidArray[realPictureId];
  368.     };

  369.     Game_Screen.prototype.getPictureSid = function(pictureId) {
  370.         var realPictureId = this.realPictureId(pictureId);
  371.         return this._pictureSidArray[realPictureId];
  372.     };

  373.     Game_Screen.prototype.getPicturePid = function(pictureId) {
  374.         var realPictureId = this.realPictureId(pictureId);
  375.         return this._picturePidArray[realPictureId];
  376.     };

  377.     //=============================================================================
  378.     // Scene_Map
  379.     //  ピクチャのタッチ状態からのコモンイベント呼び出し予約を追加定義します。
  380.     //=============================================================================
  381.     var _Scene_Map_update = Scene_Map.prototype.update;
  382.     Scene_Map.prototype.update = function() {
  383.         if (!$gameMap.isEventRunning()) this.updateTouchPictures();
  384.         _Scene_Map_update.call(this);
  385.     };

  386.     Scene_Map.prototype.updateTouchPictures = function() {
  387.         this._spriteset.callTouchPictures();
  388.     };

  389.     var _Scene_Map_isMapTouchOk = Scene_Map.prototype.isMapTouchOk;
  390.     Scene_Map.prototype.isMapTouchOk = function() {
  391.         return _Scene_Map_isMapTouchOk.call(this) && $gameTemp.pictureCommonId() === 0;
  392.     };

  393.     //=============================================================================
  394.     // Scene_Battle
  395.     //  ピクチャのタッチ状態からのコモンイベント呼び出し予約を追加定義します。
  396.     //=============================================================================
  397.     var _Scene_Battle_update = Scene_Battle.prototype.update;
  398.     Scene_Battle.prototype.update = function() {
  399.         this.updateTouchPictures();
  400.         $gameTroop.setupPictureCommonEvent();
  401.         _Scene_Battle_update.call(this);
  402.     };

  403.     Scene_Battle.prototype.updateTouchPictures = function() {
  404.         this._spriteset.callTouchPictures();
  405.     };

  406.     //=============================================================================
  407.     // Spriteset_Base
  408.     //  ピクチャのタッチ状態からのコモンイベント呼び出し予約を追加定義します。
  409.     //=============================================================================
  410.     Spriteset_Base.prototype.callTouchPictures = function() {
  411.         var containerChildren = this._pictureContainer.children;
  412.         if (!Array.isArray(containerChildren))  {
  413.             this._pictureContainer.iterate(function (property) {
  414.                 if (this._pictureContainer[property].hasOwnProperty('children')) {
  415.                     containerChildren = this._pictureContainer[property].children;
  416.                     this._callTouchPicturesSub(containerChildren);
  417.                 }
  418.             }.bind(this));
  419.         } else {
  420.             this._callTouchPicturesSub(containerChildren);
  421.         }
  422.     };

  423.     Spriteset_Base.prototype._callTouchPicturesSub = function(containerChildren) {
  424.         containerChildren.forEach(function(picture) {
  425.             if (typeof picture.callTouch === 'function') picture.callTouch();
  426.         }, this);
  427.     };

  428.     //=============================================================================
  429.     // Sprite_Picture
  430.     //  ピクチャのタッチ状態からのコモンイベント呼び出し予約を追加定義します。
  431.     //=============================================================================
  432.     var _Sprite_Picture_initialize = Sprite_Picture.prototype.initialize;
  433.     Sprite_Picture.prototype.initialize = function(pictureId) {
  434.         _Sprite_Picture_initialize.call(this, pictureId);
  435.         this._triggerHandler = [];
  436.         this._triggerHandler[1]        = this.isTriggered;
  437.         this._triggerHandler[2]        = this.isCancelled;
  438.         this._triggerHandler[3]        = this.isLongPressed;
  439.         this._triggerHandler[4]        = this.isOnFocus;
  440.         this._triggerHandler[5]        = this.isOutFocus;
  441.         this._triggerHandler[6]        = this.isReleased;
  442.         this._triggerHandler[7]        = this.isRepeated;
  443.         this._triggerHandler[8]        = this.isPressed;
  444.         this._triggerHandler[9]        = this.isWheelTriggered;
  445.         this._triggerHandler[10]       = this.isDoubleTriggered;
  446.         this._triggerHandler[11]       = this.isMoved;
  447.         this._onMouse                  = false;
  448.         this._outMouse                 = false;
  449.         this._wasOnMouse               = false;
  450.         this._transparentConsideration = getParamBoolean(['TransparentConsideration', '透明色を考慮']);
  451.     };

  452.     var _Sprite_update = Sprite_Picture.prototype.update;
  453.     Sprite_Picture.prototype.update = function() {
  454.         _Sprite_update.call(this);
  455.         this.updateMouseMove();
  456.         this.updateStroke();
  457.         this.updatePointer();
  458.     };

  459.     Sprite_Picture.prototype.updateMouseMove = function() {
  460.         this._onMouse  = false;
  461.         this._outMouse = false;
  462.         if (TouchInput.isMoved()) {
  463.             if (this.isTouchable() && this.isTouchPosInRect() && !this.isTransparent()) {
  464.                 if (!this._wasOnMouse) {
  465.                     this._onMouse    = true;
  466.                     this._wasOnMouse = true;
  467.                 }
  468.             } else {
  469.                 if (this._wasOnMouse) {
  470.                     this._outMouse   = true;
  471.                     this._wasOnMouse = false;
  472.                 }
  473.             }
  474.         }
  475.     };

  476.     Sprite_Picture.prototype.updateStroke = function() {
  477.         var strokeNum = $gameScreen.getPictureSid(this._pictureId);
  478.         if (strokeNum > 0 && TouchInput.isPressed()) {
  479.             var value = $gameVariables.value(strokeNum);
  480.             $gameVariables.setValue(strokeNum, value + TouchInput.pressedDistance);
  481.         }
  482.     };

  483.     Sprite_Picture.prototype.updatePointer = function() {
  484.         var strokeNum = $gameScreen.getPicturePid(this._pictureId);
  485.         if (strokeNum > 0) {
  486.             this.opacity = TouchInput.isPressed() ? 255 : 0;
  487.             this.x = TouchInput.x;
  488.             this.y = TouchInput.y;
  489.             this.anchor.x = 0.5;
  490.             this.anchor.y = 0.5;
  491.         }
  492.     };

  493.     Sprite_Picture.prototype.callTouch = function() {
  494.         var commandIds = $gameScreen.getPictureCid(this._pictureId);
  495.         if (commandIds == null) return;
  496.         this._triggerHandler.iterate(function(i, handler) {
  497.             if (handler && commandIds[i] != null && handler.call(this) && (i === 5 || i === 4 || !this.isTransparent())) {
  498.                 if (i === 3) TouchInput._pressedTime = -60;
  499.                 $gameTemp.setPictureCallInfo(commandIds[i], this._pictureId);
  500.             }
  501.         }.bind(this));
  502.     };

  503.     Sprite_Picture.prototype.isTransparent = function () {
  504.         if (!this._transparentConsideration) return false;
  505.         var dx = TouchInput.x - this.x;
  506.         var dy = TouchInput.y - this.y;
  507.         var sin = Math.sin(-this.rotation);
  508.         var cos = Math.cos(-this.rotation);
  509.         var bx = Math.floor(dx * cos + dy * -sin) / this.scale.x + this.anchor.x * this.width;
  510.         var by = Math.floor(dx * sin + dy * cos)  / this.scale.y + this.anchor.y * this.height;
  511.         return this.bitmap.getAlphaPixel(bx, by) === 0;
  512.     };

  513.     Sprite_Picture.prototype.screenWidth = function() {
  514.         return (this.width || 0) * this.scale.x;
  515.     };

  516.     Sprite_Picture.prototype.screenHeight = function() {
  517.         return (this.height || 0) * this.scale.y;
  518.     };

  519.     Sprite_Picture.prototype.screenX = function() {
  520.         return (this.x || 0) - this.anchor.x * this.screenWidth();
  521.     };

  522.     Sprite_Picture.prototype.screenY = function() {
  523.         return (this.y || 0) - this.anchor.y * this.screenHeight();
  524.     };

  525.     Sprite_Picture.prototype.minX = function() {
  526.         return Math.min(this.screenX(), this.screenX() + this.screenWidth());
  527.     };

  528.     Sprite_Picture.prototype.minY = function() {
  529.         return Math.min(this.screenY(), this.screenY() + this.screenHeight());
  530.     };

  531.     Sprite_Picture.prototype.maxX = function() {
  532.         return Math.max(this.screenX(), this.screenX() + this.screenWidth());
  533.     };

  534.     Sprite_Picture.prototype.maxY = function() {
  535.         return Math.max(this.screenY(), this.screenY() + this.screenHeight());
  536.     };

  537.     Sprite_Picture.prototype.isTouchPosInRect = function () {
  538.         var dx = TouchInput.x - this.x;
  539.         var dy = TouchInput.y - this.y;
  540.         var sin = Math.sin(-this.rotation);
  541.         var cos = Math.cos(-this.rotation);
  542.         var rx = this.x + Math.floor(dx * cos + dy * -sin);
  543.         var ry = this.y + Math.floor(dx * sin + dy * cos);
  544.         return (rx >= this.minX() && rx <= this.maxX() &&
  545.                 ry >= this.minY() && ry <= this.maxY());
  546.     };

  547.     Sprite_Picture.prototype.isTouchable = function() {
  548.         return this.bitmap != null && this.visible && this.scale.x !== 0 && this.scale.y !== 0;
  549.     };

  550.     Sprite_Picture.prototype.isTriggered = function() {
  551.         return this.isTouchEvent(TouchInput.isTriggered);
  552.     };

  553.     Sprite_Picture.prototype.isCancelled = function() {
  554.         return this.isTouchEvent(TouchInput.isCancelled);
  555.     };

  556.     Sprite_Picture.prototype.isLongPressed = function() {
  557.         return this.isTouchEvent(TouchInput.isLongPressed);
  558.     };

  559.     Sprite_Picture.prototype.isPressed = function() {
  560.         return this.isTouchEvent(TouchInput.isPressed);
  561.     };

  562.     Sprite_Picture.prototype.isReleased = function() {
  563.         return this.isTouchEvent(TouchInput.isReleased);
  564.     };

  565.     Sprite_Picture.prototype.isRepeated = function() {
  566.         return this.isTouchEvent(TouchInput.isRepeated);
  567.     };

  568.     Sprite_Picture.prototype.isOnFocus = function() {
  569.         return this._onMouse;
  570.     };

  571.     Sprite_Picture.prototype.isOutFocus = function() {
  572.         return this._outMouse;
  573.     };

  574.     Sprite_Picture.prototype.isMoved = function() {
  575.         return this.isTouchEvent(TouchInput.isMoved);
  576.     };

  577.     Sprite_Picture.prototype.isWheelTriggered = function() {
  578.         return this.isTouchEvent(TouchInput.isWheelTriggered);
  579.     };

  580.     Sprite_Picture.prototype.isDoubleTriggered = function() {
  581.         return this.isTouchEvent(TouchInput.isDoubleTriggered);
  582.     };

  583.     Sprite_Picture.prototype.isTouchEvent = function(triggerFunc) {
  584.         return this.isTouchable() && triggerFunc.call(TouchInput) && this.isTouchPosInRect();
  585.     };

  586.     //=============================================================================
  587.     // TouchInput
  588.     //  ホイールクリック、ダブルクリック等を実装
  589.     //=============================================================================
  590.     TouchInput.keyDoubleClickInterval = 300;
  591.     TouchInput._pressStartX = -1;
  592.     TouchInput._pressStartY = -1;
  593.     TouchInput._pressedDistance = 0;
  594.     TouchInput._prevX = -1;
  595.     TouchInput._prevY = -1;

  596.     TouchInput.getPressStartPos = function() {
  597.         return new Position(this._pressStartX, this._pressStartY);
  598.     };

  599.     Object.defineProperty(TouchInput, 'pressedDistance', {
  600.         get: function() {
  601.             return this._pressedDistance;
  602.         },
  603.         configurable: true
  604.     });

  605.     TouchInput._onMouseMove = function(event) {
  606.         var x = Graphics.pageToCanvasX(event.pageX);
  607.         var y = Graphics.pageToCanvasY(event.pageY);
  608.         this._onMove(x, y);
  609.     };

  610.     var _TouchInput_clear = TouchInput.clear;
  611.     TouchInput.clear = function() {
  612.         _TouchInput_clear.apply(this, arguments);
  613.         this._events.wheelTriggered = false;
  614.         this._events.doubleTriggered = false;
  615.     };

  616.     var _TouchInput_update = TouchInput.update;
  617.     TouchInput.update = function() {
  618.         _TouchInput_update.apply(this, arguments);
  619.         this._wheelTriggered = this._events.wheelTriggered;
  620.         this._doubleTriggered = this._events.doubleTriggered;
  621.         this._events.wheelTriggered = false;
  622.         this._events.doubleTriggered = false;
  623.     };

  624.     TouchInput.isWheelTriggered = function() {
  625.         return this._wheelTriggered;
  626.     };

  627.     TouchInput.isDoubleTriggered = function() {
  628.         return this._doubleTriggered;
  629.     };

  630.     var _TouchInput_onMiddleButtonDown = TouchInput._onMiddleButtonDown;
  631.     TouchInput._onMiddleButtonDown = function(event) {
  632.         _TouchInput_onMiddleButtonDown.apply(this, arguments);
  633.         var x = Graphics.pageToCanvasX(event.pageX);
  634.         var y = Graphics.pageToCanvasY(event.pageY);
  635.         if (Graphics.isInsideCanvas(x, y)) {
  636.             this._onWheelTrigger(x, y);
  637.         }
  638.     };

  639.     TouchInput._onWheelTrigger = function(x, y) {
  640.         this._events.wheelTriggered = true;
  641.         this._x = x;
  642.         this._y = y;
  643.     };

  644.     var _TouchInput_onTrigger = TouchInput._onTrigger;
  645.     TouchInput._onTrigger = function(x, y) {
  646.         if (this._date && Date.now() - this._date < this.keyDoubleClickInterval)
  647.             this._events.doubleTriggered = true;
  648.         this._pressStartX = x;
  649.         this._pressStartY = y;
  650.         this._pressedDistance = 0;
  651.         this._prevX = x;
  652.         this._prevY = y;
  653.         _TouchInput_onTrigger.apply(this, arguments);
  654.     };

  655.     var _TouchInput_onMove = TouchInput._onMove;
  656.     TouchInput._onMove = function(x, y) {
  657.         if (this.isPressed()) this._pressedDistance = Math.abs(this._prevX - x) + Math.abs(this._prevY - y);
  658.         this._prevX = x;
  659.         this._prevY = y;
  660.         _TouchInput_onMove.apply(this, arguments);
  661.     };

  662.     var _TouchInput_onRelease = TouchInput._onRelease;
  663.     TouchInput._onRelease = function(x, y) {
  664.         this._pressStartX = 0;
  665.         this._pressStartY = 0;
  666.         this._pressedDistance = 0;
  667.         this._prevX = x;
  668.         this._prevY = y;
  669.         _TouchInput_onRelease.apply(this, arguments);
  670.     };
  671. })();
复制代码
求翻译
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-27 03:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表