gpt4 book ai didi

java - LibGDX - 在对象的前面或后面显示玩家

转载 作者:行者123 更新时间:2023-12-01 11:07:20 25 4
gpt4 key购买 nike

我正在创建一个游戏,你可以向所有四个方向(上、下、右、左)移动,但我遇到了一个问题:我找不到一种方法让玩家如果玩家位于该对象后面,则显示在该对象后面。

虽然我完全采用自上而下的方式进行操作,但还可以。但现在我正在尝试为其添加一些“3D”效果(参见下面的图片)。

还有一件事 - 我正在做这样当玩家进入房子时,整个房子的外观(全高墙壁和屋顶)消失,只有墙壁的布局(实际碰撞层在哪里)是正在展示(我还没有这样做,但我对如何实现它有一个非常清晰的愿景)。

为了更清楚地说明这一点,我将给出一些图像作为示例:

当玩家位于物体下方时 - 一切正常!

In front of the house In fron of tree

但是当玩家位于物体后面时 - 事情开始变得非常奇怪:D

他应该是幕后黑手...... On the roof On the tree

有人知道如何将玩家放在他实际上应该在后面的物体后面吗?

编辑:

@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( );
}

最佳答案

另一种方法是扩展 OrthogonalTiledMapRenderer 并在渲染图层时处理字符渲染。当我遇到同样的问题时,我发现了这篇文章。

http://www.gamefromscratch.com/post/2014/05/01/LibGDX-Tutorial-11-Tiled-Maps-Part-2-Adding-a-character-sprite.aspx

关于java - LibGDX - 在对象的前面或后面显示玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com