【发布时间】:2015-09-27 06:39:47
【问题描述】:
我正在创建一个游戏,您可以在其中所有四个方向(上、下、右、左),我遇到了一个问题:我找不到让玩家如果玩家在该对象后面,则显示在该对象后面。
虽然我完全采用自上而下的方式,但没关系。但是现在我正在尝试为其添加一些“3D”效果(请参见下面的图片)。
还有一件事——我正在制作这样当玩家进入房子时,整个房子的外观(全高的墙壁和屋顶)消失了,只有墙壁的布局(实际的碰撞层在哪里)是正在显示(我还没有这样做,但我对如何实现它有一个非常清晰的愿景)。
为了更清楚,我将举一些图片作为例子:
当玩家在物体下方时 - 一切正常!
但是当玩家在物体后面时 - 事情开始变得很奇怪:D
任何人都知道如何将玩家放在他应该在后面的物体后面吗?
已编辑:
@Override public void show( )
{
/** Initializing InputProcessor **/
Gdx.input.setInputProcessor( this );
/** Creating map **/
tiledMap = new TmxMapLoader( ).load( "maps/medievalPlace.tmx" );
mapRenderer = new OrthogonalTiledMapRenderer( tiledMap );
/** Initializing Camera **/
camera = new PlayerCamera( ( TiledMapTileLayer ) tiledMap.getLayers( ).get( 0 ) );
/** Initializing spriteBatch **/
spriteBatch = new SpriteBatch( );
spriteBatch.setProjectionMatrix( camera.combined );
spriteBatch.maxSpritesInBatch = 1;
/** Initializing uiBatch **/
uiBatch = new SpriteBatch( );
uiBatch.maxSpritesInBatch = 5;
/** Creating Player **/
player = new Player( new Texture( "char/down/walk0.png" ) );
// Initializing font for FPS displaying //
font = new BitmapFont( );
}
private void renderScreen( )
{
Gdx.gl.glClear( GL20.GL_COLOR_BUFFER_BIT );
/** Rendering map **/
mapRenderer.setView( camera );
mapRenderer.render( );
/** spriteBatch rendering **/
spriteBatch.begin( );
player.draw( spriteBatch );
spriteBatch.end( );
/** uiBatch rendering **/
uiBatch.begin( );
arrow_right.draw( uiBatch );
arrow_left.draw( uiBatch );
arrow_down.draw( uiBatch );
arrow_up.draw( uiBatch );
action.draw( uiBatch );
font.draw( uiBatch, "Fps: " + Gdx.graphics.getFramesPerSecond( ), 100, Gdx.graphics.getHeight( ) - 100 );
uiBatch.end( );
}
【问题讨论】:
-
你能发布一些代码吗?可能是duplicate。
-
您需要哪一部分?我渲染一切的那个?
-
渲染和精灵/背景初始化。
-
编辑了问题,看看:)
-
如何将 scene2d 与演员一起使用,这样您就可以更改演员的 z 顺序。