[MF]修改贪吃蛇模型加载后无法手动导入问题,调整仓库路径
This commit is contained in:
parent
0d6d11aaf7
commit
778af9770b
@ -97,18 +97,18 @@ async function initModel() {
|
|||||||
|
|
||||||
const cdnJsonUrl = `${cdnModelBaseUrl}${cdnModelJsonFileName}`;
|
const cdnJsonUrl = `${cdnModelBaseUrl}${cdnModelJsonFileName}`;
|
||||||
const cdnBinUrl = `${cdnModelBaseUrl}${cdnModelBinFileName}`;
|
const cdnBinUrl = `${cdnModelBaseUrl}${cdnModelBinFileName}`;
|
||||||
|
// 模型自动加载
|
||||||
console.log(`尝试从 CDN 加载模型: ${cdnJsonUrl}, ${cdnBinUrl}`);
|
// console.log(`尝试从 CDN 加载模型: ${cdnJsonUrl}, ${cdnBinUrl}`);
|
||||||
showStatus(MODEL_STATUS, 'info', '正在尝试从 CDN 自动加载 KNN 模型...');
|
// showStatus(MODEL_STATUS, 'info', '正在尝试从 CDN 自动加载 KNN 模型...');
|
||||||
|
|
||||||
try {
|
// try {
|
||||||
await loadKNNModel(cdnJsonUrl, cdnBinUrl);
|
// await loadKNNModel(cdnJsonUrl, cdnBinUrl);
|
||||||
console.log('CDN 模型自动加载成功。');
|
// console.log('CDN 模型自动加载成功。');
|
||||||
} catch (cdnError) {
|
// } catch (cdnError) {
|
||||||
showStatus(MODEL_STATUS, 'warning', `从 CDN 加载 KNN 模型失败: ${cdnError.message}。您可以尝试手动加载。`);
|
// showStatus(MODEL_STATUS, 'warning', `从 CDN 加载 KNN 模型失败: ${cdnError.message}。您可以尝试手动加载。`);
|
||||||
console.warn('CDN KNN 模型加载失败:', cdnError);
|
// console.warn('CDN KNN 模型加载失败:', cdnError);
|
||||||
updateModelUI(false);
|
// updateModelUI(false);
|
||||||
}
|
// }
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showStatus(MODEL_STATUS, 'error', `模型加载失败: ${error.message}`);
|
showStatus(MODEL_STATUS, 'error', `模型加载失败: ${error.message}`);
|
||||||
|
File diff suppressed because one or more lines are too long
@ -519,8 +519,10 @@
|
|||||||
async function initApp() {
|
async function initApp() {
|
||||||
updateGameStatus('initial'); // 初始状态设为 'initial'
|
updateGameStatus('initial'); // 初始状态设为 'initial'
|
||||||
statusDisplay.textContent = '正在加载 MoveNet 模型和摄像头...';
|
statusDisplay.textContent = '正在加载 MoveNet 模型和摄像头...';
|
||||||
|
isModelLoaded = false;
|
||||||
|
importModelBtn.disabled = false;
|
||||||
startBtn.disabled = true;
|
startBtn.disabled = true;
|
||||||
importModelBtn.disabled = true;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 初始化 KNN 分类器
|
// 初始化 KNN 分类器
|
||||||
@ -542,7 +544,6 @@
|
|||||||
|
|
||||||
// 绑定按钮事件
|
// 绑定按钮事件
|
||||||
startBtn.addEventListener('click', startGame);
|
startBtn.addEventListener('click', startGame);
|
||||||
importModelBtn.addEventListener('click', () => fileImporter.click());
|
|
||||||
fileImporter.addEventListener('change', handleModelImport);
|
fileImporter.addEventListener('change', handleModelImport);
|
||||||
restartBtn.addEventListener('click', resetGame);
|
restartBtn.addEventListener('click', resetGame);
|
||||||
|
|
||||||
@ -562,19 +563,16 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// --- 新增:尝试自动从 CDN 加载 KNN 模型数据 ---
|
|
||||||
// !!! 请替换为你的实际 CDN 模型 URL !!!
|
|
||||||
const cdnModelJsonUrl = 'https://goood-space-assets.oss-cn-beijing.aliyuncs.com/public/models/pose-knn-model.json';
|
|
||||||
|
|
||||||
console.log(`尝试从 CDN 自动加载 KNN 模型数据: ${cdnModelJsonUrl}`);
|
// 自动加载模型
|
||||||
statusDisplay.textContent = '正在尝试从 CDN 加载姿态识别模型...';
|
const cdnModelJsonUrl = 'https://goood-space-assets.oss-cn-beijing.aliyuncs.com/public/models/pose-knn-model.json';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await loadKNNModelData(null, cdnModelJsonUrl); // 传入 CDN URL, file 为 null
|
await loadKNNModelData(null, cdnModelJsonUrl); // 传入 CDN URL, file 为 null
|
||||||
statusDisplay.textContent = 'CDN 姿态识别模型加载成功!可以开始游戏了。';
|
statusDisplay.textContent = 'CDN 姿态识别模型加载成功!可以开始游戏了。';
|
||||||
isModelLoaded = true; // 标记模型已加载
|
isModelLoaded = true; // 标记模型已加载
|
||||||
startBtn.disabled = false; // 启用开始游戏按钮
|
startBtn.disabled = false; // 启用开始游戏按钮
|
||||||
importModelBtn.disabled = true; // 自动加载成功后,禁用手动导入按钮
|
|
||||||
updateGameStatus('ready'); // 更新游戏状态
|
updateGameStatus('ready'); // 更新游戏状态
|
||||||
} catch (cdnError) {
|
} catch (cdnError) {
|
||||||
console.warn('CDN KNN 模型数据自动加载失败:', cdnError);
|
console.warn('CDN KNN 模型数据自动加载失败:', cdnError);
|
||||||
@ -788,7 +786,7 @@
|
|||||||
|
|
||||||
statusDisplay.textContent = '正在加载模型数据...';
|
statusDisplay.textContent = '正在加载模型数据...';
|
||||||
startBtn.disabled = true; // 加载中禁用开始按钮
|
startBtn.disabled = true; // 加载中禁用开始按钮
|
||||||
importModelBtn.disabled = true; // 加载中禁用导入按钮
|
importModelBtn.disabled = true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let loadedModelData;
|
let loadedModelData;
|
||||||
@ -865,7 +863,6 @@
|
|||||||
statusDisplay.textContent = '姿态模型导入成功!可以开始游戏了。';
|
statusDisplay.textContent = '姿态模型导入成功!可以开始游戏了。';
|
||||||
isModelLoaded = true; // 设置模型已加载状态
|
isModelLoaded = true; // 设置模型已加载状态
|
||||||
startBtn.disabled = false; // 启用开始游戏按钮
|
startBtn.disabled = false; // 启用开始游戏按钮
|
||||||
importModelBtn.disabled = true; // 导入按钮禁用
|
|
||||||
updateGameStatus('ready');
|
updateGameStatus('ready');
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -1130,28 +1127,28 @@ function generateFood() {
|
|||||||
if (gameStatus === 'initial') {
|
if (gameStatus === 'initial') {
|
||||||
statusDisplay.textContent = '等待模型导入...';
|
statusDisplay.textContent = '等待模型导入...';
|
||||||
startBtn.disabled = true;
|
startBtn.disabled = true;
|
||||||
importModelBtn.disabled = false;
|
importModelBtn.disabled = false; // 初始状态下允许导入
|
||||||
restartBtn.disabled = true;
|
restartBtn.disabled = true;
|
||||||
} else if (gameStatus === 'loading') {
|
} else if (gameStatus === 'loading') {
|
||||||
// 状态文本已经在加载函数中设置
|
// 状态文本已经在加载函数中设置
|
||||||
startBtn.disabled = true;
|
startBtn.disabled = true;
|
||||||
importModelBtn.disabled = true;
|
importModelBtn.disabled = true; // 加载过程中禁用导入
|
||||||
restartBtn.disabled = true;
|
restartBtn.disabled = true;
|
||||||
} else if (gameStatus === 'ready') {
|
} else if (gameStatus === 'ready') {
|
||||||
statusDisplay.textContent = '模型已加载,点击“开始游戏”或按“Enter”键。';
|
statusDisplay.textContent = '模型已加载,点击“开始游戏”或按“Enter”键。';
|
||||||
startBtn.disabled = false;
|
startBtn.disabled = false;
|
||||||
importModelBtn.disabled = true;
|
importModelBtn.disabled = false; // 模型加载完成后,导入按钮保持启用
|
||||||
restartBtn.disabled = true; // 只有在gameOver后才启用重新开始
|
restartBtn.disabled = true;
|
||||||
} else if (gameStatus === 'playing') {
|
} else if (gameStatus === 'playing') {
|
||||||
statusDisplay.textContent = '游戏进行中...';
|
statusDisplay.textContent = '游戏进行中...';
|
||||||
startBtn.disabled = true;
|
startBtn.disabled = true;
|
||||||
importModelBtn.disabled = true;
|
importModelBtn.disabled = false; // 游戏进行中,导入按钮保持启用(如果用户想切换模型)
|
||||||
restartBtn.disabled = true;
|
restartBtn.disabled = true;
|
||||||
} else if (gameStatus === 'gameOver') {
|
} else if (gameStatus === 'gameOver') {
|
||||||
statusDisplay.textContent = '游戏结束!点击“重新开始”或按“Enter”键。';
|
statusDisplay.textContent = '游戏结束!点击“重新开始”或按“Enter”键。';
|
||||||
startBtn.disabled = true;
|
startBtn.disabled = true;
|
||||||
importModelBtn.disabled = true;
|
importModelBtn.disabled = false; // 游戏结束后,导入按钮保持启用
|
||||||
restartBtn.disabled = false; // 游戏结束时启用重新开始
|
restartBtn.disabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user