dom-layer、image-layer、tile-layer、tilemap 分别代表什么呢?或者说他们的职能?
Opened this issue · 5 comments
syks0121 commented
不好意思打扰您了,我是个刚学JS的菜鸟,想学习您的代码进而学会如何布置瓦片地图,但是基础实在薄弱,能帮忙指导一下吗?想了解大概的框架和思路
qiuxiang commented
tilemap 是整个地图的封装,也是入口,实现手势识别,统筹各个 layer 并进行绘制。tilemap 本身不绘制任何东西,各个 layer 才是提供具体的绘制,layer 可以理解为图层。tilemap 是按顺序调用各个 layer 的 draw 方法:
Lines 190 to 213 in 2ba0bc6
qiuxiang commented
整个地图都是用 canvas 来绘制的,上面也提到了,tilemap.draw() 是总的绘制,而具体绘制是由各个 layer.draw() 提供的。
qiuxiang commented
qiuxiang commented
tile-layer 提供瓦片图绘制。
marker-layer 提供标记绘制。
image-layer 提供贴图绘制,和 marker-layer 的区别是 image 随地图一起缩放,而 marker 固定大小。
dom-layer 是把一个 dom 固定到地图上的某个位置。
qiuxiang commented
最好的方法是看从例子入手,然后结合调试,比如这个项目的例子:
https://github.com/qiuxiang/canvas-tilemap/blob/main/example/index.ts
这里有一个更复杂的例子,用到了所有的功能,目前这个库就是为这个项目开发的:
https://github.com/kongying-tavern/lightweight-genshin-maps