tilemap图块问题
-
如何实现在一个Tilemap组件中鼠标左键其中哪一图块就将其点击的一个图块删除掉(这Tilemap组件中有多个图块)
-
首先是选中鼠标操作组件,然后用点击对象时的条件,选择tilemap对象(也就是点中tilemap对象时),然后动作是tilemap里的擦除图块的动作,坐标因为要按格子编号计算,所以填 tilemap对象名.positiontotilex(鼠标操作.x) 和 tilemap对象名.positiontotiley(鼠标操作.y) 就行
-
如何实现在一个Tilemap组件中鼠标左键其中哪一图块就将其点击的一个图块删除掉(这Tilemap组件中有多个图块)
对了,如何判定一个比图块小的精灵是否在某一图块上
-
比图块小,那就是精灵尺寸比tilemap图块尺寸小?那就直接比较尺寸,然后判断精灵是否和tilemap重叠(重叠判定的话我记得需要给tilemap绘制碰撞区,另外如果tilemap如果是铺满屏幕的,这一步也可以省去,主要是考虑到两者不重叠的情况),最后用一些比较值的条件结合tilemap的这三个表达式来判断精灵在哪个图块上就行(表达式从官网复制的,你自己加前缀的对象名和改成你实际所需的参数):
tileat(x,y)
给出图块XY编号,返回该图块的索引
positiontotilex(x)
给出x坐标,返回图块的X编号
positiontotiley(y)
给出y坐标,返回图块的Y编号
因为我这里对你所说的“某一图块”是理解成某种图块,也就是图块索引(绘制图块时,图块列表的第几块),所以给了tileat(x,y)这个表达式,如果不是这个意思的话,你可以再按自己的实际情况去使用这些表达式。