gpt4 book ai didi

c# - 确定哪个对象的瓦片被接管

转载 作者:行者123 更新时间:2023-11-30 14:46:09 25 4
gpt4 key购买 nike

我正在制作“病毒”游戏的小游戏。我正在为两个玩家制作游戏,但计划为更多玩家制作一个选项。

如果您移动,您会将自己的方 block 复制到您旁边的方 block 并接管周围的所有敌人方 block 。我目前有如下内容(评论,因为一切都是荷兰语):

//Go through the list of direct neighbors of the destination tile
//if that neighbor's team is not neutral and not of their own team, take that tile over
//taking over that tile is currently as follows:

for(int i = 0; i < destinationTile.DirectNeighbors.Count(); i++)
{
destinationTile.DirectNeighbors[i].Backcolor = players[currentPlayer].teamColor;
players[currentPlayer].tilesOwned.Add(DirectNeighbors[i]);

players[currentEnemy].tilesOwned.Remove(DirectNeighbors[i]);
} //tilesOwned being a List on every Player

这适用于我目前拥有的游戏:只有 2 名玩家的游戏。但是如果我想和 2 个以上的玩家一起玩,这是行不通的。我必须检索瓦片是从哪个敌人那里接管的。

我如何确定哪个玩家的牌已被接管?

最佳答案

必须添加到一个玩家的列表并从另一个玩家的列表中删除是多余的,因为相同的数据被表示两次,这可能会导致不一致。

只保留一个唯一的瓷砖列表,每个瓷砖都可以有一个所有者属性(没有人或玩家 ID)。然后你可以得到一个颜色/球员的计数。

使用此系统,而不是向玩家列表添加一个图 block 并从另一个列表中删除,您只需将图 block 所有者属性更改为 currentPlayer

关于c# - 确定哪个对象的瓦片被接管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com