在游戏中旋转整个平铺地图 - LibGDX
Rotating an entire Tiled map ingame - LibGDX
我制作了一个简单的平台游戏,有几个关卡,其中一个机制是在触发某些东西(只是关卡,而不是播放器),虽然我找不到任何解释如何做的东西,所以我一直认为用 Tiled 软件制作的地图是不可能的,所以我可能需要去别处看看。有什么办法可以做到这一点?如果您能向我解释一下,甚至指出正确的方向,我将不胜感激。
感谢您的宝贵时间 :D(如果我需要进一步说明,请告诉我)
我假设您使用 OrthogonalTiledMapRenderer
渲染您的 TileMap
,如果是这样,那么您可以在 OrthographicCamera
上使用 rotate
方法在渲染前旋转。
例如
public class YourGameClass implements Screen {
private final TiledMap map;
private final OrthogonalTiledMapRenderer mapRenderer;
private final OrthographicCamera camera;
@Override
public void render (float delta) {
camera.rotate(1.0f * delta); // Rotate a little on every update (you'll want to control this a bit more)
camera.update();
mapRenderer.setView(camera);
mapRenderer.render();
}
}
所以基本上你不旋转地图,你旋转查看地图的相机。
你必须做两件事
1.rotate 相机
2.change重力方向根据你的相机旋转
渲染方法的代码如下:
//camera rotation
gamecam.rotate(2f*dt);
//update gravity direction
gavityDirection.x-=0.5f*dt;
gavityDirection.y+=0.5f*dt;
//set required gravity
world.setGravity(gavityDirection);
我制作了一个简单的平台游戏,有几个关卡,其中一个机制是在触发某些东西(只是关卡,而不是播放器),虽然我找不到任何解释如何做的东西,所以我一直认为用 Tiled 软件制作的地图是不可能的,所以我可能需要去别处看看。有什么办法可以做到这一点?如果您能向我解释一下,甚至指出正确的方向,我将不胜感激。
感谢您的宝贵时间 :D(如果我需要进一步说明,请告诉我)
我假设您使用 OrthogonalTiledMapRenderer
渲染您的 TileMap
,如果是这样,那么您可以在 OrthographicCamera
上使用 rotate
方法在渲染前旋转。
例如
public class YourGameClass implements Screen {
private final TiledMap map;
private final OrthogonalTiledMapRenderer mapRenderer;
private final OrthographicCamera camera;
@Override
public void render (float delta) {
camera.rotate(1.0f * delta); // Rotate a little on every update (you'll want to control this a bit more)
camera.update();
mapRenderer.setView(camera);
mapRenderer.render();
}
}
所以基本上你不旋转地图,你旋转查看地图的相机。
你必须做两件事
1.rotate 相机
2.change重力方向根据你的相机旋转 渲染方法的代码如下:
//camera rotation
gamecam.rotate(2f*dt);
//update gravity direction
gavityDirection.x-=0.5f*dt;
gavityDirection.y+=0.5f*dt;
//set required gravity
world.setGravity(gavityDirection);