cocos2dx 用户触摸事件获取触摸对象问题

la_vie_est_belle
Python领域优质创作者
博客专家认证
2017-02-19 10:11:11
我准备通过点击屏幕上的某一点来让精灵移动到相应位置。准备的图片是分朝左和朝右右的。原本想实现的是:当点击在图片精灵坐标左边时,精灵朝左走(用的是朝左的素材),朝右也是相同道理。

于是用下面这句来获取对象
auto target = static_cast<Sprite*>(event->getCurrentTarget());


但我发现这句代码所获取的触摸对象坐标是在左下角(0,0),也就是说,我不管点击屏幕哪里,所点击的坐标肯定是要比左下角的坐标大的,从而所使用的图片都是朝右的。

有什么办法可以让所获取的对象坐标与精灵的坐标相同?(第一次执行触摸事件时,坐标与初始化坐标相同;接下来执行时坐标与精灵移动后的坐标相同)

求前辈指导。
...全文
310 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
la_vie_est_belle 2017-02-20
  • 打赏
  • 举报
回复
引用 1 楼 u013962723 的回复:
如果我没记错,这个target是你最底层的那个scene,而scene的位置当然 (0,0)。 你可以把你sprite的指针和这个target的指针输出出来看我记得对不对。 我记得有一个方法是可以获取touch事件的点击方法,你可以自己查一下api。
虽然没有直接解决问题,但不管怎么样,前辈的话还是让我学到点,谢谢啦。
la_vie_est_belle 2017-02-20
  • 打赏
  • 举报
回复
解决了,其实只用把touch->getLocation()的横坐标跟精灵的横坐标比较下就好了= =|| 我之前竟然一直在纠结要怎么把target的坐标和精灵的坐标对齐= = 然后再跟touch->getLocation()的横坐标比较(其实这是很愚蠢的想法,试过就知道了)
zerozerg2006 2017-02-20
  • 打赏
  • 举报
回复
如果我没记错,这个target是你最底层的那个scene,而scene的位置当然 (0,0)。 你可以把你sprite的指针和这个target的指针输出出来看我记得对不对。 我记得有一个方法是可以获取touch事件的点击方法,你可以自己查一下api。

721

社区成员

发帖
与我相关
我的任务
社区描述
Cocos2d-x相关内容讨论专区
社区管理员
  • Cocos2d-x
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧