【问题标题】:TouchesBegan always fire when using TouchesMoved使用 TouchesMoved 时,TouchesBegan 总是触发
【发布时间】:2012-02-03 13:11:03
【问题描述】:

我正在尝试使用 ccTouchesBegan 使精灵跳跃并使用 ccTouchesMoved 移动。当我使用 Touchesbegan 时它会跳跃但是当我尝试使用 TouchesMoved 移动精灵时,它会移动但也会跳跃。如何解决问题?请帮忙。

【问题讨论】:

  • 如果你能展示你的方法,那将更容易回答这个问题。
  • @Override public boolean ccTouchesBegan(MotionEvent e) { CGSize winSize = CCDirector.sharedDirector().displaySize(); //CGPoint p = CCDirector.sharedDirector().convertToGL(CGPoint.ccp(e.getX(), e.getY())); hero.runAction(CCJumpTo.action(.2f, hero.getPosition(), 50, 1));返回 CCTouchDispatcher.kEventHandled; }
  • @Override public boolean ccTouchesMoved(MotionEvent e){ CGSize winSize = CCDirector.sharedDirector().displaySize(); CGPoint p = CCDirector.sharedDirector().convertToGL(CGPoint.ccp(e.getX(), e.getY())); hero.setPosition(CGPoint.ccp(p.x, p.y));返回 CCTouchDispatcher.kEventHandled; }
  • 请用一些代码编辑您的问题,我无法帮助您查看它

标签: android cocos2d-iphone touch cocos2d-android


【解决方案1】:

我可以给你一个想法...不确定它是否可行...:D

** 如果触摸移动而不是在 touchEnd 中什么都不做,否则在 touchEnd 方法中跳转你的精灵。
** 您可以保留一个布尔值来跟踪触摸是否移动。

【讨论】:

  • 但我想使用 touchesBegan 方法让精灵跳跃,我尝试使用布尔值但它不起作用
  • 如果你使用touchesBegan,我认为它会变得复杂。对于布尔值:BOOL 已移动 = FALSE;当 touchesMoved 并且您在 touchesMoved 中执行了一些操作时,将其设置为 TRUE 并检查 touchesEnd 中的“已移动”是真还是假。如果为真则无动作,如果为假则跳转。
猜你喜欢
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
相关资源
最近更新 更多