从节点数组中获取Actor hit()

我有一个节点数组,我需要使用Actor hit()在InputListener事件中从这个数组中获取一个特定的Node

我有多个菜单项(button,级别),但触摸事件不起作用。 这是我迄今为止所尝试的:

  public Actor hit(final float x, final float y, final boolean b) { ... for (int i = this.nodesList.size() - 1; i >= 0; --i) { final Node node = this.nodesList.get(i); if (node instanceof SpriteNode) { SpriteNode newNode = (SpriteNode) node; if (newNode.anchornsform.det() != 0.0f) { final Affine2 inv = newNode.anchoreansform.inv(); ... } } } } return myactor; } 

请帮助,如果你有更好的解决scheme,我打开任何建议。

谢谢

正如你在评论中写的,你的hit()返回null

这部分:

 } else { for (int i = nodesList.size() - 1; i >= 0; --i) { final Node node = nodesList.get(i); if (node instanceof SpriteNode) { if (node != null && ((SpriteNode)node).anchoredAffineWorldTransform.det() != 0.0f) { final Affine2 inv = ((SpriteNode)node).anchoredAffineWorldTransform.inv(); if (((SpriteNode)node).hit(inv.m00 * x + inv.m01 * y + inv.m02, inv.m10 * x + inv.m11 * y + inv.m12, b) != null) { myactor= node; return myactor; } } } } } 

不能返回null – 因为它不能。

所以无论是myactor = super.hit(x, y, b); 是造成null或else不被解雇,你myactor因为没有分配给myactor