使用Slick2D在Java中为棋盘游戏创建2D网格

时间:2013-08-12 23:05:17

标签: java image grid rendering slick2d

我需要使用Java slick lib创建一个固定大小的2D网格,例如20x20。目前我有一个包含符号(Text)的数组[] []。这些符号代表板上不同的瓷砖(方块)。

我知道如何在屏幕上渲染/绘制单个图像,但不知道如何为网格做同样的事情(循环?对游戏来说渲染不是太多吗?)。我应该研究一下spritesheets的概念吗?

理想情况下,我想到了创建

  1. 平铺对象:tileXpos,tileYpos,大小,图像(基于类型)
  2. 网格对象:平铺图块[] []
  3. 我不知道如何在屏幕上绘制/渲染它。我也应该首先在下面的 init 方法中绘制它并且随着游戏开始在更新方法中重新绘制?

    非常感谢您的指导。

    import org.newdawn.slick.*;
    import org.newdawn.slick.state.*;
    
    
    public class GameplayState extends BasicGameState {
    
        public GameplayState(int stateId){
    
        }
    
    
        public void init(GameContainer container, StateBasedGame game)
                throws SlickException {
        }
    
        public void render(GameContainer container, StateBasedGame game, Graphics g)
                throws SlickException {
        }
    
        public void update(GameContainer container, StateBasedGame game, int delta)
                throws SlickException {
        }
    
        public int getID() {
            return 1;
        }
    }
    

1 个答案:

答案 0 :(得分:0)

我会使用TileD:http://www.mapeditor.org/

Slick2D支持Tiled的.tmx文件。使用符号创建20 x 20平铺地图。您可以访问切片贴图中的每个切片及其属性(位置,图层和Tiled中定义的其他自定义属性)。而且,最好的是你不必渲染整个地图。您可以根据需要只渲染其中的一部分。看看这里,在Slick2D维基:

http://slick.ninjacave.com/wiki/index.php?title=TileD_Import_and_Usage

您也可以在javadoc中查看它:http://slick.ninjacave.com/javadoc/

说您是否需要有关代码的帮助。 N,N-