136204240 发表于 2012-3-7 21:58:00

备选建筑物的id号会不会改变?

比如id为1的建筑物被选了后,在以后的回合中,id为1的建筑还存不存在?

Iver 发表于 2012-3-8 09:39:00

回复 1# 136204240 的帖子

你好,136204240:
一个建筑的ID是唯一的,而且在一局比赛中不人发生变化。
被使用的建筑不会再出现在Constructions集合中,但可以通过GetConstructionByID方法获取。

136204240 发表于 2012-3-8 10:09:00

回复 2# Iver 的帖子

你好,被使用的建筑物还会在Constructions集合中?

Iver 发表于 2012-3-8 13:01:00

回复 3# 136204240 的帖子

你好,136204240:
不会的。
抱歉漏了两个字。

136204240 发表于 2012-3-8 14:00:00

回复 4# Iver 的帖子

Construtions好像没有GetConstructionByID这个成员

Iver 发表于 2012-3-8 14:16:00

回复 5# 136204240 的帖子

你好,136204240:
这个方法在IGameService上,可以使用传入的service实例上的这个方法。

Mario 发表于 2012-3-9 11:10:00

建筑物的id不会变但是使用过的建筑会被移除出建筑列表,假设开始建筑列表中有三个建筑,id分别为1,2,3现在Player1使用了1建筑,那么轮到Player2的时候,如果Player2程序如下:
ReadOnlyCollection<IConstruction> constructions = service.Constructions as ReadOnlyCollection<IConstruction>;
IConstruction construction = constructions;
那获取的construction 是不是id为2的建筑呢? 也就是说id不变但是只读集合的索引会变 我可以这样理解么?

Iver 发表于 2012-3-9 11:36:00

回复 7# Mario 的帖子

你好,Mario:
你的理解基本上是正确的。
每个建筑的ID是用于区别它与其它建筑的唯一标识,这个ID在一局比赛开始时分配给每一个建筑,之后就不再改变。
使用过的建筑会被从可用建筑列表中移除。
以上两点你的理解是完全正确的。
需要注意的一点是,建筑从可用建筑列表中移除后,我们并不保证保留在该列表中的其它建筑保持原顺序,这个行为与具体的实现有关。

Mario 发表于 2012-3-9 11:59:00

回复 8# Iver 的帖子

明白了。另外有个疑问,一直没搞懂旋转那块是怎么转,给的文档中的有一个例子,但是那个建筑是个“土”字型的,我想知道如果是其他不规则的建筑,旋转以哪为中心转?比如像那个俄罗斯方块里的“之”字型的那个东东的建筑

Iver 发表于 2012-3-9 12:08:00

回复 9# Mario 的帖子

你好,Mario:
我觉得这个旋转跟俄罗斯方块中的旋转还是有区别的。
俄罗斯广场中的旋转,会有一个基准点,它可能在靠近方块中心的位置,这样旋转之后的形状中心位置基本不变。
但在我们这个游戏中,旋转仅限定了方向为顺时针,角度为90度的整数倍,并且是整个建筑布局一致地进行旋转,不管是旋转前还是旋转后,将建筑放置到地图上时,座标的基准点都是建筑布局的左上角点。
不知道这样解释你是否清楚了?
页: [1] 2
查看完整版本: 备选建筑物的id号会不会改变?