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

Project1

 找回密码
 注册会员
搜索
查看: 2627|回复: 2
打印 上一主题 下一主题

[有事请教] mog的动态漂浮文字插件换地图之后文字就消失了

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
393 小时
注册时间
2010-8-7
帖子
116
跳转到指定楼层
1
发表于 2019-9-15 13:42:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
插件内容如下
不知道是遇到了bug还是本来就是这么设定的……
如果本来就是这样设定的,有没有什么类似的插件能实现类似的效果但是换地图的时候文字不会消失呢?
JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // MOG_AnimatedText.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc (v1.3)[v1.0]  画面 - 动态漂浮文字
  7.  * @author Moghunter (Drill_up翻译)
  8.  *
  9.  * @param 偏移-漂浮文字 X
  10.  * @desc 以执行插件指令的点为基准,x轴方向平移,单位像素。(可为负数)(该设置将偏移所有的)
  11.  * @default 0
  12.  *
  13.  * @param 偏移-漂浮文字 Y
  14.  * @desc 以执行插件指令的点为基准,y轴方向平移,单位像素。(可为负数)(该设置将偏移所有的)
  15.  * @default 0
  16.  *
  17.  * @help  
  18.  * =============================================================================
  19.  * +++ MOG - Animated Text (1.3) +++
  20.  * By Moghunter
  21.  * [url]https://atelierrgss.wordpress.com/[/url]
  22.  * =============================================================================
  23.  * 在画面上显示一段动态的漂浮文字。(战斗中,地图中都可以使用。)
  24.  * 漂浮文字是贴在玩家的镜头上面的,而不是地图上。
  25.  *
  26.  * -----------------------------------------------------------------------------
  27.  * ----激活条件
  28.  * 出现一段漂浮文字,需要使用下面的插件指令:(注意,冒号左右都有空格)
  29.  *
  30.  * 插件指令:infotext : A1 : A2 : A3 : A4 : A5 : A6 : A7 : A8 : A9 : A10
  31.  *
  32.  * 参数A1: id编号
  33.  *          如果指令执行了重复的id编号,那么前一个效果的立刻消失。
  34.  * 参数A2: 显示模式
  35.  *          0 - 淡入淡出,1 - 缩放, 2 - 翻转
  36.  *          3 - 上下出现,4 - 震动, 5 - 剧烈缩放
  37.  *          6 - 波浪缩放,7 - 旋涡, 8 - 摇晃,    9 - 随机
  38.  * 参数A3: 漂浮文字 X坐标
  39.  *          x轴方向平移,单位像素。0表示贴在最左边。
  40.  * 参数A4: 漂浮文字 Y坐标
  41.  *          y轴方向平移,单位像素。0表示贴在最上面。
  42.  * 参数A5: 字体大小
  43.  * 参数A6: 持续时间
  44.  *          文字出现后的持续时间。90表示90帧后文字消失。(1秒60帧)
  45.  * 参数A7: 出现速度
  46.  *          0表示文字全部直接显示,10表示文字每10帧出现一个。
  47.  *          (值越高,出现速度越慢)
  48.  * 参数A8: 字体颜色
  49.  *          填入字体颜色对应的数字,0表示白色。
  50.  * 参数A9: 排布方式
  51.  *          0 - 横向排布,1 - 纵向排布
  52.  * 参数A10:输出的文本
  53.  *
  54.  * 注意:横向排布中,因为中文字符占两个字符宽度,所以中文之间要加空格,
  55.  * 不然会挤在一起。(纵向排布不需要加。)
  56.  *
  57.  * 示例:
  58.  * 插件指令:infotext : 1 : 4 : 200 : 200 : 20 : 120 : 10 : 0 : 0 : 升 级 !
  59.  * 插件指令:infotext : 9 : 6 : 350 : 150 : 30 : 160 : 10 : 0 : 0 : World
  60.  *
  61.  * -----------------------------------------------------------------------------
  62.  * ----可选设定
  63.  * 如果某个正在漂浮的文字需要立即消失,可以使用下面指令:
  64.  *
  65.  * 插件指令:clearinfotext : A1
  66.  *
  67.  * 参数A1是对应的漂浮文字的编号。
  68.  */
  69.  
  70. //=============================================================================
  71. // ** PLUGIN PARAMETERS
  72. //=============================================================================
  73.   var Imported = Imported || {};
  74.   Imported.MOG_AnimatedText = true;
  75.   var Moghunter = Moghunter || {};
  76.  
  77.    Moghunter.parameters = PluginManager.parameters('MOG_AnimatedText');
  78.     Moghunter.infoText_LetterSpaceX = Number(Moghunter.parameters['偏移-漂浮文字 X'] || 0);
  79.         Moghunter.infoText_LetterSpaceY = Number(Moghunter.parameters['偏移-漂浮文字 Y'] || 0);
  80.  
  81. //=============================================================================
  82. // ** Game_Interpreter
  83. //=============================================================================       
  84.  
  85. //==============================
  86. // * PluginCommand
  87. //==============================
  88. var _mog_infoText_pluginCommand = Game_Interpreter.prototype.pluginCommand
  89. Game_Interpreter.prototype.pluginCommand = function(command, args) {
  90.     _mog_infoText_pluginCommand.call(this,command, args);
  91.     if (command === "infotext")  {
  92.                 $gameSystem._infoTextDataRefresh = true;
  93.                 mode = Number(args[3]);
  94.                 var x = Number(args[5]);
  95.                 var y = Number(args[7]);
  96.                 var fsize = Number(args[9]);
  97.                 var dur = Number(args[11]);
  98.                 var speed = Number(args[13]);
  99.                 var color = Number(args[15]);
  100.                 var pos = Number(args[17]);
  101.                 var text = ""
  102.                 for (i = 19; i < args.length; i++){text += args[i] + " "};
  103.                 $gameSystem._infoTextData[Number(args[1])] = [true,mode,x,y,fsize,dur,text,null,speed,pos,color];
  104.         } else if (command === "clearinfotext")  {
  105.                 $gameSystem._infoTextDataRefresh = true;
  106.                 $gameSystem._infoTextData[Number(args[1])] = null;
  107.         };       
  108.         return true;
  109. };
  110.  
  111. //=============================================================================
  112. // ** Game System
  113. //=============================================================================
  114.  
  115. //==============================
  116. // * Initialize
  117. //==============================
  118. var _mog_infoText_Gsys_initialize = Game_System.prototype.initialize;
  119. Game_System.prototype.initialize = function() {
  120.     _mog_infoText_Gsys_initialize.call(this);
  121.         this._infoTextData = [];
  122.         this._infoTextDataRefresh = false;
  123.         this._infoTextMapId = 0;
  124. };
  125.  
  126. //=============================================================================
  127. // ** Spriteset Base
  128. //=============================================================================
  129.  
  130. //==============================
  131. // * Initialize
  132. //==============================
  133. var _mog_infoText_sprBase_initialize = Spriteset_Base.prototype.initialize;
  134. Spriteset_Base.prototype.initialize = function() {
  135.     _mog_infoText_sprBase_initialize.call(this);
  136.     this.createInfoTextField();
  137. };
  138.  
  139. //==============================
  140. // * Update
  141. //==============================
  142. var _mog_infoText_sprBase_update = Spriteset_Base.prototype.update;
  143. Spriteset_Base.prototype.update = function() {
  144.     _mog_infoText_sprBase_update.call(this);
  145.         if ($gameSystem._infoTextDataRefresh) {this.refreshInfoText()};
  146. };
  147.  
  148. //==============================
  149. // * Refresh Info Text
  150. //==============================
  151. Spriteset_Base.prototype.refreshInfoText = function() {
  152.     $gameSystem._infoTextDataRefresh = false;
  153.         for (i = 0; i < $gameSystem._infoTextData.length; i++){
  154.                  if ($gameSystem._infoTextData[i] && !this._infoText[i]) {this.createInfoText(i)};
  155.         };
  156.         for (i = 0; i < this._infoText.length; i++){
  157.        if (!$gameSystem._infoTextData[i] && this._infoText[i]) {this.disposeInfoText(i)};
  158.         };
  159. };
  160.  
  161. //==============================
  162. // * dispose Info Text
  163. //==============================
  164. Spriteset_Base.prototype.disposeInfoText = function(i) {
  165.      this._infoText[i].disposeLetters();
  166.          this._infoTextField.removeChild(this._infoText[i]);
  167.          this._infoText[i] = null;
  168.          $gameSystem._infoTextData[i] = null;
  169. };
  170.  
  171. //==============================
  172. // * create Info Text Field
  173. //==============================
  174. Spriteset_Base.prototype.createInfoTextField = function() {
  175.      this._infoTextField = new Sprite();
  176.          this.addChild(this._infoTextField);
  177.          this._infoText = [];
  178.          if (this.needReloadInfoText()) {this.refreshInfoText()
  179.          } else {
  180.                 $gameSystem._infoTextData = [];
  181.                 $gameSystem._infoTextDataRefresh = false;                 
  182.          };
  183.          $gameSystem._infoTextMapId = $gameMap._mapId;
  184. };
  185.  
  186. //==============================
  187. // * need Reload Info Text
  188. //==============================
  189. Spriteset_Base.prototype.needReloadInfoText = function() {
  190.     if ($gameSystem._infoTextMapId != $gameMap._mapId) {return false};
  191.         if (SceneManager._scene.constructor.name === "Scene_Battle") {return false};
  192.         return true;
  193. };
  194.  
  195. //==============================
  196. // * create Info Text
  197. //==============================
  198. Spriteset_Base.prototype.createInfoText = function(i) {
  199.         this._infoText[i] = new InfoText(i);
  200.         this._infoTextField.addChild(this._infoText[i]);
  201. };
  202.  
  203. //==============================
  204. // * Record Info Text Data
  205. //==============================
  206. Spriteset_Base.prototype.recordInfoTextData = function() {
  207.     if (this._infoText) {
  208.                 for (e = 0; e < this._infoText.length; e++){
  209.                         if (this._infoText[e] && this._infoText[e]._letters) {this._infoText[e].recordInfoData()};
  210.                 };
  211.         };
  212. };
  213.  
  214. //=============================================================================
  215. // ** Scene Map
  216. //=============================================================================
  217.  
  218. //==============================
  219. // * Terminate
  220. //==============================
  221. var _mog_infoText_scMap_terminate = Scene_Map.prototype.terminate;
  222. Scene_Map.prototype.terminate = function() {
  223.     _mog_infoText_scMap_terminate.call(this);
  224.         if (this._spriteset) {this._spriteset.recordInfoTextData()};
  225. };
  226.  
  227. //=============================================================================
  228. // * Info Text
  229. //=============================================================================
  230. function InfoText() {
  231.     this.initialize.apply(this, arguments);
  232. };
  233.  
  234. InfoText.prototype = Object.create(Sprite.prototype);
  235. InfoText.prototype.constructor = InfoText;
  236.  
  237. //==============================
  238. // * Initialize
  239. //==============================
  240. InfoText.prototype.initialize = function(id) {
  241.     Sprite.prototype.initialize.call(this);         
  242.         this._id = id;
  243.         this._windowskin = ImageManager.loadSystem('Window');
  244. };
  245.  
  246. //==============================
  247. // * record Info Data
  248. //==============================
  249. InfoText.prototype.recordInfoData = function() {
  250.           if (!$gameSystem._infoTextData[this._id]) {return};
  251.       $gameSystem._infoTextData[this._id][7] = [];
  252.           for (i = 0; i < this._letters.length; i++){
  253.                   $gameSystem._infoTextData[this._id][7][i] = {};
  254.               $gameSystem._infoTextData[this._id][7][i].x = this._letters[i].x;
  255.                   $gameSystem._infoTextData[this._id][7][i].y = this._letters[i].y;
  256.                   $gameSystem._infoTextData[this._id][7][i].opacity = this._letters[i].opacity;
  257.                   $gameSystem._infoTextData[this._id][7][i].scaleX = this._letters[i].scale.x;
  258.                   $gameSystem._infoTextData[this._id][7][i].scaleY = this._letters[i].scale.y;
  259.                   $gameSystem._infoTextData[this._id][7][i].rotation = this._letters[i].rotation;
  260.           $gameSystem._infoTextData[this._id][7][i].org = this._letters[i].org;
  261.                   $gameSystem._infoTextData[this._id][7][i].index = this._letters[i].index;
  262.                   $gameSystem._infoTextData[this._id][7][i].d = this._letters[i].d;
  263.                   $gameSystem._infoTextData[this._id][7][i].l = this._letters[i].l;
  264.                   $gameSystem._infoTextData[this._id][7][i].w = this._letters[i].w;
  265.                   $gameSystem._infoTextData[this._id][7][i].w2 = this._letters[i].w2;
  266.                   $gameSystem._infoTextData[this._id][7][i].phase = this._letters[i].phase;
  267.                   $gameSystem._infoTextData[this._id][7][i].itemMax = this._letters[i].itemMax;
  268.                   $gameSystem._infoTextData[this._id][7][i].ani = this._letters[i].ani;
  269.                   $gameSystem._infoTextData[this._id][7][i].pos = this._letters[i].pos;
  270.                   $gameSystem._infoTextData[this._id][7][i].color = this._letters[i].color;
  271.           };
  272. };
  273.  
  274. //==============================
  275. // * Load Info Data
  276. //==============================
  277. InfoText.prototype.loadInfoData = function() {
  278.           for (i = 0; i < $gameSystem._infoTextData[this._id][7].length; i++){
  279.               this._letters[i].x = $gameSystem._infoTextData[this._id][7][i].x;
  280.                   this._letters[i].y = $gameSystem._infoTextData[this._id][7][i].y;
  281.                   this._letters[i].opacity = $gameSystem._infoTextData[this._id][7][i].opacity;
  282.                   this._letters[i].scale.x = $gameSystem._infoTextData[this._id][7][i].scaleX;
  283.                   this._letters[i].scale.y = $gameSystem._infoTextData[this._id][7][i].scaleY;
  284.                   this._letters[i].rotation = $gameSystem._infoTextData[this._id][7][i].rotation;
  285.           this._letters[i].org = $gameSystem._infoTextData[this._id][7][i].org;
  286.                   this._letters[i].index = $gameSystem._infoTextData[this._id][7][i].index;
  287.                   this._letters[i].d = $gameSystem._infoTextData[this._id][7][i].d;
  288.                   this._letters[i].l = $gameSystem._infoTextData[this._id][7][i].l;
  289.                   this._letters[i].w = $gameSystem._infoTextData[this._id][7][i].w;
  290.                   this._letters[i].w2 = $gameSystem._infoTextData[this._id][7][i].w2;
  291.                   this._letters[i].phase = $gameSystem._infoTextData[this._id][7][i].phase;
  292.                   this._letters[i].itemMax = $gameSystem._infoTextData[this._id][7][i].itemMax;
  293.                   this._letters[i].ani = $gameSystem._infoTextData[this._id][7][i].ani;
  294.                   this._letters[i].pos = $gameSystem._infoTextData[this._id][7][i].pos;
  295.                   this._letters[i].color = $gameSystem._infoTextData[this._id][7][i].color;
  296.           };
  297.           $gameSystem._infoTextData[this._id][7] = null;
  298. };
  299.  
  300. //==============================
  301. // * data
  302. //==============================
  303. InfoText.prototype.data = function() {
  304.     return $gameSystem._infoTextData[this._id]
  305. };
  306.  
  307. //==============================
  308. // * Mode
  309. //==============================
  310. InfoText.prototype.mode = function() {
  311.     return this.data()[1];
  312. };
  313.  
  314. //==============================
  315. // * Pos X
  316. //==============================
  317. InfoText.prototype.posX = function() {
  318.     return this.data()[2];
  319. };
  320.  
  321. //==============================
  322. // * Pos Y
  323. //==============================
  324. InfoText.prototype.posY = function() {
  325.     return this.data()[3];
  326. };
  327.  
  328. //==============================
  329. // * fontsize
  330. //==============================
  331. InfoText.prototype.fontsz = function() {
  332.     return Math.abs(this.data()[4]);
  333. };
  334.  
  335. //==============================
  336. // * Duration
  337. //==============================
  338. InfoText.prototype.duration = function() {
  339.     return this.data()[5];
  340. };
  341.  
  342. //==============================
  343. // * Text
  344. //==============================
  345. InfoText.prototype.text = function() {
  346.     return this.data()[6];
  347. };
  348.  
  349. //==============================
  350. // * Letter Space
  351. //==============================
  352. InfoText.prototype.letterSpace = function() {
  353.         if (this.pos() === 0) {
  354.             return Moghunter.infoText_LetterSpaceX + Math.floor(this.fontsz() / 2);
  355.         } else {
  356.             return Moghunter.infoText_LetterSpaceY + Math.floor(this.fontsz());
  357.         };
  358. };
  359.  
  360. //==============================
  361. // * Lag Time
  362. //==============================
  363. InfoText.prototype.lagTime = function() {
  364.         return this.data()[8];
  365. };
  366.  
  367. //==============================
  368. // * Pos
  369. //==============================
  370. InfoText.prototype.pos = function() {
  371.         return this.data()[9];
  372. };
  373.  
  374. //==============================
  375. // * Font Color
  376. //==============================
  377. InfoText.prototype.fontColor = function() {
  378.         return this.data()[10];
  379. };
  380.  
  381. //==============================
  382. // * need Refresh Text
  383. //==============================
  384. InfoText.prototype.needRefreshText = function() {
  385.         if (!$gameSystem._infoTextData[this._id]) {return false}
  386.         if ($gameSystem._infoTextData[this._id][0]) {return true};
  387.         if ($gameSystem._infoTextData[this._id][7]) {return true};
  388.         return false;
  389. };
  390.  
  391. //==============================
  392. // * need Dispose
  393. //==============================
  394. InfoText.prototype.needDispose = function(sprite) {
  395.         if (sprite.phase != 2) {return false};
  396.         if (sprite.w2 > 0) {return false};
  397.         if (sprite.opacity > 0) {return false};
  398.         return true;
  399. };
  400.  
  401. //==============================
  402. // * disposse Letters
  403. //==============================
  404. InfoText.prototype.disposeLetters = function() {
  405.         if (!this._letters) {return;}
  406.         for (i = 0; i < this._letters.length; i++){
  407.                 this.removeChild(this._letters[i])
  408.         };       
  409.         this._letters = null;
  410. };
  411.  
  412. //==============================
  413. // * Refresh Text
  414. //==============================
  415. InfoText.prototype.refreshText = function() {
  416.         $gameSystem._infoTextData[this._id][0] = false;
  417.         if (this._letters) {this.disposeLetters()};
  418.         var lt = this.text().toString().split("");
  419.         if ($gameSystem._infoTextData[this._id][1] < 0 || lt.length === 0) {return};
  420.         this._letters = [];
  421.         var dir = this.pos() === 0 ? 0 : 1;
  422.         this._tf = 0;
  423.         for (i = 0; i < lt.length; i++){
  424.                  this._letters[i] = new Sprite(new Bitmap(this.fontsz() + 20,this.fontsz() + 20));
  425.          this.setBaseParameters(i,dir,lt[i],lt.length);
  426.                  this._letters[i].bitmap.drawText(lt[i],0,0, this._letters[i].bitmap.width, this._letters[i].bitmap.height,"center");
  427.                  this.setEffects(i);
  428.                  this.addChild(this._letters[i]);
  429.                  dir = dir === 0 ? 1 : 0;
  430.         };
  431.         for (i = 0; i < this._letters.length; i++){
  432.                  this._letters[i].itemMax = this._letters.length - this._tf;
  433.         };
  434.         this._tf = 0;
  435.         if ($gameSystem._infoTextData[this._id][7]) {this.loadInfoData()};
  436. };
  437.  
  438. //==============================
  439. // * Text Color
  440. //==============================
  441. InfoText.prototype.textColor = function(n) {
  442.     var px = 96 + (n % 8) * 12 + 6;
  443.     var py = 144 + Math.floor(n / 8) * 12 + 6;
  444.     return this._windowskin.getPixel(px, py);
  445. };
  446.  
  447. //==============================
  448. // * set Base Parameters
  449. //==============================
  450. InfoText.prototype.setBaseParameters = function(i,dir,letter,itemMax) {
  451.                  this._letters[i].bitmap.fontSize = this.fontsz();
  452.                  this._letters[i].bitmap.textColor = this.textColor(this.fontColor());
  453.                  this._letters[i].anchor.x = 0.5;
  454.                  this._letters[i].anchor.y = 0.5;
  455.                  this._letters[i].opacity = 0;
  456.                  if (this.pos() === 0) {
  457.                      this._letters[i].x = this.posX() + (this.letterSpace() * i);
  458.                          this._letters[i].y = this.posY();
  459.                  } else {
  460.                      this._letters[i].x = this.posX();
  461.                          this._letters[i].y = this.posY() + (this.letterSpace() * i);
  462.                  };
  463.          this._letters[i].org = [this._letters[i].x,this._letters[i].y];                 
  464.                  this._letters[i].index = i;
  465.          this._letters[i].scaleX = 1.00;
  466.                  this._letters[i].scaleY = 1.00;                 
  467.                  this._letters[i].d = dir;
  468.              this._letters[i].l = letter;
  469.                  this._letters[i].w = 0;
  470.                  this._letters[i].w2 = 0;
  471.                  this._letters[i].phase = 0;
  472.                  this._letters[i].ani = [0,0,0];
  473.                  this._letters[i].itemMax = itemMax;
  474.                  this._letters[i].pos = this.pos();
  475.                  this._letters[i].color = 0;
  476. };
  477.  
  478. //==============================
  479. // * set Effects
  480. //==============================
  481. InfoText.prototype.setEffects = function(i) {
  482.          if (this.mode() === 1) {
  483.                  this.setZoomEffect(i);
  484.          } else if (this.mode() === 2) {
  485.                  this.setZoom2Effect(i);
  486.          } else if (this.mode() === 3) {
  487.                  this.setWipeEffect(i);
  488.          } else if (this.mode() === 4) {
  489.                  this.setShakeEffect(i);
  490.          } else if (this.mode() === 5) {
  491.                  this.setZoom3Effect(i);
  492.          } else if (this.mode() === 6) {
  493.                  this.setWaveEffect(i);
  494.          } else if (this.mode() === 7) {
  495.                  this.setRotationEffect(i);       
  496.          } else if (this.mode() === 8) {
  497.                  this.setSwingEffect(i);
  498.          } else if (this.mode() === 9) {
  499.                  this.setRandomEffect(i);                                   
  500.          } else {
  501.                  this.setFadeEffect(i);
  502.          };
  503.          if (this._letters[i].l === " ") {this._tf += 1};
  504.          this._letters[i].w = Math.floor(this.lagTime() * (i - this._tf));
  505. };
  506.  
  507. //==============================
  508. // * set Zoom Effects
  509. //==============================
  510. InfoText.prototype.setZoomEffect = function(i) {
  511.      this._letters[i].scale.x = 2.00;
  512.          this._letters[i].scale.y = 2.00;
  513. };
  514.  
  515. //==============================
  516. // * set Zoom 2 Effects
  517. //==============================
  518. InfoText.prototype.setZoom2Effect = function(i) {
  519.      this._letters[i].scale.x = -1.00;
  520.          this._letters[i].scale.y = 2.00;
  521. };
  522.  
  523. //==============================
  524. // * set Zoom 3 Effects
  525. //==============================
  526. InfoText.prototype.setZoom3Effect = function(i) {
  527.      this._letters[i].scale.x = 4.00;
  528.          this._letters[i].scale.y = 4.00;
  529. };
  530.  
  531. //==============================
  532. // * set Wave Effect
  533. //==============================
  534. InfoText.prototype.setWaveEffect = function(i) {
  535. };
  536.  
  537. //==============================
  538. // * set Rotation Effect
  539. //==============================
  540. InfoText.prototype.setRotationEffect = function(i) {
  541.      this._letters[i].scale.x = 0.10;
  542.          this._letters[i].scale.y = 0.10;       
  543. };
  544.  
  545. //==============================
  546. // * set Swing Effect
  547. //==============================
  548. InfoText.prototype.setSwingEffect = function(i) {
  549. };
  550.  
  551. //==============================
  552. // * set Zoom Wipe Effects
  553. //==============================
  554. InfoText.prototype.setWipeEffect = function(i) {
  555.      var np = this._letters[i].d === 0 ? this.fontsz() + 20 : -(this.fontsz() + 20);
  556.          if (this.pos() === 0) {
  557.              this._letters[i].y += np;
  558.          } else {
  559.                  this._letters[i].x += np;
  560.          };
  561. };
  562.  
  563. //==============================
  564. // * set Shake Effects
  565. //==============================
  566. InfoText.prototype.setShakeEffect = function(i) {
  567. };
  568.  
  569. //==============================
  570. // * set Effects
  571. //==============================
  572. InfoText.prototype.setFadeEffect = function(i) {         
  573. };
  574.  
  575. //==============================
  576. // * set Random
  577. //==============================
  578. InfoText.prototype.setRandomEffect = function(i) {         
  579.      var rz = Math.randomInt(70) * 0.010;
  580.      this._letters[i].scale.x = 0.70 + rz;
  581.      this._letters[i].scale.y = this._letters[i].scale.x;
  582.          var rr = Math.randomInt(40) * 0.010;
  583.          this._letters[i].rotation = this._letters[i].d === 0 ? rr : -rr;
  584. };
  585.  
  586. //==============================
  587. // * need Phase 1
  588. //==============================
  589. InfoText.prototype.needPhase1 = function(sprite) {
  590.     if (sprite.opacity < 255) {return false};
  591.         if (sprite.scale.x != 1.00) {return false};
  592.         if (sprite.scale.y != 1.00) {return false};
  593.         if (sprite.x != sprite.org[0]) {return false};
  594.         if (sprite.y != sprite.org[1]) {return false};
  595.         return true;
  596. };
  597.  
  598. //==============================
  599. // * clear Parameter
  600. //==============================
  601. InfoText.prototype.clearParameter = function(sprite) {
  602.     sprite.opacity = 255;
  603.         sprite.scale.x = 1.00;
  604.         sprite.scale.y = 1.00;
  605.         sprite.x = sprite.org[0];
  606.         sprite.y = sprite.org[1];
  607. };
  608.  
  609. //==============================
  610. // * set Phase 1
  611. //==============================
  612. InfoText.prototype.setPhase1 = function(sprite) {
  613.         sprite.w2 = (sprite.itemMax * this.lagTime()) + this.duration();
  614.         sprite.phase = 1;
  615. };
  616.  
  617. //==============================
  618. // * set Phase 2
  619. //==============================
  620. InfoText.prototype.setPhase2 = function(sprite) {
  621.     sprite.w2 = (sprite.itemMax * this.lagTime());
  622.         sprite.phase = 2;
  623. };
  624.  
  625. //==============================
  626. // * update Zoom 1 Start
  627. //==============================
  628. InfoText.prototype.updateZoomStart = function(sprite) {
  629.            sprite.opacity += 4;
  630.      if (sprite.scale.x > 1.00) {sprite.scale.x -= 0.04;
  631.              if (sprite.scale.x <= 1.00) {sprite.scale.x = 1.00};
  632.          };
  633.          sprite.scale.y = sprite.scale.x;
  634.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  635. };
  636.  
  637. //==============================
  638. // * update Zoom 2 Start
  639. //==============================
  640. InfoText.prototype.updateZoom2Start = function(sprite) {
  641.            sprite.opacity += 4;
  642.      if (sprite.scale.x < 1.00) {sprite.scale.x += 0.02;
  643.              if (sprite.scale.x >= 1.00) {sprite.scale.x = 1.00};
  644.          };         
  645.      if (sprite.scale.y > 1.00) {sprite.scale.y -= 0.02;
  646.              if (sprite.scale.y <= 1.00) {sprite.scale.y = 1.00};
  647.          };
  648.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  649. };
  650.  
  651. //==============================
  652. // * update Zoom 3 Start
  653. //==============================
  654. InfoText.prototype.updateZoom3Start = function(sprite) {
  655.            sprite.opacity += 20;
  656.      if (sprite.scale.x > 1.00) {sprite.scale.x -= 0.2;
  657.              if (sprite.scale.x <= 1.00) {
  658.                          sprite.scale.x = 1.00;
  659.                          sprite.ani[2] = 1;
  660.                  };
  661.          };
  662.          sprite.scale.y = sprite.scale.x;
  663.          if (sprite.ani[2] === 1) {
  664.                  sprite.ani[1]++;
  665.                  this.updateShakeEffect(sprite);                 
  666.                  if (sprite.ani[1] > 12) {
  667.                      this.clearParameter(sprite);
  668.                          sprite.ani[2] = 2;
  669.                          this.setPhase1(sprite)
  670.                  };                 
  671.          };
  672. };
  673.  
  674. //==============================
  675. // * update Wave Start
  676. //==============================
  677. InfoText.prototype.updateWaveStart = function(sprite) {
  678.            sprite.opacity += 4;
  679.          this.updateWaveEffect(sprite);
  680.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  681. };
  682.  
  683. //==============================
  684. // * update Rotation Start
  685. //==============================
  686. InfoText.prototype.updateRotationStart = function(sprite) {
  687.            sprite.opacity += 20;
  688.          this.updateRotationEffect(sprite);
  689.          if (sprite.scale.x < 1.00) {
  690.                  sprite.scale.x += 0.02;
  691.                  if (sprite.scale.x > 1.00) {sprite.scale.x = 1.00};
  692.          };
  693.          sprite.scale.y = sprite.scale.x;
  694.          if (sprite.rotation === 0 && this.needPhase1(sprite)) {this.setPhase1(sprite)};
  695. };
  696.  
  697. //==============================
  698. // * update Swing Start
  699. //==============================
  700. InfoText.prototype.updateSwingStart = function(sprite) {
  701.            sprite.opacity += 4;
  702.          this.updateSwingEffect(sprite);
  703.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  704. };
  705.  
  706. //==============================
  707. // * update Fade Start
  708. //==============================
  709. InfoText.prototype.updateWipeStart = function(sprite) {
  710.            sprite.opacity += 4;
  711.          if (this.pos() === 0) {
  712.                  if (sprite.y > sprite.org[1]) {
  713.                          sprite.y -= 1.5;
  714.                          if (sprite.y < sprite.org[1]) {sprite.y = sprite.org[1]};
  715.                  } else if (sprite.y < sprite.org[1]) {
  716.                          sprite.y += 1.5;
  717.                          if (sprite.y > sprite.org[1]) {sprite.y = sprite.org[1]};                 
  718.                  };
  719.          } else {
  720.                  if (sprite.x > sprite.org[0]) {
  721.                          sprite.x -= 1.5;
  722.                          if (sprite.x < sprite.org[0]) {sprite.x = sprite.org[0]};
  723.                  } else if (sprite.x < sprite.org[0]) {
  724.                          sprite.x += 1.5;
  725.                          if (sprite.x > sprite.org[0]) {sprite.x = sprite.org[0]};                 
  726.                  };                 
  727.          };
  728.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  729. };
  730.  
  731. //==============================
  732. // * update Shake Start
  733. //==============================
  734. InfoText.prototype.updateShakeStart = function(sprite) {
  735.            sprite.opacity += 255;
  736.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  737. };
  738.  
  739. //==============================
  740. // * update Fade Start
  741. //==============================
  742. InfoText.prototype.updateFadeStart = function(sprite) {
  743.            sprite.opacity += 4;
  744.          if (this.needPhase1(sprite)) {this.setPhase1(sprite)};
  745. };
  746.  
  747. //==============================
  748. // * update Random
  749. //==============================
  750. InfoText.prototype.updateRandomStart = function(sprite) {
  751.            sprite.opacity += 4;
  752.          if (sprite.opacity >= 255) {this.setPhase1(sprite)};
  753. };
  754.  
  755. //==============================
  756. // * update Shake effect
  757. //==============================
  758. InfoText.prototype.updateShakeEffect = function(sprite) {
  759.            sprite.ani[0]++;
  760.          if (sprite.ani[0] < 3) {return};
  761.          sprite.ani[0] = 0;
  762.          sprite.x = Math.randomInt(6) - 3 + sprite.org[0];  
  763.          sprite.y = Math.randomInt(6) - 3 + sprite.org[1];
  764. };
  765.  
  766. //==============================
  767. // * update Wave effect
  768. //==============================
  769. InfoText.prototype.updateWaveEffect = function(sprite) {
  770.           sprite.ani[0]++;
  771.         if (sprite.ani[0] < 30) {
  772.                  sprite.scale.x += 0.015;
  773.         } else if (sprite.ani[0] < 60) {
  774.              sprite.scale.x -= 0.015;
  775.         } else {
  776.              sprite.scale.x = 1.00;
  777.              sprite.ani[0] = 0
  778.         };
  779.         sprite.scale.y = sprite.scale.x;
  780. };
  781.  
  782.  
  783. //==============================
  784. // * update Swing effect
  785. //==============================
  786. InfoText.prototype.updateSwingEffect = function(sprite) {
  787.     if (sprite.ani[1] === 0) {
  788.                 sprite.rotation += 0.02;
  789.                 if (sprite.rotation > 0.40) {
  790.                     sprite.rotation = 0.40;
  791.                 sprite.ani[1] = 1;
  792.                 };
  793.         } else {
  794.                 sprite.rotation -= 0.02;
  795.                 if (sprite.rotation < -0.40) {
  796.                     sprite.rotation = -0.40;
  797.                 sprite.ani[1] = 0;
  798.                 };       
  799.     };
  800. };
  801.  
  802. //==============================
  803. // * update Rotation effect
  804. //==============================
  805. InfoText.prototype.updateRotationEffect = function(sprite) {
  806.            sprite.ani[0]++;
  807.          if (sprite.ani[0] < 63) {
  808.                  sprite.rotation += 0.1
  809.          } else if (sprite.ani[0] < 120) {
  810.                  sprite.rotation = 0
  811.          } else {
  812.          sprite.rotation = 0
  813.              sprite.ani[0] = 0
  814.         };
  815. };
  816.  
  817. //==============================
  818. // * update Zoom End
  819. //==============================
  820. InfoText.prototype.updateZoomEnd = function(sprite) {
  821.     sprite.scale.x += 0.01;
  822.         sprite.scale.y = sprite.scale.x;
  823.         sprite.opacity -= 5;
  824. };
  825.  
  826. //==============================
  827. // * update Zoom 2 End
  828. //==============================
  829. InfoText.prototype.updateZoom2End = function(sprite) {
  830.         sprite.scale.x -= 0.05;
  831.     sprite.scale.y += 0.01;
  832.         sprite.opacity -= 5;
  833. };
  834.  
  835. //==============================
  836. // * update Zoom 3 End
  837. //==============================
  838. InfoText.prototype.updateZoom3End = function(sprite) {
  839.     sprite.scale.x += 0.1;
  840.         sprite.scale.y = sprite.scale.x;
  841.         sprite.opacity -= 25;
  842. };
  843.  
  844. //==============================
  845. // * update Wipe End
  846. //==============================
  847. InfoText.prototype.updateWipeEnd = function(sprite) {
  848.         var np = sprite.d === 0 ? -1.0 : +1.0;
  849.         if (this.pos() === 0) {
  850.         sprite.y += np;
  851.         } else {
  852.                 sprite.x += np;
  853.         };
  854.         sprite.opacity -= 5;
  855. };
  856.  
  857. //==============================
  858. // * update Swing End
  859. //==============================
  860. InfoText.prototype.updateSwingEnd = function(sprite) {
  861.     this.updateSwingEffect(sprite);
  862.         sprite.opacity -= 5;
  863. };
  864.  
  865. //==============================
  866. // * update Shake End
  867. //==============================
  868. InfoText.prototype.updateShakeEnd = function(sprite) {
  869.         this.updateShakeEffect(sprite);
  870.         sprite.opacity -= 5;
  871. };
  872.  
  873. //==============================
  874. // * update Wave End
  875. //==============================
  876. InfoText.prototype.updateWaveEnd = function(sprite) {
  877.         this.updateWaveEffect(sprite);
  878.         sprite.opacity -= 5;
  879. };
  880.  
  881. //==============================
  882. // * update Rotation End
  883. //==============================
  884. InfoText.prototype.updateRotationEnd = function(sprite) {
  885.         this.updateRotationEffect(sprite);
  886.         sprite.opacity -= 5;
  887.         if (sprite.scale.x > 0.10) {sprite.scale.x -= 0.03};
  888.         sprite.scale.y = sprite.scale.x;
  889. };
  890.  
  891. //==============================
  892. // * update Fade End
  893. //==============================
  894. InfoText.prototype.updateFadeEnd = function(sprite) {
  895.         this.updateSwingEffect(sprite);
  896.         sprite.opacity -= 5;
  897. };
  898.  
  899. //==============================
  900. // * update Random End
  901. //==============================
  902. InfoText.prototype.updateRandomEnd = function(sprite) {
  903.         sprite.opacity -= 5;
  904. };
  905.  
  906. //==============================
  907. // * update Start
  908. //==============================
  909. InfoText.prototype.updateStart = function(sprite) {
  910.         if (this.mode() === 1) {
  911.         this.updateZoomStart(sprite);
  912.         } else if (this.mode() === 2) {
  913.         this.updateZoom2Start(sprite);       
  914.         } else if (this.mode() === 3) {
  915.         this.updateWipeStart(sprite);       
  916.         } else if (this.mode() === 4) {
  917.         this.updateShakeStart(sprite);
  918.         } else if (this.mode() === 5) {
  919.         this.updateZoom3Start(sprite);
  920.         } else if (this.mode() === 6) {
  921.         this.updateWaveStart(sprite);       
  922.         } else if (this.mode() === 7) {
  923.         this.updateRotationStart(sprite);
  924.         } else if (this.mode() === 8) {
  925.         this.updateSwingStart(sprite);
  926.         } else if (this.mode() === 9) {
  927.         this.updateRandomStart(sprite);                               
  928.         } else {
  929.                 this.updateFadeStart(sprite);
  930.         };
  931. };
  932.  
  933. //==============================
  934. // * update Wait
  935. //==============================
  936. InfoText.prototype.updateWait = function(sprite) {
  937.         if (this.mode() === 4) {
  938.             this.updateShakeEffect(sprite);
  939.         } else if (this.mode() === 6) {
  940.                 this.updateWaveEffect(sprite);
  941.         } else if (this.mode() === 7) {
  942.                 sprite.ani[0] = 0;
  943.         } else if (this.mode() === 8) {
  944.                 this.updateSwingEffect(sprite);
  945.         };
  946.     if (sprite.w2 > 0) {sprite.w2--;       
  947.             if (sprite.w2 === 0) {this.setPhase2(sprite)};
  948.         };
  949. };
  950.  
  951. //==============================
  952. // * update Fade
  953. //==============================
  954. InfoText.prototype.updateEnd = function(sprite) {
  955.         if (this.mode() === 1) {
  956.         this.updateZoomEnd(sprite);
  957.         } else if (this.mode() === 2) {
  958.         this.updateZoom2End(sprite);
  959.         } else if (this.mode() === 3) {
  960.         this.updateWipeEnd(sprite);       
  961.         } else if (this.mode() === 4) {
  962.         this.updateShakeEnd(sprite);
  963.         } else if (this.mode() === 5) {
  964.         this.updateZoom3End(sprite);
  965.         } else if (this.mode() === 6) {
  966.         this.updateWaveEnd(sprite);       
  967.         } else if (this.mode() === 7) {
  968.         this.updateRotationEnd(sprite);       
  969.         } else if (this.mode() === 8) {
  970.         this.updateSwingEnd(sprite);
  971.         } else if (this.mode() === 9) {
  972.         this.updateRandomEnd(sprite);                       
  973.         } else {
  974.             this.updateFadeEnd(sprite);       
  975.         };
  976. };
  977.  
  978. //==============================
  979. // * update Sprites
  980. //==============================
  981. InfoText.prototype.updateSprites = function() {
  982.         var dispose = false;
  983.     for (i = 0; i < this._letters.length; i++){
  984.            if (this._letters[i].w > 0) {this._letters[i].w--;
  985.                    } else {
  986.                    if (this._letters[i].phase === 0) {
  987.                            this.updateStart(this._letters[i]);
  988.                    } else if (this._letters[i].phase === 1) {
  989.                            this.updateWait(this._letters[i]);
  990.                    } else {
  991.                            this.updateEnd(this._letters[i]);
  992.                            if (this.needDispose(this._letters[i])) {
  993.                                    dispose = true;
  994.                            } else {
  995.                                    dispose = false;
  996.                            };
  997.                    };
  998.            };
  999.         };             
  1000.         if (dispose) {this.disposeLetters()};
  1001. };
  1002.  
  1003. //==============================
  1004. // * update
  1005. //==============================
  1006. InfoText.prototype.update = function() {
  1007.     Sprite.prototype.update.call(this);       
  1008.         if (!this.data()) {
  1009.         if (this._letters) {this.disposeLetters()};
  1010.                 return;
  1011.         };
  1012.         if (this.needRefreshText()) {this.refreshText()};
  1013.         if (this._letters) {this.updateSprites()};
  1014. };

Lv3.寻梦者

梦石
0
星屑
3755
在线时间
1178 小时
注册时间
2016-8-9
帖子
2395

开拓者

2
发表于 2019-9-15 19:26:43 | 只看该作者
没做实验,感觉应该是切地图就会消失的,如果楼主需要的是一个动态漂浮文字长期浮动于画面的话,建议使用mog另一个序列帧动态图片的插件,做一套循环动画的字挂在画面即可,mog官方demo有演示
酸酸甜甜就④哇噢
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2386
在线时间
393 小时
注册时间
2010-8-7
帖子
116
3
 楼主| 发表于 2019-9-15 21:26:34 | 只看该作者
白嫩白嫩的 发表于 2019-9-15 19:26
没做实验,感觉应该是切地图就会消失的,如果楼主需要的是一个动态漂浮文字长期浮动于画面的话,建议使用mo ...

我去试试看。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-3 07:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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