tilemap图块问题



  • 如何实现在一个Tilemap组件中鼠标左键其中哪一图块就将其点击的一个图块删除掉(这Tilemap组件中有多个图块)



  • @zmxnvfgt

    首先是选中鼠标操作组件,然后用点击对象时的条件,选择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)这个表达式,如果不是这个意思的话,你可以再按自己的实际情况去使用这些表达式。


登录后回复