我正在研究等距平铺地图游戏。在介绍中我希望展示完整的游戏领域。所以我使用
this.mCamera = new ZoomCamera(CAMERA_WIDTH, CAMERA_HEIGHT, CAMERA_WIDTH, CAMERA_HEIGHT) {
@Override
public void onApplySceneBackgroundMatrix(final GLState pGLState) {
final float widthRaw = this.getWidthRaw();
final float heightRaw = this.getHeightRaw();
pGLState.orthoProjectionGLMatrixf(0, widthRaw, heightRaw, 0, getZNear(), getZFar());
}
@Override
public void onUpdate(float pSecondsElapsed) {
if (timeCounter >= 1) {
mCamera.setRotation(i);
timeCounter = 0;
i=i+1;
}
timeCounter += pSecondsElapsed;
super.onUpdate(pSecondsElapsed);
}
};
但它的旋转2d视图.i想要在3d透视中旋转。我可以在andenigne GLES2.0中以3d透视旋转相机。 请建议我
答案 0 :(得分:1)
您无法在3D中旋转相机。 3D的出现是由于艺术品是以透视方式绘制的。旋转图稿不会导致图稿改变其绘制方式,只需旋转一张带有图纸的图纸就会导致3D转换。要在3D中旋转,您需要使用3D引擎。
答案 1 :(得分:1)
我曾多次在AndEngine论坛中偶然发现this tutorial,其中指出可以旋转摄像机以远距离显示远处的物体(较小)。它是为AndEngine GLES1制作的,但它应该可以适应GLES2。
AndEngine知道一个z轴。该轴上的位置是根据将Sprite附加到场景的顺序自动设置的。但是,您应该手动设置它。在大多数情况下,每次Sprite改变其位置时,根据y位置(z轴= y轴)设置z轴就足够了。
public class YourSprite extends Sprite{
...
@Override
setPosition(float x, float y){
super.setPosition(x,y);
this.setZIndex(y);
}
}
如果你设法按照教程中的描述实现相机旋转,那么与z轴一起应该具有非常逼真的3D效果。
但是,我从未尝试过这个教程,因为大多数使用鸟瞰视图的游戏(作为你提供的youtube链接中的游戏)不需要真正的消失点,因为显示器很可能很小,所以玩家无论如何都不会注意到。所以我坚持改变z轴上的位置。但如果有人设法旋转相机,我当然想知道更多!