我们要实现主角随身携带道具的能力,将道具作为对象进行实例化这是不太方便的。我们需要一些轻便管理的方法:数据结构。
道具在系统里要有如下的属性:
ID:我们想唯一地识别游戏中的每一个项目,这样我们就可以区分两个同类项目,比如两个药水,两个相同的武器,等等。
Name:我们希望为该道具给予一个有意思的名字。
Description:当然,我们需要一个道具的描述,以便我们可以告诉玩家,它是什么,有什么用。
Type:我们需要它,可以告诉我们这是什么类型的道具。 这是解药吗? 还是武器?
Value:数量。例如,HP的治愈量,玩家的攻击力提升量。
为了组织这些字段,我们可以使用系统里的数据结构:DSMap。
DS Map是一种数据结构,可以存储一对键和值。 DS Map用于存储混合类型的数据(字符串、数字等)特别有用。它们对数据的访问速度最快。 您只需要提供访问特定值的键。
创建一个一个DS Map的方法,ds_map_create()
var my_map = ds_map_create();
往里添加一对键和值,用ds_map_add(id, key, val);
ds_map_add(map_id, "name", "Seb");
其中key代表的变量名称不能重复。
替换现有值ds_map_replace(id, key, val)
ds_map_replace(map_id, "name", "Sebastiano");
检测是否为空ds_map_empty(id)
if (ds_map_empty(map_id)) exit;
读取里面的值ds_map_find_value(id, key)
var my_name = ds_map_find_value(map_id, "name"); if is_undefined(my_name) exit;
如果没有找到就返回undefined.
我们重新整理一下道具属性表,列出如下一张表格
使用这种格式,它将是相当容易管理的! 事实上,只需创建一个列表来存储所携带的所有项目就足够了。 捡起一个道具那就意味着,只是将它复制并显示在列表中。
暂无关于此日志的评论。