Project1
标题:
有没有办法一次性编辑多个语言在游戏中进行选择?
[打印本页]
作者:
hl628651
时间:
2017-2-14 15:32
标题:
有没有办法一次性编辑多个语言在游戏中进行选择?
比如,日语,英语,汉语。
作者:
刺夜之枪
时间:
2017-2-14 16:28
吓死我惹,点进帖子前我以为我看到的是 “ 有没有办法一次性
编译
多个语言在游戏中进行选择”, 吓得我浑身一抽,吓得我大叫吵醒室友。
吓得我赶紧点进来开看看有没有什么答案。原来虚惊一场。
好吧,言归正传,我以前见过进入游戏前选择的插件,6R有。
游戏中选择的话,现成插件没有见过,但是应该可以很快写出来。
作者:
raketenfaust02
时间:
2017-2-15 13:50
本帖最后由 raketenfaust02 于 2017-2-15 13:55 编辑
1.png
(99.22 KB, 下载次数: 15)
下载附件
保存到相册
2017-2-15 13:51 上传
多语种插件,因为是自做自用的所以不太讲究,凑合用吧。
用变量0001储存当前语种,插件预设为1=中文,2=日文,其他=英文
Bitmap.prototype.drawText = function(text, x, y, maxWidth, lineHeight, align) {
// Note: Firefox has a bug with textBaseline: Bug 737852
// So we use 'alphabetic' here.
if (text !== undefined) {
var tx = x;
var ty = y + lineHeight - (lineHeight - this.fontSize * 0.7) / 2;
var context = this._context;
var alpha = context.globalAlpha;
maxWidth = maxWidth || 0xffffffff;
text = languageControl(text); //添加多语种对应
if (align === 'center') {
tx += maxWidth / 2;
}
if (align === 'right') {
tx += maxWidth;
}
context.save();
context.font = this._makeFontNameText();
context.textAlign = align;
context.textBaseline = 'alphabetic';
context.globalAlpha = 1;
this._drawTextOutline(text, tx, ty, maxWidth);
context.globalAlpha = alpha;
this._drawTextBody(text, tx, ty, maxWidth);
context.restore();
this._setDirty();
}
};
//这一段是对应YEP插件的,如不用YEP可以注掉
Yanfly.Core.Bitmap_drawText = Bitmap.prototype.drawText;
Bitmap.prototype.drawText = function(text, x, y, mW, l, align) {
x = Math.floor(x);
y = Math.floor(y);
mW = Math.floor(mW);
l = Math.floor(l);
text = languageControl(text); //多语种对应
Yanfly.Core.Bitmap_drawText.call(this, text, x, y, mW, l, align);
};
Game_Message.prototype.add = function(text) {
text = languageControl(text); //添加多语种对应
this._texts.push(text);
};
//检测语种
languageControl = function(text){
language = $gameVariables.value(1); //用1号变量储存当前语种,可根据需要自行调整
string = text;
//变量对应语言包,可自行添加
switch(language)
{
case 1:
Table = StringTable_CNS;
break;
case 2:
Table = StringTable_JP;
break;
default:
Table = StringTable_EN
}
if (Table[string] != null){
text = Table[string];
}
return text;
};
//以下为语言包内容,可自行添加
//英语:
StringTable_EN = {
"New Game" : "New Game",
"Continue" : "Continue",
"Options" : "Options",
"Status" : "Status",
"Item" : "Item",
"Skill" : "Skill",
"Equip" : "Equip",
"Save" : "Save",
"Formation" : "Formation",
"Game End" : "Game End",
};
//简体中文:
StringTable_CNS = {
"New Game" : "新游戏",
"Continue" : "继续游戏",
"Options" : "系统",
"Status" : "状态",
"Item" : "道具",
"Skill" : "技能",
"Equip" : "装备",
"Save" : "存档",
"Formation" : "队形",
"Game End" : "结束",
};
//日文:
StringTable_JP = {
"New Game" : "はじめから",
"Continue" : "つづきから",
"Options" : "オプション",
"Status" : "ステータス",
"Item" : "アイテム",
"Skill" : "スキル",
"Equip" : "装備",
"Save" : "セーフ",
"Formation" : "編成",
"Game End" : "終了",
};
复制代码
作者:
walf_man
时间:
2017-2-15 18:05
很好的解决方案,对话什么的只需要扩充就好了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1