我有一个节点数组,我需要使用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
。