如何用Java生成地图?

Gur*_*rzo 3 java map tile

我试图完成一个项目的RPG游戏,但不知道如何制作游戏地图.它不需要是图形的,但整个地图和每个图块的代码必须是正确的.

到目前为止,我想通过使用包含所有链接的tile的ArrayList来制作非matricial地图(作为教授的请求).

public abstract class Casella {
/** 
 * @uml.property name="tabellone"
 * @uml.associationEnd multiplicity="(1 1)" inverse="casella:Tabellone"
 * @uml.association name="contains"
 */

private int id;
private boolean free = true;
private List adjacent;
private List items;
private Tabellone tabellone = null;

public void in(){
    free = false;
}

public void out(){
    free = true;
}

}
Run Code Online (Sandbox Code Playgroud)

这是单个图块的代码(有3个类扩展它).我仍然不知道如何组合并生成地图.

感谢您的时间.

Aar*_*lla 9

不要从实现开始,从您希望如何使用地图开始.这将为您提供一些约束如何实现它.例如:

绘制地图时,如何访问它?通过协调?或者"从X向西走"?

[编辑]我建议从RPG游戏的主循环开始.你需要将角色/标记放在某个地方(即它需要与瓷砖有某种关系).

然后你需要移动角色.角色必须能够检查当前的牌(对手,物品,类型).它需要一种方法来了解它是如何移动的(即右边有一堵墙吗?)

这为您提供了一个地图界面:它为游戏中的其他对象渲染的服务.当您了解接口需要提供的内容时,应该可以了解如何实现映射(数据结构).

至于生成地图,使用随机数生成器加上一些"常识".看看相邻的瓷砖:当它们都是城市时,这个瓷砖也可能是城市.平原也一样.丘陵是单一的物品,它们是最不常见的.

运行此代码,将地图打印为ASCII("C"ity,"P"lain,"H"ill)以查看是否有效.

  • 不对.旧的冒险游戏只保留了一个你可以移动的方向列表:Noth,东,南,西,向上等.玩家将有一个指向当前图块的指针并沿着指针移动.坐标仅对显示地图有用,但即便如此,您也可以使用循环图形渲染器. (2认同)