gratitude.durian.xpcool.com/wechat-config.js
2026-08-14 18:01:45 +08:00

169 lines
4.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* wechat-config.js - 微信小游戏性能优化配置
*
* 功能:
* 1. 性能监控和调优参数
* 2. 分包加载配置
* 3. 资源管理策略
* 4. GC优化建议
*/
module.exports = {
/**
* 性能优化配置
*/
performance: {
// 目标帧率微信小游戏建议60fps低端机可降至30
targetFPS: 60,
// 最大同屏水果数量(根据性能调整)
maxFruitsOnScreen: 40,
// 对象池大小配置
objectPool: {
fruit: 50, // 水果对象池大小
bullet: 20, // 子弹对象池大小
enemy: 30, // 敌机对象池大小
effect: 15, // 特效对象池大小
},
// GC触发间隔毫秒
gcInterval: 30000,
// 内存警告阈值MB
memoryWarningThreshold: 200,
// 是否启用性能监控
enablePerformanceMonitor: true,
// 性能数据上报间隔(秒)
performanceReportInterval: 60,
},
/**
* 分包加载配置
* 微信小游戏主包限制20MB需要使用分包
*/
subpackages: [
{
name: 'core',
root: 'subpackages/core/',
// 核心游戏逻辑(必须首先加载)
includes: [
'assets/scripts/core/*',
'assets/scripts/gameplay/*',
],
},
{
name: 'levels',
root: 'subpackages/levels/',
// 关卡配置和Boss数据
includes: [
'assets/resources/levels/*',
'assets/resources/bosses/*',
],
// 按需加载
lazy: true,
},
{
name: 'audio',
root: 'subpackages/audio/',
// 音频资源(体积大,单独分包)
includes: [
'assets/resources/audio/*',
],
lazy: true,
},
{
name: 'ui',
root: 'subpackages/ui/',
// UI界面资源
includes: [
'assets/resources/ui/*',
'assets/prefabs/ui/*',
],
lazy: true,
},
],
/**
* 资源加载策略
*/
resourceLoading: {
// 预加载策略
preload: {
// 启动时预加载的核心资源
onStartup: [
'audio/bgm_main',
'audio/sfx_merge',
'textures/fruit_1',
'textures/fruit_2',
],
// 关卡开始前预加载
beforeLevel: (level) => [
`levels/level_${level}`,
`bosses/boss_${level}`,
],
},
// 异步加载超时时间(毫秒)
loadTimeout: 10000,
// 最大并发加载数
maxConcurrentLoads: 3,
// 资源缓存大小限制MB
cacheSizeLimit: 50,
},
/**
* 微信特定优化
*/
wechatOptimization: {
// 使用 wx.loadSubpackage 预下载分包
preloadSubpackages: ['core'],
// 启用微信小游戏开放数据域(如果需要排行榜等功能)
enableOpenDataContext: false,
// 使用 wx.triggerGC() 主动触发GC的时机
gcTriggers: [
'sceneChange', // 场景切换时
'gameOver', // 游戏结束时
'background', // 进入后台时
],
// 图片压缩设置
imageCompression: {
quality: 80, // JPEG质量
maxWidth: 1024, // 最大宽度
maxHeight: 1024, // 最大高度
format: 'webp', // 优先使用WebP格式
},
},
/**
* 调试和监控配置
*/
debug: {
// 启用性能面板
enablePerformancePanel: false,
// 日志级别:'debug' | 'info' | 'warn' | 'error'
logLevel: 'info',
// 是否上报错误到微信分析
reportErrors: true,
// 性能数据采集项
metrics: [
'fps',
'memory',
'drawCalls',
'triangles',
'loadTime',
],
},
};