lufy's legend

标题: 不同LSprite对象中元素的碰撞检测 [打印本页]

作者: lxm756    时间: 2017-5-23 15:27
标题: 不同LSprite对象中元素的碰撞检测
最近在做的射箭小游戏
图片1.png
用addShape加的绿线没有碰到,hitTestObject却变成true了。
箭和字母序列在不同的LSprite对象里,碰撞检测是不是不能做?

作者: lufy    时间: 2017-5-23 16:12
请发一下关键性代码,我不太清楚你代码具体是怎么写的
如果有链接的话,最好能发一下链接
作者: lxm756    时间: 2017-5-23 16:25
谢谢回复,新手,代码写的比较菜
地址http://www.dazzlingstar.org/a/Archery/
我要检测碰撞的两者不在同一个坐标系。是因为这个所以检测不到吗?
检测碰撞的代码在index.js,317行-327行
作者: lxm756    时间: 2017-5-23 16:26
我这个网址里的是没加addShape的,加了的也是不太好使。一会我把加了addShape方法的传上去
作者: lxm756    时间: 2017-5-23 16:30
已上传。谢谢
作者: lxm756    时间: 2017-5-23 16:31
是不是因为,我加了不少rotate所以无法检测碰撞?
作者: lxm756    时间: 2017-5-23 16:32
不对。去掉rotate还是不行。可是没法把它放同一个坐标系呀...
作者: lxm756    时间: 2017-5-23 16:36
我猜原因就是不在同一个坐标系了。除了放一个坐标系没其他办法吗?真放一个坐标系了,球就不能和弓箭分离开运动,只能一起运动了一起旋转了。有没有其他方法可以处理?
作者: lxm756    时间: 2017-5-23 16:41
我可能理解有误,我以为只有在同一个LSprite对象才能是同一个坐标系。我先试试能不能统一坐标系
作者: lufy    时间: 2017-5-23 17:41
lxm756 发表于 2017-5-23 16:41
我可能理解有误,我以为只有在同一个LSprite对象才能是同一个坐标系。我先试试能不能统一坐标系 ...

你先自己研究一下吧,等晚上下班回家,我再帮你细看一下
作者: lxm756    时间: 2017-5-23 18:16
嗯嗯嗯。谢谢谢谢
作者: lxm756    时间: 2017-5-23 18:42
我调好了。但是碰到一个新问题。就是,小球一rotate旋转,就不行了。把rotate去掉就能检测碰撞了
作者: lxm756    时间: 2017-5-23 18:49
addShape的绿线还在原来的位置,检测到的碰撞位置不是原来的了
作者: lxm756    时间: 2017-5-23 19:17
解决了。我又加了一层LSprite包裹。旋转和碰撞检测的对象原来是同一个,现在改成了父子级
作者: lxm756    时间: 2017-5-23 19:18
本帖最后由 lxm756 于 2017-5-23 19:55 编辑

不过算的位置不太准确。先这样吧。对我来说已经不错了。谢谢
作者: lufy    时间: 2017-5-23 22:24
lxm756 发表于 2017-5-23 19:18
不过算的位置不太准确。先这样吧。对我来说已经不错了。谢谢

解决了就好,有其他问题可以再来交流
作者: lxm756    时间: 2017-5-24 09:20
恩恩。谢谢啦




欢迎光临 lufy's legend (http://lufylegend.com/forum/) Powered by Discuz! X2.5