当前位置: 首页 > 知识库问答 >
问题:

使用Slick2D创建Java棋盘游戏的2D网格

祁驰
2023-03-14

我需要使用JavaSlick库创建一个固定大小的2D网格,例如20x20。目前我有一个包含符号(文本)的数组[]。这些符号代表棋盘上的不同瓷砖(正方形)。

我知道如何在屏幕上渲染/绘制单个图像,但不确定如何在网格上执行相同的操作(循环?对游戏来说渲染不是太多吗?)。我应该研究精灵表的概念吗?

理想情况下,我想创造

  1. 平铺对象:平铺、平铺、大小、图像(基于类型)

我不知道如何在屏幕上绘制/渲染它。我应该先用下面的init方法绘制它,然后在游戏开始时用update方法重新绘制它吗?

会感激你的指导。

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个答案

邢令
2023-03-14

我会使用瓷砖:http://www.mapeditor.org/

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

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

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

如果你需要代码方面的帮助。n、 n

 类似资料:
  • 我对java完全陌生,我想在Java中创建一个单人棋盘游戏。 我已经有很多定义游戏的类,但是对于我的问题,我将把问题限制在为我的棋盘游戏创建GUI板 我非常具体的问题是,基于以下代码: 如何在棋盘游戏中移动玩家?(类播放器存在) 提前感谢您的得体回答。因为我对java非常陌生,请清楚地解释您的答案。 这是以下代码的输出:

  • 嗨,我正在尝试构建一个跳棋游戏,但在计算如何用单个棋子填充2D阵列游戏板时遇到了问题。任何帮助都将不胜感激。 我有两个独立的类RedPiece和BlackPiece来实现接口块。在额外的类板中,我试图将块放在一边,但我遇到了一个问题,在构建新板时找不到可变块: 这是我到目前为止为SetBoard()所做的: 有什么想法吗?谢谢。

  • 我只知道大学里的基本java技能,但我想编写一个棋盘游戏(基本上就像垄断游戏),我完全不知道如何开始一些东西,这会产生一些不同的东西(在这种情况下是棋盘游戏),而不仅仅是控制台的东西。我不想要超高的图形,但更多的是在控制台中创建一个带有许多“-”符号的矩形。它应该是2d的,从顶部看。 你有什么建议?你建议我怎么开始?

  • 包含在程序启动时启动的线程。这个线程包含一个循环,每40毫秒更新一次游戏并重新绘制()board。 备选办法B: 板创建一个摆动计时器。这个计时器的动作监听器是板本身。actionPerformed()方法每40毫秒运行一次,并更新game+repaints Board()。 谢谢

  • 我在做一个2D跑步者游戏,我用它做了框架 每次我创建一个类时,我每次都是这样制作JFrames,没有重新调用这个类或其他任何东西。我用连接到其他类的按钮完成了菜单,但我现在需要做一个关卡。它包括一个玩家左右向上移动,与平台和敌人发生碰撞。有点像超级马里奥。我是Java的初学者,所以我还没有找到任何遵循我的结构的示例,因为它们都基于JFrame 1。我不知道如何制作互动程序并将其连接到类的JFram

  • 我试图为一个棋盘游戏找到一个更好的启发式函数,我将在代码后指定其规则。我的评估功能是: 初始板持有绿色和红色令牌,如图所示。人工智能先移动,使用与你相反的颜色,攻击你的代币。在黑色单元上,令牌可以正交(左、右、上、下)或对角移动。如果是在白血球上,你只能正交移动。 当您将令牌移动到对手令牌旁边时,您将删除该方向上所有对手的令牌。例如,如果我将绿色令牌从 C4 移动到 C5,我将杀死 C-6 到 C