目前做一个弹球游戏,但一直有弹球或者道具刷新出来位置重叠的问题,
弹球和道具都是生成的时候根据屏幕的宽度和高度随机生成在场景内的
道具基本都是圆形,这个要怎么去判断?


目前做一个弹球游戏,但一直有弹球或者道具刷新出来位置重叠的问题,
弹球和道具都是生成的时候根据屏幕的宽度和高度随机生成在场景内的
道具基本都是圆形,这个要怎么去判断?


如果是圆形的就直接判断直径的范围存不存在其他节点即可
关键点就在于怎么判断存不存在
把随机出来的节点装到一个集合里,显示的时候就去判断直径范围内在这个集合里有没有其他节点存在,有的话就移开就行了
好的 感谢 我试试,每个物体上面有刚体,生成的时候记录 生成位置,其他生成的物体生成前判断半径内时候有其他刚体,如果有就重新生成
记录圆心的中心点,随机出来的圆算下距离每个点之间的距离,不就可以了么
我觉着你可以开一个帖子,跟大家一块完成一个游戏
哈哈 这个想法不错
感谢 官方大佬 感谢 ,我还没用过这些API, 我去试试看
处理不相交问题,一般是对屏幕进行网格划分, 比如10x10的区域, 生成的物体只能在每个格子中心位置做少许浮云位移.
可以想像一下围棋棋盘的样子.
计算网格非常简单,直接拿容器宽高除以元素宽高即可. 如果要看起来更凌乱一点,则适当扩大网格尺寸, 然后对元素坐标进行局部随机化,
判断圆形相交是很简单,用一个圆的坐标减去另一个圆的坐标,然后得到的就是两个圆距离坐标,再用这个坐标调用mag(),得到的就是两个圆的距离,判断是否相交。就是比较这个距离是否大于两个圆的半径和。
感谢、网格划分屏幕这个方法 不错,我看好多都是这样做的
感觉您这个方法 相对简单一点,我会试试看的, 多谢分享!