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

Project1

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

[已经过期] 有没有办法一次性编辑多个语言在游戏中进行选择?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2016-10-13
帖子
12
跳转到指定楼层
1
发表于 2017-2-14 15:32:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如,日语,英语,汉语。

Lv3.寻梦者

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

开拓者

2
发表于 2017-2-14 16:28:50 | 只看该作者
吓死我惹,点进帖子前我以为我看到的是 “ 有没有办法一次性编译多个语言在游戏中进行选择”, 吓得我浑身一抽,吓得我大叫吵醒室友。
吓得我赶紧点进来开看看有没有什么答案。原来虚惊一场。

好吧,言归正传,我以前见过进入游戏前选择的插件,6R有。
游戏中选择的话,现成插件没有见过,但是应该可以很快写出来。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
112
在线时间
376 小时
注册时间
2015-1-26
帖子
203
3
发表于 2017-2-15 13:50:44 | 只看该作者
本帖最后由 raketenfaust02 于 2017-2-15 13:55 编辑



多语种插件,因为是自做自用的所以不太讲究,凑合用吧。
用变量0001储存当前语种,插件预设为1=中文,2=日文,其他=英文



  1. Bitmap.prototype.drawText = function(text, x, y, maxWidth, lineHeight, align) {
  2.     // Note: Firefox has a bug with textBaseline: Bug 737852
  3.     //       So we use 'alphabetic' here.
  4.     if (text !== undefined) {
  5.         var tx = x;
  6.         var ty = y + lineHeight - (lineHeight - this.fontSize * 0.7) / 2;
  7.         var context = this._context;
  8.         var alpha = context.globalAlpha;
  9.         maxWidth = maxWidth || 0xffffffff;
  10.         text = languageControl(text);                //添加多语种对应
  11.         if (align === 'center') {
  12.             tx += maxWidth / 2;
  13.         }
  14.         if (align === 'right') {
  15.             tx += maxWidth;
  16.         }
  17.         context.save();
  18.         context.font = this._makeFontNameText();
  19.         context.textAlign = align;
  20.         context.textBaseline = 'alphabetic';
  21.         context.globalAlpha = 1;
  22.         this._drawTextOutline(text, tx, ty, maxWidth);
  23.         context.globalAlpha = alpha;
  24.         this._drawTextBody(text, tx, ty, maxWidth);
  25.         context.restore();
  26.         this._setDirty();
  27.     }
  28. };

  29. //这一段是对应YEP插件的,如不用YEP可以注掉
  30. Yanfly.Core.Bitmap_drawText = Bitmap.prototype.drawText;
  31. Bitmap.prototype.drawText = function(text, x, y, mW, l, align) {
  32.     x = Math.floor(x);
  33.     y = Math.floor(y);
  34.     mW = Math.floor(mW);
  35.     l = Math.floor(l);
  36.     text = languageControl(text);                //多语种对应
  37.     Yanfly.Core.Bitmap_drawText.call(this, text, x, y, mW, l, align);
  38. };

  39. Game_Message.prototype.add = function(text) {
  40.     text = languageControl(text);                //添加多语种对应
  41.     this._texts.push(text);
  42. };

  43. //检测语种
  44. languageControl = function(text){
  45.     language = $gameVariables.value(1);     //用1号变量储存当前语种,可根据需要自行调整
  46.     string = text;

  47. //变量对应语言包,可自行添加
  48.         switch(language)
  49.         {
  50.                 case 1:
  51.                 Table = StringTable_CNS;
  52.                   break;
  53.                 case 2:
  54.                 Table = StringTable_JP;
  55.                   break;
  56.                 default:
  57.                 Table = StringTable_EN
  58.         }
  59.                 if (Table[string] != null){
  60.                         text = Table[string];
  61.         }
  62.         return text;
  63. };

  64. //以下为语言包内容,可自行添加
  65. //英语:
  66. StringTable_EN = {
  67. "New Game" :  "New Game",
  68. "Continue"  :  "Continue",
  69. "Options"  :  "Options",
  70. "Status" : "Status",
  71. "Item" : "Item",
  72. "Skill" : "Skill",
  73. "Equip" : "Equip",
  74. "Save" : "Save",
  75. "Formation" : "Formation",
  76. "Game End" : "Game End",
  77. };

  78. //简体中文:
  79. StringTable_CNS = {
  80. "New Game" :  "新游戏",
  81. "Continue"  :  "继续游戏",
  82. "Options"  :  "系统",
  83. "Status" : "状态",
  84. "Item" : "道具",
  85. "Skill" : "技能",
  86. "Equip" : "装备",
  87. "Save" : "存档",
  88. "Formation" : "队形",
  89. "Game End" : "结束",
  90. };

  91. //日文:
  92. StringTable_JP = {
  93. "New Game" :  "はじめから",
  94. "Continue"  :  "つづきから",
  95. "Options"  :  "オプション",
  96. "Status" : "ステータス",
  97. "Item" : "アイテム",
  98. "Skill" : "スキル",
  99. "Equip" : "装備",
  100. "Save" : "セーフ",
  101. "Formation" : "編成",
  102. "Game End" : "終了",
  103. };
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14661
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

4
发表于 2017-2-15 18:05:08 | 只看该作者
很好的解决方案,对话什么的只需要扩充就好了
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 00:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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