LeaferJS ”心花怒放“ 小游戏开发指南
简介
LeaferJS 是一款好用的 Canvas 渲染引擎,提供革新的体验。可用于高效绘图 、UI 交互(小游戏、互动应用、组态)、图形编辑。
一、准备代码运行环境
Playground 环境: https://www.leaferjs.com/ui/guide/runtime.html
可通过 Cloud Studio 模版创建一个 LeaferJS 项目,用于运行、练习后续的示例代码。
二、学习 LeaferJS 入门教程
入门教程: https://www.leaferjs.com/ui/guide/basic/leafer.html
跟随官网教程步骤(文档底部有下一步引导按钮)从浅到深的一步步学习。
建议将教程中的示例代码复制到 LeaferJS 项目 的 index.ts 文件中运行、调试效果。
三、如何开发一个【心花怒放】的小游戏 (参考示例)
体验游戏: https://cloudstudio.net/a/24001340290174976?channel=share&sharetype=URL
ts
// #心花怒放
import { Leafer, Box, Group, Path, Text, Rect, IGradientPaint } from 'leafer-game'
const leafer = new Leafer({ view: window, fill: '#111' })
// 第一步:准备愿望数据
let score = 0 // 心花怒放累计值
const bloomScore = 2000 // 达到这个值完成一次心花怒放
const sendInterval = 500 // 每多少毫秒随机发送一次愿望卡片
const wishList = [ // 愿望数据
{ id: 1, name: '愿望1', value: 100 },
{ id: 2, name: '愿望2', value: 300 },
{ id: 3, name: '愿望3', value: 200 },
{ id: 4, name: '愿望4', value: 200 },
{ id: 5, name: '愿望5', value: 100 },
{ id: 6, name: '愿望6', value: 300 },
{ id: 7, name: '愿望7', value: 200 }
]
const width = window.innerWidth, height = window.innerHeight // 界面宽高
const wishTracks = Math.floor((width - 30) / 90) // 发放愿望卡片的轨道数量
// 第二步:构建页面UI
// 开始游戏按钮
const color: IGradientPaint = { type: 'linear', stops: ['#FF4B4B', '#FFFF27'] } // 主渐变色
const cardColor: IGradientPaint = { type: 'linear', stops: ['#FF4B4B', '#FE9027'] } // 卡片渐变色
const beginButtonText = new Text({
x: 10,
y: height / 2 - 30,
width,
fontSize: 36,
fontWeight: 'bold',
textAlign: 'center',
italic: true,
origin: 'center', // 同 CSS 的 transform-origin 功能一样
fill: { type: 'linear', stops: ['#FF4B4B', '#FFcc27'] },
stroke: '#990000',
strokeWidth: 4,
animation: { // 动画入场效果
easing: 'linear',
style: { text: '开始 "心花怒放" 游戏' },
duration: 2,
event: { completed() { beginButtonText.hoverStyle = { fill: color } } } // 动画完成事件
},
animationOut: { style: { opacity: 0, scale: 3 } }, // 动画移除效果
event: {
tap() {
beginGame() // 开始游戏
beginButtonText.remove()
}
},
cursor: 'pointer'
})
leafer.add(beginButtonText)
// 愿望进度条
const wishProgress = new Rect({ x: 5, y: 5, width: 0, height: 50, cornerRadius: 25, fill: { type: 'linear', from: 'top-left', to: 'bottom-right', stops: ['#FF4B4B', '#FE9027'] } })
const wishText = new Text({ x: 20, y: 12, fill: 'white', fontWeight: 'bold', fontSize: 24, text: '心花怒放 ¥' })
const scoreText = new Text({ x: 148, y: 12, fill: 'white', fontWeight: 'bold', fontSize: 24, text: 0 })
const wishProgressBar = new Box({ x: 10, y: height - 70, width: width - 20, height: 60, cornerRadius: 30, fill: 'rgba(0,0,0,0.8)', children: [wishProgress, wishText, scoreText] })
// 发放愿望卡片的容器
const wishCardsGroup = new Group()
// 展示完成游戏的容器
const resultGroup = new Group()
// 第三步:愿望交互操作
let beginTime = 0 // 游戏开始时间
let useTime = 0 // 完成一次心花怒放的游戏时间(秒数)
let completed = false // 是否已经完成游戏
// 开始游戏
function beginGame() {
let lastTrack = 0
// 重置数据,可以重玩
beginTime = Date.now()
completed = false
scoreText.text = 0
wishProgress.width = score = 0
const timer = setInterval(() => { // 随机发送愿望卡片
if (completed) return clearInterval(timer)
const wish = wishList[Math.round((wishList.length - 1) * Math.random())]
let track = Math.round(wishTracks * Math.random())
if (lastTrack === track) track < wishTracks ? track++ : track-- // 防止在一个轨道上一直发放
sendWishCard(wish.id, wish.name, wish.value, lastTrack = track) // 发送愿望卡片
}, sendInterval)
leafer.add([wishCardsGroup, wishProgressBar])
}
// 发送愿望卡片
function sendWishCard(id: number, name: string, value: number, track: number) {
const wishCard = new Box({
id: id.toString(),
x: 30 + (track - 1) * 90,
fill: cardColor,
cornerRadius: 12,
animation: { // 卡片降下的动画
style: { y: height + 500 },
duration: (height / 500) * 5,
event: { completed() { wishCard.destroy() } } // 动画完成后自动销毁并移除
},
cursor: 'pointer',
children: [
new Text({ // 愿望内容(竖排)
width: 60,
padding: [30, 20],
text: name,
fontSize: 24,
lineHeight: { type: 'percent', value: 1.2 },
textAlign: 'center',
verticalAlign: 'bottom',
fill: 'black',
})]
})
wishCard.once('tap', () => { // 监听点击卡片事件
wishCard.hittable = false
wishCard.set( // 点击卡片之后的动画
{ x: 160, y: height - 50, scale: 0.3, opacity: 0.5 },
{
easing: 'back-in',
duration: 1,
event: {
completed() {
// 累计心花怒放值
score += value
wishCard.remove()
scoreText.set({ text: score }, 1)
wishProgress.width = (width - 30) * Math.min(1, score / bloomScore)
if (score >= bloomScore) gameOver() // 达到数值,完成游戏
}
}
}
)
})
wishCardsGroup.add(wishCard)
}
// 完成游戏
function gameOver() {
if (completed) return
completed = true
useTime = Math.round((Date.now() - beginTime) / 1000 * 10) / 10
wishCardsGroup.clear()
wishCardsGroup.remove()
wishProgressBar.remove()
leafer.add(resultGroup)
bloom() // 心花怒放的效果
}
// 重玩游戏
function restartGame() {
resultGroup.clear()
resultGroup.remove()
beginGame()
}
// 显示游戏成绩
function showResult() {
const resultText = new Text({
x: 50,
y: height - 130,
width: width - 100,
fontSize: 30,
fontWeight: 'bold',
textAlign: 'center',
italic: true,
origin: 'center',
fill: { type: 'linear', from: 'left', to: 'right', stops: ['#FF4B4B', '#FEB027'] },
stroke: '#990000',
strokeWidth: 4,
animation: {
easing: 'linear',
style: { text: `恭喜您在 ${useTime} 秒内完成了一次心花怒放,祝您在新的一年里所愿皆能实现(心花怒放)` },
duration: 3,
},
event: { tap() { restartGame() } }, // 重玩游戏
cursor: 'pointer'
})
resultGroup.add(resultText)
}
// 心花怒放的效果
function bloom() {
const group = new Group({ origin: 'center', rotation: 180 })
const path = new Path({
x: (width - 382) / 2,
y: (height - 450) / 2,
scale: 0.03,
motionPath: true, // 设置为运动路径,该 Group 内的其他元素都可以沿此路径运动
stroke: cardColor,
strokeWidth: 40,
motion: 0,
animation: { // 沿 path 运动描边至 100%
style: { motion: { type: "percent", value: 1 } },
duration: 1,
event: {
completed() {
path.set({ fill: cardColor, stroke: 'black', strokeWidth: 10, cursor: 'pointer' })
group.set({ scale: 1.5 }, { easing: 'back-out' })
showResult() // 显示游戏成绩
}
}
},
event: { tap() { restartGame() } }, // 重玩游戏
path: `M5254 12703 c-16 -21 -41 -60 -55 -88 -30 -58 -55 -62 -100 -19 l-27 26 -17 -32 c-10 -19 -31 -38 -52 -46 l-35 -15 25 -27 c14 -15 28 -43 32 -62 4 -19 17 -58 30 -85 13 -28 27 -63 30 -78 4 -15 12 -30 18 -34 15 -9 3 78 -17 117 -28 57 -15 75 45 63 33 -6 41 -19 59 -92 6 -23 13 -41 16 -38 3 2 7 46 9 96 6 116 27 217 60 288 28 62 28 63 16 63 -5 0 -22 -17 -37 -37z M5433 12680 c-27 -13 -31 -19 -26 -45 7 -36 2 -31 38 -38 26 -5 33 -1 46 22 15 26 15 29 -5 52 -20 23 -23 23 -53 9z M4470 12530 c0 -5 -11 -10 -24 -10 -21 0 -23 -4 -23 -42 1 -24 -2 -51 -7 -60 -7 -15 -3 -18 19 -18 15 0 38 -9 52 -20 l26 -20 18 29 c10 16 28 35 39 41 l22 12 -21 22 c-45 48 -16 48 76 0 97 -52 178 -120 253 -212 36 -45 68 -81 73 -81 12 -1 -2 48 -34 117 -34 75 -103 146 -180 184 -95 49 -289 87 -289 58z M5596 12454 c-27 -8 -67 -27 -89 -41 -62 -39 -199 -188 -144 -157 6 4 44 27 83 51 185 113 327 111 507 -10 70 -47 65 -26 -13 52 -97 97 -236 140 -344 105z M5327 12412 c-21 -23 -36 -89 -18 -78 10 7 51 78 51 91 0 11 -18 4 -33 -13z M5828 12279 c-16 -22 -35 -33 -63 -38 -41 -7 -44 -12 -29 -58 6 -22 4 -23 -43 -23 -73 0 -199 -35 -255 -71 -27 -17 -47 -34 -44 -36 3 -3 27 2 53 12 59 21 259 33 276 16 6 -6 25 -11 42 -11 36 0 121 -27 184 -59 56 -29 125 -93 167 -156 27 -39 34 -45 34 -28 0 41 -40 128 -80 174 -22 26 -65 63 -95 83 -30 21 -55 40 -55 44 0 3 14 21 31 39 l32 32 -42 17 c-31 12 -47 27 -62 55 -11 22 -21 39 -23 39 -2 0 -14 -14 -28 -31z M4769 12215 c46 -25 86 -43 88 -41 9 9 -31 57 -58 72 -15 7 -47 14 -71 14 l-43 0 84 -45z M5460 12234 c-39 -17 -110 -81 -110 -100 0 -8 22 2 52 21 28 19 73 42 100 52 50 18 58 27 32 37 -23 9 -35 7 -74 -10z M4580 12071 c-30 -10 -68 -25 -85 -35 l-30 -17 35 6 c19 4 69 13 110 20 41 8 122 15 180 16 101 1 104 2 65 14 -59 20 -209 18 -275 -4z M7070 12041 c0 -37 47 -94 101 -121 20 -11 89 -29 153 -40 64 -11 141 -29 171 -41 71 -26 162 -94 199 -147 16 -23 31 -40 33 -38 8 8 -36 97 -69 138 -37 47 -133 113 -187 128 -20 6 -84 19 -143 30 -125 23 -182 46 -226 90 l-32 32 0 -31z M4798 11982 c-44 -26 -33 -30 41 -13 38 8 67 19 65 23 -9 14 -78 8 -106 -10z M5420 11960 c0 -5 9 -10 20 -10 28 0 113 -30 129 -46 13 -11 12 -14 -2 -20 -23 -8 -21 -26 3 -41 10 -7 24 -31 30 -52 l11 -40 31 18 c20 13 41 18 62 14 l31 -5 1 49 c1 26 3 57 5 68 3 16 -2 21 -27 23 -18 2 -40 12 -50 23 -20 22 -44 25 -44 5 0 -7 -6 -19 -14 -25 -10 -9 -16 -7 -26 5 -8 8 -26 22 -41 30 -32 16 -119 19 -119 4z M4437 11896 c-11 -24 -27 -38 -51 -46 -20 -6 -36 -14 -36 -17 0 -3 11 -18 25 -35 17 -20 25 -42 25 -69 0 -21 2 -39 5 -39 2 0 20 7 39 16 28 14 42 15 76 6 l42 -10 -6 41 c-5 32 -2 49 14 72 26 40 26 42 -15 49 -21 4 -47 19 -62 37 -14 16 -29 29 -33 29 -3 0 -14 -15 -23 -34z M4843 11879 c-128 -40 -260 -161 -304 -279 -22 -59 -41 -152 -29 -145 4 3 32 46 61 97 69 120 184 237 294 301 85 50 78 58 -22 26z M5461 11801 c41 -62 78 -151 99 -239 13 -58 9 -72 -15 -52 -13 11 -19 9 -39 -9 -31 -30 -62 -24 -58 9 2 14 5 57 5 95 2 56 -3 79 -22 118 -21 39 -61 90 -61 76 0 -2 10 -29 22 -59 18 -45 22 -75 22 -170 0 -89 3 -118 15 -126 10 -8 12 -23 8 -53 l-5 -43 31 5 c21 3 43 -2 63 -14 l31 -19 6 30 c9 41 24 38 31 -7 5 -30 21 -194 27 -273 4 -46 18 79 18 160 1 175 -33 377 -80 477 -27 56 -108 153 -129 153 -5 0 9 -26 31 -59z M4973 11814 c-23 -11 -37 -29 -49 -60 -20 -52 -13 -70 10 -26 9 17 34 46 58 66 44 38 35 47 -19 20z M5106 11738 c-34 -59 -46 -111 -46 -195 0 -39 -4 -75 -10 -78 -5 -3 -10 -18 -10 -32 0 -15 -12 -36 -30 -53 l-31 -29 30 -17 c17 -10 35 -31 40 -47 9 -24 13 -27 30 -17 11 5 23 15 26 20 3 6 22 10 42 10 30 0 34 3 27 18 -5 9 -9 38 -9 64 0 47 0 47 -35 50 l-35 3 2 50 c3 49 38 250 49 280 13 33 -17 12 -40 -27z M5250 11711 c0 -33 4 -62 9 -66 14 -8 24 57 16 94 -11 51 -25 35 -25 -28z M7477 11616 c-48 -18 -107 -63 -107 -82 0 -13 6 -12 33 5 85 53 210 47 312 -14 69 -42 76 -21 12 39 -65 63 -162 83 -250 52z M3708 11555 c-10 -13 -18 -33 -18 -44 0 -11 -5 -23 -11 -26 -14 -9 29 -55 51 -55 42 0 74 98 43 132 -22 24 -45 22 -65 -7z M9915 11448 c-21 -24 -47 -63 -58 -88 -11 -25 -25 -48 -31 -52 -17 -12 -49 2 -74 31 -18 21 -24 23 -29 11 -7 -18 -51 -61 -78 -76 -19 -11 -19 -13 8 -41 17 -18 27 -40 27 -59 0 -17 4 -34 9 -39 5 -6 23 -44 40 -85 l30 -75 0 45 c1 27 -7 62 -19 85 -24 48 -12 70 33 61 43 -9 54 -21 67 -77 7 -27 15 -51 20 -54 4 -2 10 46 13 108 6 116 31 227 68 299 11 22 18 42 16 44 -3 3 -21 -14 -42 -38z M7355 11472 c-20 -20 19 -72 80 -107 16 -10 17 -15 5 -49 -17 -52 -6 -56 33 -12 27 32 42 40 86 47 29 4 72 18 95 30 41 21 85 22 156 3 l25 -7 -20 22 c-45 51 -123 68 -209 46 -31 -8 -68 -22 -81 -31 -36 -23 -90 -11 -131 30 -19 19 -36 31 -39 28z M4600 11439 c-31 -27 -40 -29 -77 -24 -24 3 -47 4 -52 1 -5 -3 -1 -27 9 -53 16 -42 16 -52 4 -86 -20 -56 -19 -57 34 -57 38 0 57 -6 88 -30 21 -16 42 -30 46 -30 3 0 9 19 13 42 4 23 17 49 29 60 11 10 32 27 46 38 24 20 24 21 6 33 -47 30 -71 57 -81 92 -5 21 -15 40 -20 41 -6 2 -26 -10 -45 -27z M10100 11425 c-7 -8 -18 -15 -26 -15 -8 0 -12 -12 -11 -35 1 -23 7 -35 17 -35 8 0 24 -3 35 -6 15 -4 23 2 33 25 12 26 11 31 -11 55 -21 23 -26 24 -37 11z M3854 11402 c-22 -15 -24 -45 -4 -89 18 -41 22 -44 52 -41 29 3 33 7 36 37 5 51 -24 101 -58 101 -8 0 -20 -4 -26 -8z M7745 11265 c-37 -31 -118 -62 -182 -70 -37 -5 -57 -2 -85 13 -31 16 -38 17 -38 5 0 -23 47 -63 77 -64 95 -5 175 23 228 82 19 22 35 44 35 49 0 13 0 13 -35 -15z M9125 11270 c3 -6 -5 -10 -19 -10 -23 0 -25 -4 -24 -37 0 -21 -3 -48 -7 -60 -6 -20 -4 -23 17 -23 14 0 37 -9 51 -20 32 -25 34 -25 41 5 4 14 18 31 31 37 28 13 33 33 10 42 -17 6 -21 36 -5 36 20 0 126 -58 186 -103 33 -24 86 -73 116 -108 31 -35 68 -77 83 -94 l26 -30 -6 40 c-17 106 -116 224 -231 276 -97 44 -287 79 -269 49z M7867 11225 c-5 -16 -13 -50 -18 -74 -26 -116 -112 -201 -222 -219 -38 -7 -42 -10 -45 -40 -3 -27 0 -32 18 -32 37 0 145 57 190 101 64 62 92 131 88 221 -3 58 -5 67 -11 43z M10275 11201 c-75 -18 -131 -54 -202 -127 -41 -42 -72 -78 -70 -81 3 -2 40 17 83 43 43 26 103 58 133 71 110 45 252 21 377 -62 37 -25 69 -44 70 -42 2 2 -19 29 -46 59 -99 111 -235 165 -345 139z M9975 11146 c-9 -14 -15 -37 -13 -53 l3 -28 21 35 c11 19 23 43 27 53 10 27 -20 21 -38 -7z M10480 11015 c-21 -22 -44 -35 -59 -35 -45 0 -56 -14 -36 -44 20 -31 19 -32 -76 -40 -37 -4 -88 -13 -115 -21 -47 -14 -150 -72 -143 -80 3 -2 36 5 74 16 75 20 207 26 259 10 17 -5 55 -15 85 -20 128 -26 249 -114 320 -232 28 -46 32 -50 27 -24 -17 107 -95 221 -191 282 -51 32 -56 53 -20 77 34 22 32 31 -12 53 -22 10 -46 33 -59 55 l-20 38 -34 -35z M9350 10996 c0 -4 19 -15 43 -26 23 -10 61 -30 85 -45 50 -31 54 -18 9 31 -28 31 -41 37 -85 42 -29 2 -52 2 -52 -2z M10122 10977 c-35 -11 -122 -88 -122 -108 0 -6 14 -1 33 11 17 12 65 38 106 58 59 29 70 37 55 43 -24 10 -32 9 -72 -4z M3996 10951 c-15 -17 -16 -24 -5 -63 17 -57 26 -68 61 -68 35 0 42 16 34 75 -11 71 -53 97 -90 56z M9212 10801 c-46 -16 -87 -33 -90 -37 -7 -7 7 -5 143 20 44 9 125 16 180 17 97 1 99 1 60 14 -22 8 -78 14 -125 14 -69 1 -101 -5 -168 -28z M9451 10719 c-18 -11 -32 -22 -30 -24 2 -2 37 5 78 14 49 12 68 20 57 24 -32 12 -70 7 -105 -14z M10075 10700 c-3 -5 2 -10 13 -10 23 0 112 -27 132 -40 13 -8 13 -11 -2 -26 -16 -16 -15 -19 12 -51 17 -19 30 -45 30 -58 l0 -25 36 19 c25 14 47 18 67 14 30 -6 30 -6 23 30 -5 25 -2 46 9 66 l15 30 -37 7 c-21 3 -49 16 -62 28 -14 13 -25 17 -28 10 -2 -6 -10 -19 -17 -30 -13 -17 -16 -16 -50 14 -31 27 -45 32 -86 32 -27 0 -52 -4 -55 -10z M5363 10686 c-226 -43 -444 -156 -624 -324 l-85 -80 -100 -25 c-370 -94 -662 -338 -837 -700 -30 -62 -67 -147 -82 -189 -24 -68 -31 -79 -59 -88 -135 -44 -258 -314 -267 -583 -2 -67 11 -102 30 -81 5 5 11 72 14 149 5 157 24 236 83 341 37 68 103 134 134 134 23 0 24 -14 10 -75 -5 -22 -17 -91 -25 -154 -8 -63 -20 -120 -26 -127 -7 -8 -7 -19 -1 -31 5 -10 12 -88 15 -173 10 -254 60 -484 155 -708 34 -80 34 -84 23 -140 -17 -78 -25 -305 -13 -372 9 -53 10 -51 11 50 1 99 23 285 34 297 11 10 24 -7 87 -110 353 -587 1047 -1149 1543 -1251 42 -9 98 -16 125 -16 59 0 78 -16 61 -52 -6 -14 -25 -33 -42 -43 -73 -42 -58 -55 63 -55 85 0 99 -2 104 -17 20 -68 56 -249 56 -283 0 -22 6 -51 14 -63 22 -33 108 -427 101 -459 -4 -18 0 -36 13 -55 11 -15 26 -57 32 -93 12 -60 11 -68 -9 -105 -22 -41 -27 -70 -13 -78 4 -3 8 6 8 19 2 27 22 56 34 49 14 -9 22 -76 10 -90 -8 -10 -7 -16 6 -23 13 -7 33 -82 80 -288 35 -154 64 -290 64 -303 l0 -24 -112 6 c-62 4 -165 7 -229 7 l-116 0 -78 168 c-162 348 -251 477 -602 873 -281 318 -367 426 -496 624 -132 204 -280 503 -299 605 -5 30 -20 69 -32 85 -26 34 -121 236 -130 277 -3 14 -18 41 -33 58 -27 32 -27 32 -102 28 -100 -6 -207 -55 -268 -121 -24 -26 -43 -53 -43 -60 0 -23 22 -80 40 -107 23 -33 95 -204 110 -260 6 -25 25 -62 42 -83 55 -70 166 -333 232 -550 65 -214 88 -336 146 -772 60 -449 71 -522 105 -660 18 -77 40 -158 48 -181 8 -23 12 -46 9 -51 -4 -6 -67 -27 -141 -47 -277 -75 -446 -171 -472 -269 -22 -83 47 -159 215 -238 78 -36 89 -45 117 -92 52 -90 209 -413 209 -432 0 -9 9 -32 19 -49 53 -86 170 -456 214 -676 44 -220 52 -297 52 -515 0 -241 -4 -264 -95 -620 -94 -366 -119 -562 -89 -707 29 -139 124 -270 269 -368 134 -91 393 -198 614 -255 121 -30 199 -43 456 -76 303 -38 982 100 1245 254 219 127 356 278 400 442 23 85 22 246 -3 365 -11 52 -52 206 -91 341 -83 293 -109 418 -122 599 -10 148 0 372 27 563 32 229 115 586 146 626 11 14 18 40 18 66 0 37 121 421 150 475 5 10 52 39 103 63 124 60 174 98 199 153 26 61 17 96 -41 153 -136 136 -561 256 -1132 321 -110 13 -186 26 -191 33 -4 7 -8 39 -8 71 0 48 24 136 131 475 72 228 140 431 150 451 11 19 19 46 19 59 0 33 138 470 158 501 9 14 17 40 19 57 2 36 101 361 116 380 7 10 17 9 44 -2 47 -20 83 -19 83 0 0 9 -9 34 -20 56 -33 64 0 103 99 113 460 50 1128 662 1473 1349 162 323 232 612 232 957 1 318 -52 570 -174 828 -188 397 -499 669 -877 769 -130 34 -362 43 -499 19 -211 -36 -454 -147 -621 -282 -23 -19 -49 -34 -58 -34 -9 0 -49 30 -89 66 -196 183 -418 309 -654 371 -83 22 -122 26 -272 29 -118 2 -198 -1 -247 -10z m84 -222 c45 -14 113 -54 113 -66 0 -3 -15 -16 -34 -27 -40 -25 -112 -101 -128 -136 -12 -28 -23 -30 -65 -14 -15 6 -95 28 -177 49 -82 22 -151 41 -153 44 -18 18 160 119 276 157 59 20 95 18 168 -7z m2229 -109 c38 -16 154 -129 154 -150 0 -14 -22 -25 -51 -25 -43 0 -151 -60 -202 -113 -61 -63 -93 -123 -108 -203 -25 -132 12 -254 106 -353 160 -168 407 -171 571 -7 65 66 101 136 113 221 10 67 1 157 -19 211 l-11 27 43 -7 c24 -3 69 -16 101 -28 49 -18 65 -30 100 -77 22 -31 64 -87 93 -126 61 -83 134 -224 134 -261 0 -27 -45 -78 -79 -89 -11 -3 -24 -19 -31 -34 -14 -36 -6 -54 61 -131 123 -142 102 -258 -57 -326 -35 -15 -64 -31 -64 -36 0 -5 10 -28 21 -51 63 -122 97 -285 67 -315 -32 -32 -98 -2 -188 83 -80 76 -148 125 -175 125 -16 0 -50 -26 -107 -83 -65 -64 -96 -87 -139 -103 -47 -17 -59 -19 -74 -8 -17 12 -25 0 -101 -149 -72 -141 -86 -162 -108 -165 -15 -2 -28 2 -30 10 -47 158 -56 209 -56 326 0 136 0 135 -83 162 -68 21 -72 55 -21 178 40 96 46 163 21 223 -23 51 -37 59 -116 66 -39 3 -76 12 -81 19 -8 9 -1 37 25 100 41 102 41 104 16 104 -26 0 -38 17 -66 101 -29 85 -64 140 -102 160 -32 17 -150 17 -182 0 -21 -12 -24 -7 -77 101 -31 62 -73 145 -95 185 l-40 72 24 39 c69 108 326 288 467 326 76 20 298 21 346 1z m-1361 -31 c68 -41 214 -146 215 -154 0 -3 -43 -57 -95 -119 -115 -138 -193 -253 -258 -380 -27 -53 -50 -97 -52 -99 -4 -4 -105 144 -105 154 0 3 14 22 31 42 127 144 130 374 7 522 -28 34 -28 35 -10 51 14 11 46 16 113 17 92 3 95 2 154 -34z m-1878 -316 c-109 -264 -146 -378 -179 -558 -18 -97 -22 -152 -21 -350 0 -260 14 -366 75 -588 17 -62 28 -115 25 -118 -7 -7 -84 45 -109 73 -16 17 -88 163 -88 177 0 13 29 5 54 -15 50 -39 65 13 17 61 -16 16 -49 34 -73 40 -43 11 -45 13 -64 73 -12 35 -19 78 -16 99 4 34 6 36 48 43 24 3 44 11 44 16 0 5 -16 19 -35 30 -35 21 -35 22 -29 70 8 57 0 61 -45 23 -17 -14 -35 -23 -39 -20 -5 3 -12 25 -15 48 -3 24 -13 92 -21 151 -12 84 -13 119 -5 160 28 127 148 351 244 450 29 30 87 72 135 99 89 50 105 56 97 36z m2133 -3064 c66 -84 218 -223 272 -250 27 -13 48 -30 48 -38 0 -22 -43 -44 -91 -48 -67 -5 -56 -27 39 -76 49 -26 82 -49 82 -58 0 -25 -91 -303 -101 -309 -5 -4 -9 -16 -9 -29 0 -12 -7 -43 -16 -69 -14 -42 -21 -48 -67 -67 l-52 -20 43 6 c28 4 42 2 42 -6 0 -27 -116 -373 -127 -377 -6 -2 -28 13 -48 34 l-37 38 37 -67 37 -68 -27 -79 c-35 -106 -46 -114 -93 -69 -57 55 -100 70 -146 52 -27 -10 -18 -19 24 -21 63 -4 129 -45 110 -68 -8 -9 -4 -14 14 -19 13 -3 26 -15 29 -26 7 -28 -11 -90 -29 -97 -9 -3 -12 -13 -9 -24 8 -24 -135 -461 -149 -456 -13 4 -20 52 -37 275 -11 150 -11 175 2 183 8 5 50 9 94 10 71 1 75 2 40 10 -22 5 -65 8 -95 6 l-54 -2 -13 110 c-7 61 -15 153 -17 205 -3 52 -8 111 -11 130 -12 74 -43 472 -38 491 3 12 1 44 -6 72 -14 63 -42 377 -35 389 3 4 25 8 49 8 83 0 97 22 40 65 -70 54 -56 102 47 160 39 22 98 66 132 97 33 31 66 57 71 58 6 0 30 -25 55 -56z m-444 -326 c11 -11 24 -124 38 -318 2 -30 7 -81 11 -112 8 -56 7 -57 -31 -93 -39 -37 -39 -37 -7 -19 21 11 36 15 42 9 10 -12 45 -384 37 -393 -4 -3 -27 4 -51 16 -63 30 -64 28 -8 -16 69 -55 70 -58 78 -149 8 -94 6 -96 -52 -58 -44 31 -70 29 -91 -5 -11 -18 -12 -21 -2 -12 31 27 120 3 120 -34 0 -15 -38 -34 -71 -34 -10 0 -28 9 -40 21 l-21 21 4 -23 c6 -39 31 -46 93 -24 65 22 69 19 79 -53 7 -54 -2 -68 -54 -77 -32 -5 -45 -2 -66 14 -32 25 -89 27 -141 6 -20 -9 -40 -12 -44 -8 -4 5 -14 42 -23 83 -9 41 -19 83 -22 93 -4 11 6 28 27 48 l33 31 -36 -7 c-36 -7 -37 -6 -46 32 -32 123 -64 284 -59 289 3 4 27 -6 52 -20 25 -15 45 -25 45 -22 0 3 -26 25 -58 50 -58 44 -58 44 -76 128 -10 46 -22 99 -27 118 -25 94 -37 166 -30 173 5 5 28 11 51 14 59 8 61 27 6 77 -60 56 -62 86 -6 121 22 14 44 25 48 25 5 0 17 -18 27 -41 21 -45 58 -80 116 -110 37 -19 39 -22 39 -68 0 -59 -28 -98 -89 -126 -54 -24 -47 -29 16 -10 67 20 85 43 94 117 6 52 4 69 -16 112 -12 28 -34 62 -49 75 -33 31 -33 22 -1 -25 14 -20 25 -41 25 -45 0 -32 -80 23 -105 72 -28 53 -20 82 36 134 l51 48 71 -6 c39 -3 76 -12 83 -19z m-20 -1359 c3 -6 -8 -24 -27 -39 l-33 -29 25 -5 c67 -15 89 -10 89 19 0 26 41 55 79 55 25 0 24 7 56 -353 l26 -288 -22 -67 c-12 -37 -26 -73 -32 -79 -5 -8 -32 -13 -61 -13 -29 0 -59 6 -68 13 -17 14 -144 560 -133 577 4 6 19 4 42 -5 46 -19 50 -19 29 4 -10 11 -31 23 -46 26 -38 8 -46 20 -59 87 -11 53 -11 58 10 82 18 21 32 26 70 26 26 0 51 -5 55 -11z m34 -49 c0 -5 -7 -10 -16 -10 -8 0 -12 5 -9 10 3 6 10 10 16 10 5 0 9 -4 9 -10z m-1822 -959 c17 -53 16 -53 -25 -47 -56 9 -84 -10 -108 -74 -19 -51 -26 -58 -95 -97 -41 -24 -82 -43 -92 -43 -22 0 -88 63 -88 84 0 67 85 128 258 186 121 40 136 39 150 -9z m300 -413 c18 -18 14 -38 -7 -38 -23 0 -35 15 -27 35 7 18 18 19 34 3z M6662 6645 c-52 -44 -83 -157 -63 -232 6 -22 29 -60 51 -84 l40 -44 -31 51 c-63 106 -58 201 18 302 29 38 25 41 -15 7z M6317 5403 c-4 -3 -7 -15 -7 -25 0 -21 37 -38 78 -37 25 0 25 1 -8 12 -19 7 -39 22 -46 34 -6 13 -14 20 -17 16z M9095 10640 c-9 -17 -32 -38 -53 -48 -20 -9 -39 -18 -41 -19 -2 -1 10 -18 28 -38 22 -25 31 -46 31 -70 0 -41 -1 -40 44 -18 29 13 42 14 71 6 l35 -11 0 45 c0 28 8 58 20 78 l20 32 -39 7 c-26 4 -47 16 -64 36 -14 16 -28 30 -31 30 -3 0 -13 -14 -21 -30z M9510 10621 c-30 -10 -75 -28 -100 -41 -69 -35 -163 -132 -199 -204 -30 -62 -56 -156 -49 -177 2 -7 28 29 57 79 91 155 163 229 302 313 86 51 82 60 -11 30z M10085 10590 c5 -8 23 -37 40 -65 42 -68 71 -138 86 -212 12 -60 7 -92 -11 -64 -6 11 -13 10 -35 -8 -15 -11 -37 -21 -47 -21 -18 0 -19 4 -12 53 12 75 7 132 -17 181 -22 47 -71 101 -54 61 28 -70 36 -126 32 -227 -2 -59 0 -105 4 -103 16 11 31 -26 25 -60 -7 -36 -7 -36 27 -33 19 1 46 -6 60 -15 25 -16 25 -16 37 16 10 28 12 30 21 15 5 -10 15 -81 21 -158 16 -183 32 -169 31 27 -1 163 -26 338 -64 437 -22 60 -86 147 -129 175 -20 13 -23 14 -15 1z M9635 10556 c-40 -17 -55 -37 -61 -83 l-6 -38 22 35 c12 19 38 50 58 67 39 35 36 40 -13 19z M2759 10487 l-14 -62 -68 -3 c-37 -2 -67 -6 -67 -11 0 -4 23 -20 51 -35 28 -16 52 -33 55 -40 2 -6 -4 -37 -15 -69 -11 -31 -17 -57 -14 -57 3 0 27 19 55 41 l49 42 53 -37 c29 -20 55 -36 58 -36 4 0 -5 28 -20 61 l-26 61 25 22 c13 11 38 31 54 44 l30 23 -70 -3 -70 -3 -20 57 c-11 31 -23 59 -26 62 -3 3 -12 -22 -20 -57z M9778 10503 c-41 -47 -76 -183 -63 -243 3 -15 -1 -39 -10 -56 -8 -16 -15 -36 -15 -45 0 -8 -11 -26 -25 -39 -31 -29 -31 -34 1 -48 14 -7 30 -26 36 -42 12 -36 13 -36 45 -10 14 11 39 20 56 20 26 0 28 2 22 23 -5 12 -8 41 -7 65 1 42 1 42 -35 42 l-36 0 7 72 c3 39 16 116 27 171 11 54 19 101 16 103 -2 2 -11 -4 -19 -13z M9910 10452 c0 -46 4 -71 10 -67 13 8 13 105 0 125 -7 10 -10 -7 -10 -58z M2196 10265 c-18 -18 -30 -54 -22 -63 4 -3 23 0 43 7 55 20 123 16 174 -9 24 -13 83 -62 131 -109 94 -94 97 -95 31 -10 -110 142 -301 240 -357 184z M3221 10210 c-122 -56 -235 -218 -275 -397 -38 -168 -31 -321 24 -607 33 -168 46 -196 91 -196 21 0 30 4 26 13 -21 56 -82 256 -97 321 -44 185 -45 378 -4 516 55 186 188 333 300 333 85 0 154 -87 154 -194 0 -89 -25 -146 -96 -216 -41 -42 -56 -63 -45 -63 21 0 74 38 101 73 59 74 93 210 76 301 -8 41 -55 100 -97 122 -39 20 -106 17 -158 -6z M9254 10179 c-32 -25 -45 -30 -74 -25 -55 9 -64 -3 -44 -53 16 -42 14 -64 -12 -128 -4 -10 9 -13 48 -13 45 0 59 -5 88 -30 19 -16 38 -29 42 -30 4 0 13 20 19 45 9 34 21 53 48 72 20 15 40 30 44 34 5 4 -11 21 -36 37 -36 25 -47 40 -56 77 -6 25 -15 45 -20 45 -4 0 -26 -14 -47 -31z M2130 10027 c0 -2 9 -30 20 -62 11 -32 20 -60 20 -62 0 -2 -26 -20 -57 -41 l-58 -37 70 -5 70 -5 17 -60 c9 -33 17 -62 18 -65 1 -3 12 24 23 60 l22 65 68 -3 c37 -2 67 -2 67 1 0 3 -22 21 -50 41 -27 20 -50 42 -50 50 0 7 9 35 21 61 11 25 18 49 16 52 -3 3 -27 -11 -53 -31 -26 -20 -50 -36 -55 -36 -4 0 -29 18 -54 40 -43 37 -55 45 -55 37z M2715 9783 c16 -41 55 -207 72 -309 10 -60 19 -99 21 -87 8 53 -75 413 -95 413 -3 0 -2 -8 2 -17z M2075 9621 c-94 -23 -125 -99 -90 -219 29 -97 132 -195 233 -222 90 -23 136 11 130 97 l-3 48 -13 -30 c-19 -46 -26 -57 -55 -79 -25 -19 -27 -19 -72 -1 -55 21 -144 104 -174 163 -28 54 -36 120 -19 152 7 13 29 35 48 48 51 35 126 26 233 -26 106 -51 185 -117 270 -222 71 -89 97 -107 97 -70 0 26 -116 150 -201 215 -139 108 -296 167 -384 146z M9294 9518 c-32 -36 -17 -128 20 -128 22 0 59 48 62 82 5 61 -45 88 -82 46z M3315 9478 c-7 -23 -17 -34 -32 -36 -30 -4 -29 -18 2 -26 21 -5 25 -12 25 -43 l0 -36 25 27 c21 23 28 25 46 16 27 -15 34 -7 17 19 -11 17 -10 25 5 51 l18 30 -32 -7 c-25 -5 -35 -2 -48 16 l-17 22 -9 -33z M9632 9228 c-17 -17 -15 -51 5 -93 16 -33 20 -36 58 -33 38 3 40 5 43 37 3 33 -13 78 -33 93 -16 12 -60 9 -73 -4z M1900 9149 c0 -31 -15 -45 -50 -51 l-25 -4 28 -12 c28 -12 31 -19 27 -62 l-2 -25 26 25 c23 21 30 23 47 11 27 -16 34 -9 19 19 -10 18 -8 26 11 46 l22 24 -36 0 c-20 0 -37 4 -37 8 0 5 -7 17 -15 28 -14 18 -14 18 -15 -7z M2264 8979 c-70 -27 -144 -92 -144 -127 l0 -27 19 31 c80 132 287 161 489 69 64 -29 67 -25 7 11 -111 64 -268 83 -371 43z M3000 8900 c0 -30 -17 -50 -42 -50 -25 0 -23 -13 5 -25 15 -7 23 -20 25 -43 l3 -33 19 23 c16 21 21 22 50 11 28 -11 31 -10 25 5 -17 40 -16 54 1 74 19 20 19 20 -12 14 -27 -6 -35 -3 -52 21 l-21 28 -1 -25z M2283 8678 c-21 -20 -23 -21 -48 -4 l-27 18 7 -32 c6 -25 2 -37 -17 -57 l-23 -25 35 4 c30 3 36 -1 49 -27 l15 -30 8 33 c7 26 15 34 40 39 l31 6 -26 19 c-21 16 -25 25 -20 49 7 35 4 36 -24 7z M2575 8635 c-51 -18 -91 -62 -105 -116 -30 -109 42 -220 190 -294 61 -31 168 -41 191 -17 10 10 3 12 -37 12 -160 0 -294 114 -294 251 0 251 390 186 622 -103 98 -121 172 -270 244 -490 21 -65 43 -118 49 -118 20 0 35 24 35 56 0 48 -144 353 -220 464 -95 140 -223 259 -335 311 -122 57 -255 74 -340 44z M952 8464 c-22 -25 -49 -65 -59 -89 -10 -25 -24 -47 -31 -50 -17 -6 -53 13 -70 37 -18 25 -31 23 -42 -7 -5 -14 -26 -35 -45 -46 -19 -12 -35 -24 -35 -28 0 -4 11 -18 25 -31 18 -17 25 -34 25 -61 0 -20 4 -39 9 -41 5 -1 23 -37 40 -78 l30 -75 0 45 c1 27 -7 62 -19 85 -24 48 -12 70 33 61 43 -9 54 -21 67 -77 7 -27 15 -51 20 -54 4 -2 10 48 13 113 5 115 25 198 71 305 9 20 14 37 12 37 -2 0 -22 -20 -44 -46z M1129 8441 c-21 -12 -27 -22 -26 -48 1 -23 6 -33 16 -33 9 0 25 -3 36 -6 15 -4 23 2 33 25 12 26 11 31 -10 53 -22 23 -25 24 -49 9z M9799 8394 c-10 -13 -10 -24 0 -62 6 -25 17 -52 23 -59 14 -18 53 -16 68 2 16 19 5 99 -16 120 -20 20 -58 19 -75 -1z M3432 8354 c-19 -21 -5 -54 23 -54 30 0 40 42 13 59 -22 13 -20 14 -36 -5z M165 8290 c4 -6 -5 -10 -20 -10 -23 0 -25 -3 -24 -37 1 -21 -2 -48 -6 -60 -6 -20 -4 -23 17 -23 14 0 37 -9 51 -20 30 -24 37 -25 37 -4 0 8 14 28 32 44 l31 29 -24 20 c-42 34 1 36 67 3 86 -44 173 -111 236 -183 31 -35 68 -77 83 -94 l26 -30 -6 40 c-17 104 -115 223 -229 276 -94 44 -290 79 -271 49z M3064 8242 c-29 -4 -36 -36 -14 -55 17 -14 20 -14 33 1 20 24 8 58 -19 54z M1299 8216 c-70 -19 -131 -59 -198 -132 -34 -37 -59 -69 -57 -71 2 -2 39 17 82 43 43 26 103 58 133 71 110 45 252 21 377 -62 37 -25 69 -44 70 -42 8 8 -100 117 -143 145 -54 34 -141 62 -187 61 -17 0 -52 -6 -77 -13z M1015 8166 c-9 -14 -15 -37 -13 -53 3 -27 5 -25 31 25 21 40 24 52 12 52 -8 0 -22 -11 -30 -24z M2453 8101 c-17 -27 4 -55 32 -44 20 8 33 53 16 53 -5 0 -15 2 -23 5 -7 3 -18 -3 -25 -14z M1520 8035 c-25 -26 -42 -35 -66 -35 -36 0 -52 -16 -35 -33 6 -6 11 -19 11 -29 0 -14 -8 -18 -42 -18 -100 -1 -252 -51 -289 -96 -13 -16 -12 -17 6 -10 69 26 142 37 223 33 232 -12 372 -77 474 -221 l50 -71 -7 40 c-16 94 -87 193 -181 252 -50 32 -55 55 -19 79 33 22 32 29 -12 51 -22 10 -46 33 -59 55 l-20 38 -34 -35z M390 8016 c0 -4 19 -15 43 -26 23 -10 61 -30 85 -45 50 -31 54 -18 9 31 -28 31 -41 37 -85 42 -29 2 -52 2 -52 -2z M1152 7994 c-17 -8 -50 -32 -72 -54 -43 -43 -55 -73 -17 -46 12 9 60 35 106 58 66 33 80 43 65 49 -27 11 -45 9 -82 -7z M2695 7936 c-83 -26 -154 -78 -197 -145 -27 -44 -38 -101 -18 -101 6 0 10 9 10 20 0 35 37 96 81 134 74 63 218 102 339 93 43 -4 55 -3 35 2 -47 13 -206 11 -250 -3z M290 7836 c-25 -7 -65 -23 -90 -34 -45 -22 -45 -22 -10 -17 19 3 73 12 119 20 46 8 127 15 180 16 94 1 95 1 56 14 -50 17 -196 17 -255 1z M2718 7770 c-16 -10 -14 -50 2 -50 5 0 14 -2 22 -5 7 -3 18 5 24 19 9 19 8 25 -7 35 -22 13 -20 13 -41 1z M493 7740 c-18 -11 -33 -22 -33 -24 0 -2 24 2 53 10 28 7 63 14 77 14 20 0 22 2 10 10 -24 16 -73 11 -107 -10z M1115 7720 c-3 -5 2 -10 13 -10 23 0 112 -27 132 -39 12 -8 12 -12 -3 -29 -16 -18 -16 -20 8 -42 14 -13 28 -38 31 -57 l6 -33 33 20 c23 14 41 18 63 14 31 -6 31 -6 31 37 -1 24 1 55 3 69 2 21 -1 25 -27 28 -16 2 -41 13 -54 25 -14 13 -25 18 -28 11 -2 -6 -10 -19 -17 -30 -13 -17 -16 -16 -50 14 -31 27 -45 32 -86 32 -27 0 -52 -4 -55 -10z M132 7656 c-13 -22 -33 -38 -56 -46 -20 -6 -36 -14 -36 -17 0 -3 14 -21 30 -40 21 -23 30 -44 30 -68 0 -40 1 -40 41 -19 21 11 43 13 70 9 l39 -7 0 42 c0 25 8 56 20 75 l20 33 -40 7 c-26 4 -48 16 -64 36 -14 16 -27 29 -29 29 -3 0 -14 -15 -25 -34z M2931 7671 c-22 -15 -6 -27 56 -41 153 -34 331 -111 426 -185 50 -39 135 -136 189 -215 33 -49 18 5 -19 69 -87 146 -273 284 -470 349 -74 25 -163 36 -182 23z M555 7645 c-118 -37 -239 -131 -294 -229 -34 -59 -64 -156 -59 -188 2 -18 13 -6 49 57 100 172 179 254 324 335 73 41 64 52 -20 25z M1126 7608 c4 -7 22 -35 39 -63 42 -68 71 -138 86 -212 12 -60 7 -92 -11 -64 -6 11 -13 10 -35 -8 -15 -11 -37 -21 -47 -21 -18 0 -19 5 -13 53 12 80 7 133 -16 181 -22 47 -70 101 -55 61 29 -72 38 -136 34 -232 -3 -56 -1 -100 3 -98 16 10 30 -25 23 -60 l-6 -36 35 3 c19 1 46 -5 60 -15 25 -16 25 -16 37 16 10 28 12 30 21 15 5 -10 15 -83 21 -163 7 -79 14 -143 16 -140 14 13 20 183 11 285 -20 230 -60 363 -134 448 -37 43 -86 78 -69 50z M675 7576 c-39 -17 -54 -35 -60 -77 l-6 -34 18 25 c9 14 35 42 57 63 42 39 40 44 -9 23z M9037 7550 c-79 -25 -159 -80 -202 -138 -43 -59 -75 -156 -75 -231 1 -67 14 -51 23 27 8 71 50 145 107 187 72 53 143 85 188 85 48 0 72 20 72 61 0 25 -4 29 -27 28 -16 0 -54 -8 -86 -19z M818 7523 c-41 -47 -76 -177 -66 -245 3 -17 -1 -43 -8 -57 -8 -14 -14 -33 -14 -42 0 -8 -11 -26 -25 -39 -31 -29 -31 -34 1 -48 14 -7 30 -26 36 -42 12 -35 19 -37 43 -10 11 13 31 20 53 20 31 0 34 2 27 23 -5 12 -8 41 -7 65 1 42 1 42 -35 42 l-36 0 6 68 c3 37 15 114 27 171 11 57 19 105 17 107 -2 2 -11 -4 -19 -13z M951 7472 c-1 -46 3 -71 9 -67 12 7 12 92 0 120 -6 14 -9 -3 -9 -53z M294 7199 c-34 -27 -44 -30 -80 -24 -24 3 -45 2 -48 -4 -4 -5 1 -29 10 -52 18 -42 17 -44 -13 -126 -4 -10 10 -13 49 -13 45 0 59 -5 88 -30 19 -16 38 -29 42 -30 4 0 13 20 19 45 9 34 21 53 48 72 20 15 40 30 44 34 5 4 -11 21 -36 37 -35 25 -47 41 -57 76 -7 26 -16 46 -20 46 -4 0 -25 -14 -46 -31z M9040 7214 c-71 -19 -125 -57 -155 -108 -13 -22 -22 -42 -21 -44 2 -2 24 12 49 31 62 48 171 81 247 75 49 -4 65 -9 91 -34 l31 -29 -4 35 c-2 29 -10 39 -43 57 -54 30 -127 36 -195 17z M9230 7039 c-42 -42 -51 -46 -110 -52 -35 -4 -82 -16 -105 -27 -52 -25 -98 -25 -154 0 -24 11 -46 19 -48 17 -10 -10 81 -77 119 -88 66 -20 175 -15 231 10 45 19 50 20 87 5 43 -17 90 -65 90 -92 0 -15 2 -15 10 -2 26 40 4 87 -64 136 -29 21 -29 21 -16 72 6 28 10 55 8 59 -1 4 -23 -13 -48 -38z M8864 6815 c12 -48 58 -98 121 -129 82 -41 187 -43 260 -5 45 22 95 76 95 101 0 5 -15 0 -33 -11 -120 -74 -299 -60 -403 32 l-47 42 7 -30z M8894 6635 c9 -67 65 -165 128 -227 73 -72 142 -107 283 -142 61 -16 137 -41 171 -57 57 -26 134 -95 146 -130 3 -8 9 -11 13 -7 4 4 2 35 -4 69 -20 115 -81 160 -279 204 -62 14 -136 34 -163 44 -108 42 -206 127 -271 236 l-30 50 6 -40z M2752 6627 c-39 -41 -21 -127 26 -127 16 0 47 50 44 71 -2 10 2 20 8 24 8 5 4 15 -11 31 -28 30 -40 30 -67 1z M1572 6377 l-22 -23 24 -23 c28 -26 54 -22 74 10 11 18 11 24 -4 40 -23 25 -46 24 -72 -4z M2730 6211 c-178 -57 -275 -176 -287 -348 -3 -57 -2 -74 6 -63 6 8 11 27 11 41 0 65 31 134 84 185 64 63 164 114 221 114 50 0 65 13 65 57 0 39 -15 42 -100 14z M8319 5988 c-31 -29 -31 -90 0 -122 l21 -20 26 25 c35 36 42 102 11 124 -28 19 -30 19 -58 -7z M2749 5879 c-80 -12 -162 -67 -195 -131 -21 -40 -18 -42 24 -9 53 43 144 80 212 88 72 7 100 0 140 -34 l31 -26 -3 34 c-3 29 -9 37 -48 55 -54 27 -100 33 -161 23z M2910 5696 c-40 -38 -54 -44 -105 -50 -33 -4 -80 -16 -104 -27 -55 -24 -97 -24 -162 0 l-51 20 15 -22 c8 -12 40 -35 72 -52 50 -26 69 -30 139 -30 61 0 92 5 127 21 41 19 50 20 85 8 43 -14 94 -64 94 -92 0 -15 2 -15 10 -2 23 35 11 67 -41 114 l-52 46 13 44 c7 25 11 49 9 55 -2 5 -24 -9 -49 -33z M8646 5675 c-3 -13 1 -42 10 -65 15 -38 18 -40 60 -40 43 0 44 1 44 32 0 17 -5 47 -12 65 -11 30 -16 33 -54 33 -36 0 -43 -3 -48 -25z M2540 5483 c0 -37 62 -106 125 -138 51 -26 69 -30 139 -30 68 0 88 4 126 25 38 22 90 79 90 100 0 4 -28 -7 -62 -24 -56 -28 -71 -31 -153 -31 -105 1 -166 23 -227 83 -34 32 -38 34 -38 15z M2575 5283 c18 -97 125 -237 227 -296 26 -15 107 -43 180 -62 73 -20 156 -47 185 -61 47 -23 133 -104 133 -125 0 -5 5 -9 11 -9 7 0 9 17 4 53 -18 133 -71 172 -300 223 -191 43 -321 125 -401 255 -20 32 -39 59 -42 59 -2 0 -1 -17 3 -37z M1553 5103 c-31 -12 -3 -120 33 -129 57 -14 81 39 48 104 -15 31 -44 40 -81 25z M8826 4864 c-20 -20 -20 -50 2 -94 19 -38 52 -50 79 -29 11 10 14 24 9 58 -10 71 -53 102 -90 65z M7880 4842 c0 -38 46 -95 101 -122 21 -11 82 -27 136 -35 54 -9 119 -22 144 -30 100 -29 196 -94 250 -168 16 -22 29 -33 29 -25 0 31 -53 118 -99 161 -72 67 -138 96 -292 128 -149 30 -187 45 -236 92 l-33 31 0 -32z M730 4794 c0 -44 46 -101 104 -128 29 -14 95 -31 152 -40 181 -28 288 -81 366 -179 26 -33 38 -43 38 -30 0 32 -57 119 -106 162 -67 58 -132 86 -277 116 -151 31 -185 44 -237 91 l-40 36 0 -28z M272 4497 c-28 -29 -27 -38 3 -60 28 -20 57 -11 75 23 8 15 5 23 -16 39 -33 26 -36 26 -62 -2z M8298 4420 c-40 -12 -97 -49 -108 -70 -19 -35 -11 -42 23 -22 40 25 130 52 172 52 49 0 131 -28 163 -55 39 -33 46 -31 28 4 -21 39 -69 78 -114 91 -43 12 -125 12 -164 0z M1172 4370 c-71 -15 -142 -69 -142 -108 0 -10 7 -8 28 6 102 73 276 67 361 -11 l23 -22 -7 25 c-24 80 -150 133 -263 110z M8164 4275 c-10 -26 15 -66 59 -94 37 -24 37 -25 31 -74 l-7 -50 42 45 c34 37 49 46 87 52 25 3 68 18 95 32 48 27 67 28 139 8 l25 -7 -24 26 c-51 56 -143 60 -251 11 -60 -27 -60 -27 -106 -9 -29 11 -52 28 -64 48 -17 27 -20 29 -26 12z M1018 4223 c-8 -32 10 -62 57 -95 32 -23 44 -37 39 -48 -4 -8 -9 -28 -11 -45 l-4 -30 33 36 c39 44 67 59 106 59 16 0 51 12 78 26 50 26 106 29 159 9 20 -8 20 -8 0 14 -37 42 -73 54 -151 49 -49 -3 -84 -12 -109 -26 -20 -12 -47 -22 -61 -22 -42 0 -93 27 -112 60 -16 26 -20 28 -24 13z M457 4093 c-12 -11 -8 -49 8 -87 15 -34 18 -37 53 -34 34 3 37 6 40 37 2 18 -1 38 -7 44 -6 6 -11 19 -11 29 0 14 -8 18 -38 18 -21 0 -42 -3 -45 -7z M8560 4069 c-74 -63 -211 -90 -278 -55 -34 17 -34 17 -30 -6 8 -56 134 -76 223 -34 47 21 125 94 125 116 0 13 0 13 -40 -21z M8678 3994 c-3 -33 -15 -78 -26 -100 -40 -77 -135 -146 -221 -160 -39 -6 -41 -9 -41 -40 0 -44 15 -44 105 0 117 56 187 144 200 252 3 27 2 63 -3 79 -8 27 -9 24 -14 -31z M1397 4004 c-89 -62 -204 -81 -264 -44 -23 14 -33 16 -33 7 0 -27 32 -55 75 -66 55 -14 103 -7 166 25 44 22 109 84 109 104 0 12 4 14 -53 -26z M3090 3995 c-29 -34 12 -135 54 -135 34 0 50 24 43 66 -12 72 -64 109 -97 69z M1538 3974 c-5 -4 -8 -23 -8 -43 0 -20 -11 -58 -24 -86 -39 -83 -114 -140 -219 -166 -46 -11 -48 -13 -45 -43 3 -27 6 -31 28 -28 14 2 53 18 88 34 84 41 156 120 178 193 15 53 16 154 2 139z M620 3855 c-15 -17 -6 -79 16 -112 17 -26 55 -30 74 -8 15 18 7 77 -15 111 -18 27 -56 32 -75 9z M3239 3809 c-11 -22 2 -87 24 -116 13 -18 52 -16 67 2 13 16 7 83 -11 116 -14 27 -65 25 -80 -2z M3242 3557 l-22 -23 28 -27 28 -27 27 28 c32 33 34 48 8 62 -30 15 -45 12 -69 -13z M2570 3417 c0 -52 63 -111 147 -137 36 -11 74 -20 84 -20 38 0 170 -31 216 -51 63 -27 134 -82 174 -135 18 -24 34 -42 37 -40 7 8 -38 98 -69 137 -66 83 -158 128 -316 155 -127 21 -196 48 -239 90 l-34 35 0 -34z M3000 3001 c-44 -14 -84 -38 -109 -65 -34 -36 -23 -39 34 -11 84 43 216 30 306 -29 22 -15 39 -21 39 -15 0 23 -52 80 -92 100 -45 23 -138 33 -178 20z M2850 2831 c0 -18 48 -68 87 -89 16 -9 16 -14 4 -47 -16 -46 -5 -58 21 -22 24 33 67 57 104 57 14 0 54 12 87 27 59 27 60 27 118 12 33 -9 59 -12 59 -8 0 4 -16 21 -37 36 -30 23 -48 28 -109 31 -62 4 -80 0 -133 -23 -55 -25 -66 -27 -99 -17 -21 7 -49 23 -62 37 -28 30 -40 32 -40 6z M3256 2651 c-26 -29 -131 -72 -190 -78 -38 -4 -61 -1 -85 12 -40 20 -49 14 -27 -19 50 -78 250 -36 309 64 22 37 18 49 -7 21z M3361 2570 c-30 -148 -114 -240 -244 -264 -36 -7 -38 -9 -35 -39 2 -26 7 -31 23 -29 38 6 141 59 178 92 74 65 114 173 98 265 l-7 40 -13 -65z M7477 2403 c-23 -26 -63 -111 -77 -163 -25 -93 10 -219 79 -284 36 -34 39 -30 11 16 -33 57 -51 121 -51 184 0 72 18 121 67 181 35 42 36 45 19 64 -22 23 -28 24 -48 2z M7746 2235 c-46 -16 -101 -66 -127 -117 -24 -47 -34 -111 -20 -134 10 -18 10 -18 11 -1 0 21 43 109 74 150 25 34 94 77 124 77 27 0 28 16 3 30 -23 12 -17 12 -65 -5z M7860 2150 c0 -47 -13 -77 -45 -102 -12 -9 -35 -42 -51 -72 -24 -46 -39 -61 -84 -86 l-55 -29 53 -1 c80 0 149 50 202 148 30 56 82 80 138 64 24 -8 32 -7 32 3 0 23 -25 34 -90 37 -63 3 -64 4 -72 35 -13 49 -28 50 -28 3z M8051 1993 c-18 -50 -95 -130 -154 -159 -26 -14 -74 -28 -105 -32 -55 -8 -56 -8 -32 -22 37 -21 118 -17 167 9 82 41 152 135 153 203 0 41 -15 41 -29 1z M8425 1818 c-16 -6 -70 -33 -120 -59 -49 -26 -114 -54 -144 -63 -69 -20 -183 -21 -247 -1 -59 18 -57 18 -49 5 13 -21 105 -60 167 -69 101 -17 171 0 333 77 129 62 145 67 206 67 59 0 65 2 56 17 -6 9 -22 21 -34 27 -30 14 -128 13 -168 -1z`
})
group.add(path)
resultGroup.add(group)
}
四、详细了解 LeaferJS
LeaferJS 提供了丰富的功能,可通过官网教程示例进一步学习。
官网教程主要分为六个主要部分:
入门教程:基础、进阶、常用插件、构成,方便快速入门。
元素组件:应用、组、图形、路径、图像、文字、自定义元素。
元素样式与功能: 布局、外观、交互、动画、数据、高级功能。
事件类型:交互、元素、平台事件。
类库: 数学、列表。
插件: 官网、社区插件。
为了聚焦主要知识,每篇文档只展示了关键属性方法,可通过点击 继承 或 归属 文档溯源。
重点关注功能
动画功能
可以通过文章了解 LeaferJS 能实现哪些动画、游戏效果。