74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
// 看板娘模型配置(基于原始代码提取)
|
||
const models = {
|
||
shizuku: { jsonPath: "https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json", name: "小智" },
|
||
koharu: { jsonPath: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json", name: "小荷" },
|
||
wanko: { jsonPath: "https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json", name: "汪喵" }
|
||
};
|
||
|
||
// 获取URL参数工具函数
|
||
function getUrlParam(name) {
|
||
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
|
||
const r = window.location.search.substr(1).match(reg);
|
||
return r ? unescape(r[2]) : null;
|
||
}
|
||
|
||
// 看板娘初始化函数
|
||
function initL2Dwidget() {
|
||
const modelId = getUrlParam('id') || 'koharu';
|
||
const model = models[modelId] || models.koharu;
|
||
|
||
// 设置下拉框选中状态
|
||
if (document.getElementById('model-select')) {
|
||
document.getElementById('model-select').value = modelId;
|
||
}
|
||
console.log('加载模型:', model.name, model.jsonPath);
|
||
|
||
// 初始化L2Dwidget(保留原始配置)
|
||
L2Dwidget.init({
|
||
"model": { "jsonPath": model.jsonPath, "scale": 1 },
|
||
"display": {
|
||
"position": "right",
|
||
"width": 150,
|
||
"height": 300,
|
||
"hOffset": 0,
|
||
"vOffset": -20
|
||
},
|
||
"mobile": { "show": true, "scale": 0.5 },
|
||
"react": { "opacityDefault": 0.8, "opacityOnHover": 1 },
|
||
"dialog": {
|
||
"enable": true,
|
||
"script": {
|
||
'tap body': `你好啊,我是${model.name}。`,
|
||
'tap face': '有什么问题或者烦心事都可以和我聊聊~'
|
||
},
|
||
"hitokoto": false
|
||
}
|
||
});
|
||
|
||
// 初始化完成后延迟显示欢迎消息
|
||
setTimeout(() => {
|
||
if (window.L2Dwidget && window.L2Dwidget.dialog) {
|
||
window.L2Dwidget.dialog.show(`你好啊,我是${model.name}!`);
|
||
}
|
||
}, 1000);
|
||
}
|
||
|
||
// 页面加载完成后初始化看板娘
|
||
window.addEventListener('load', function() {
|
||
initL2Dwidget();
|
||
|
||
// 为学伴选择器绑定change事件监听器
|
||
const modelSelect = document.getElementById('model-select');
|
||
if (modelSelect) {
|
||
modelSelect.addEventListener('change', function() {
|
||
const selectedModelId = this.value;
|
||
console.log('用户选择学伴:', selectedModelId);
|
||
switchL2DModel(selectedModelId);
|
||
});
|
||
}
|
||
});
|
||
|
||
// 暴露模型切换功能接口
|
||
window.switchL2DModel = function(modelId) {
|
||
window.location.search = '?id=' + modelId;
|
||
}; |