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

Project1

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

[已经解决] 这段XP脚本如何改写为MV的脚本?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

跳转到指定楼层
1
发表于 2016-4-6 11:45:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 刺夜之枪 于 2016-4-5 20:07 编辑

RUBY:
b.blt(0,y,b2,Rect.new(0,0,b2.width,y2 + h))

我试着改写了一下,但是完全没有用:
MV:
b.blt(b2, 0, 0, b2.width, y2 + h, 0 , y, b2.width, y2 + h);

我经过一段时间的DEBUG后发现,好像问题就出现在上面这行里。。。
无论我怎么改都无解。。。

原来的语境:
Ruby:
RUBY 代码复制
  1. def self.redraw
  2.     b = @@sprite.bitmap
  3.     b.clear
  4.     b2 = Bitmap.new(b.width,640)
  5.     y = b.height
  6.     for n in $game_system.notifications.reverse[0,@@limit]
  7.       x = 0
  8.       y2 = 0
  9.       b2.font = n.font
  10.       h = b2.text_size(n.msg).height
  11.       n.msg.split('').each do |char|
  12.         if (x + b2.text_size(char).width) > b2.width
  13.           x = 0
  14.           y2 += h
  15.         end
  16.         # b2.draw_text(x,y2,b2.width,h,char)
  17.         #sailcat_draw_text
  18.         if $game_temp.inefs
  19.         b2.sailcat_draw_text(x,y2,b2.width,h,char)
  20.         else
  21.         b2.draw_text(x,y2,b2.width,h,char)
  22.         end
  23.  
  24.         x += b2.text_size(char).width + 2
  25.       end
  26.       y -= (y2 + h)
  27.       b.blt(0,y,b2,Rect.new(0,0,b2.width,y2 + h))
  28.       b2.clear
  29.       y -= 4
  30.     end
  31.  
  32.     b2.dispose
  33.   end




Mv:
JAVASCRIPT 代码复制
  1. Notification.redraw = function () {
  2.     //console.log("redraw called");
  3.     var b = this._sprite.bitmap;
  4.  
  5.     b.clear();
  6.  
  7.  
  8.     var b2 = new Bitmap(b.width,Graphics.boxHeight);
  9.     var y = b.height;
  10.     var self = this;
  11.  
  12.     $gameSystem.notifications.slice().reverse().slice(0,this._limit).forEach(function(n) {
  13.         var x = 0;
  14.         var y2 = 0;
  15.         //alert(self._fontSize);
  16.         var h = self._fontSize;//b2.measureTextWidth(n);
  17.  
  18.         n.split('').forEach(function(char) {
  19.  
  20.             //console.log(char);
  21.             //alert(b2.measureTextWidth(char));
  22.             if (x + b2.measureTextWidth(char) > b2.width) {
  23.                 x = 0;
  24.                 y2 += h;
  25.             }
  26.  
  27.             b2.drawText(x,y2,b2.width,h,char,'left');
  28.             x += b2.measureTextWidth(char) + 2;
  29.         });
  30.         y -= (y2+h);
  31.         //b.blt(0,y,b2,Rect.new(0,0,b2.width,y2 + h))
  32.         //(source, sx, sy, sw, sh, dx, dy, dw, dh)
  33.         alert(b.width);
  34.         b.blt(b2, 0, 0, b2.width, y2 + h, 0 , y, b2.width, y2 + h);
  35.  
  36.  
  37.         b2.clear();
  38.         y -= 4;
  39.     });
  40.  
  41.     //b2.dispose;
  42. };

评分

参与人数 2+2 收起 理由
众神与将军 + 1
玛尔斯 + 1

查看全部评分


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

本版积分规则

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

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

GMT+8, 2024-12-24 00:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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