【问题标题】:HTML/JS/CSS Isometric Grid with semi-transparent click-through tiles带有半透明点击磁贴的 HTML/JS/CSS 等距网格
【发布时间】:2010-02-14 00:15:31
【问题描述】:
【问题讨论】:
标签:
javascript
html
transparent
tiles
isometric
【解决方案1】:
您无法使用 tile 元素本身来执行此操作,因为它们始终是矩形的。您必须在包含所有图块的父元素中监视鼠标位置,并手动计算出哪些像素对应于哪些图块。
对于位置到平铺的等距映射,这很容易,但这会将点位置视为“地面上”的位置;它不允许您使用图像的蒙版数据来命中测试对象,例如在地面前渲染的树木。 (无论如何你都想这样做吗?目前有些树木完全遮住了它们下面的地砖。)
如果您确实需要对图像掩码进行测试,您可以:
一个。编写脚本以从图像中提取掩码数据,并将其作为编码的二进制位掩码包含在 JavaScript 源中。我已经为 JavaScript 游戏中的碰撞检测做了这个,但它并不好玩,因为它会占用大量空间,并且您必须在更新图形时重新导出数据。
b.使用<canvas> 和getImageData 提取图像数据进行测试。考虑到您已经失去了 IE 用户,此时您也可以考虑使用画布进行渲染。
【解决方案3】:
由于这是一款基于图块的游戏,也许您应该使用一个简单的公式来确定用户正在与哪个图块进行交互。使用一些 javascript 来确定点击或其他操作的坐标。然后做一些算术来确定要对哪个图块进行操作。这有意义吗?
否则,我同意 bobince。你的方法可能不会很容易。