【问题标题】:Efficient way to do static animation with LibGDX?使用 LibGDX 进行静态动画的有效方法?
【发布时间】:2017-07-11 20:47:08
【问题描述】:

用 LibGDX 和 Android 做简单的平台游戏。对我来说,用精灵表做动画不是问题,但我想知道做“地图元素的静态动画”的有效方法......例如:

  1. 天上的星星

  2. 动草

  3. 移动的树木

这样的元素在地图上可能很多,我可以在我的平铺地图中定义这样的对象层,并在游戏开始时注入所有这些动画元素,但在这种情况下,当地图构建和所有插入的元素时,这些动画元素将是即使它们在游戏摄像机之外,也会同时进行动画处理。为静态地图对象制作多个 2D 动画的有效方法是什么?

【问题讨论】:

    标签: android animation libgdx sprite game-engine


    【解决方案1】:
    int frameSize=2; 
    TiledMap map;
    String tileSetName="stars";
    int firstTileId=3,secondTileId=4;
    
    Array<StaticTiledMapTile> frameTiles=new Array<StaticTiledMapTile>(frameSize);
    frameTiles.add((StaticTiledMapTile) map.getTileSets().getTileSet(tileSetName).getTile(firstTileId));
    frameTiles.add((StaticTiledMapTile) map.getTileSets().getTileSet(tileSetName).getTile(secondTileId));
    
    AnimatedTiledMapTile animatedTile=new AnimatedTiledMapTile(1/2f, frameTiles);
    

    现在 AnimatedTile 已准备就绪,但不在地图中。检查特定单元格是否在屏幕内,或者是否为您要放置 AnimatedTile 的特定单元格设置了一些偏移量,当您离开屏幕时,您可以移除该图块。

    myLayer.getCell(x,y).setTile(animatedTile);
    

    【讨论】:

    • 是否可以为我的平铺地图的对象层设置动画平铺?只是好奇它会是什么样子,因为平铺的地图单元格大小为 10*10px,动画精灵表包含 27*15px 的帧,它们是具有透明背景的 PNG。
    • 我不这么认为,可以将动画平铺设置为对象层。我用瓷砖层
    • 让我们考虑星星,它可能包含 4 帧动画,因此为该星星 png 创建图块集,然后该图块集包含 4 个图块,每个图块是星星动画的帧,然后获取所有帧并创建 Animated平铺并放入您想要的地图中。
    猜你喜欢
    • 2011-06-25
    • 2011-01-09
    • 1970-01-01
    • 2023-04-02
    • 2013-06-30
    相关资源
    最近更新 更多