我试图完成一个项目的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个类扩展它).我仍然不知道如何组合并生成地图.
感谢您的时间.
不要从实现开始,从您希望如何使用地图开始.这将为您提供一些约束如何实现它.例如:
绘制地图时,如何访问它?通过协调?或者"从X向西走"?
[编辑]我建议从RPG游戏的主循环开始.你需要将角色/标记放在某个地方(即它需要与瓷砖有某种关系).
然后你需要移动角色.角色必须能够检查当前的牌(对手,物品,类型).它需要一种方法来了解它是如何移动的(即右边有一堵墙吗?)
这为您提供了一个地图界面:它为游戏中的其他对象渲染的服务.当您了解接口需要提供的内容时,应该可以了解如何实现映射(数据结构).
至于生成地图,使用随机数生成器加上一些"常识".看看相邻的瓷砖:当它们都是城市时,这个瓷砖也可能是城市.平原也一样.丘陵是单一的物品,它们是最不常见的.
运行此代码,将地图打印为ASCII("C"ity,"P"lain,"H"ill)以查看是否有效.