我正在为个人使用创建一个框架,这允许我创建环境,实体,项目等...... 现在,我想能够检索我刚刚创建的位置并使用它做一些事情。就像所说的位置必须有那种类型的怪物,可能有一个铁匠来帮我伪造新武器,而且由于它是一个基于文本的游戏,我想把一些文字链接到那些位置。
我有一个列在世界级的名单,如下:
@Override
protected void onPreExecute() {
dialog = new ProgressDialog(getActivity());
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("Loading ...");
dialog.setIndeterminate(true);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
这是一个很糟糕的代码:
Environment.Environments.Add(new Environment("Dark Forest", "A very dark... very frightening place...", true, true));
我尝试了不同的东西,例如添加与我的命令之一相关的事件" Look"但我不确定它是否适合我的需要而且我是必须说,我从来没有使用过活动!所以如果你要实现这样的东西,你会怎么做呢?!
答案 0 :(得分:1)
我会创建一个包含位置的网格系统。给出一个x / y坐标,包含细节集合(Items和Creatures(不要使用“entity”,它有自己的含义)。)
public class Environment
{
public List<Location> Locations {set; get;}
public Location CurrentLocation {get; set;}
public Environment()
{
Locations = new List<Locations> {...} //set up Locations in a grid
public Location Move(string direction)
{
//check to see if there is a location in the direction the user wants to move
//if so, load the new Location into CurrentLocation. If not, throw an exception
}
}
}
public class Location
{
public List<Item> Items {set; get;}
public List<Creature> Creatures {set; get;}
public int X {get; set;}
public int Y {get; set;}
public void OnLoaded()
{
//here is where you check if there are items, or creatures, etc, simply by counting the list...
}
}