我曾在Opengl的3d图形应用程序中使用相机控件。但我不得不说用顶视图在playn中创建一个相机,旋转和平移看起来对于层的概念来说真的很难。如果有人能告诉我们一个例子,那就太好了!
由于
答案 0 :(得分:1)
我是playn的新手并遇到了同样的问题。我在寻找答案的同时浏览了这个帖子。我假设您正在寻找3D答案,我正在2D工作。 3D解决方案可能类似,但我不知道图层如何在3d中工作,所以我可能是错的。无论如何这是我发现的。
问题是层上的翻译是一次完成的。这意味着任何旋转都在原点周围完成,因此如果要显示特定位置的旋转视图,则必须计算旋转后该位置的位置,然后将图层的平移设置为旋转位置。
我将此添加到展示项目中的豌豆演示中以测试它。
private void setCameraLocation(Vec2 vec, float rot) {
vec = new Vec2(-vec.x/physUnitPerScreenUnit, -vec.y/physUnitPerScreenUnit);
Transform trany = new Transform();
trany.set(new Vec2((PlayN.graphics().width()/2f),(PlayN.graphics().height()/2f)), -rot);
vec = Transform.mul(trany, vec);
worldLayer.setRotation(-rot);
worldLayer.setTranslation(vec.x,vec.y);
}
就像我说的那样可能不是你想要的答案,但它可能会帮助别人或者至少指出你的方向。