我正在制作一款使用“AI玩家”的简单游戏(他们不是真正的 AI玩家)。我需要弄清楚我使用的“地图”的某个部分是否有某些颜色,所以我可以让“AI玩家”做某些事情。有可能这样做吗?
我不知道这是否会有所帮助,但是一款名为“魔兽争霸3”的游戏使用非常相似的东西来确定某些事情,比如运动。如果你知道这个游戏,那么理解这个问题要容易得多。
我认为如果我将图像放入自定义NSView
子类中,这可能是可能的,但我还没有学会如何检查那里的颜色。
答案 0 :(得分:2)
执行此操作的最佳方法是不要费心检查实际图像的颜色(如果要检查大量单个像素,这可能是一项昂贵的操作),而是在地图的数据结构中指出特征你希望拥有,然后两者从中获取颜色和玩家行为。
在伪代码中:
// Draw Map
foreach currSquare in listOfSquares:
if map[currSquare].hasPropertyX():
drawSquare(currSquare, blue)
else if map[currSquare].hasPropertyY():
drawSquare(currSquare, red)
// Move pieces
foreach currPlayer in listOfPlayers:
squareIAmStandingOn = currPlayer.square
if map[squareIAmStandingOn].hasPropertyX():
currPlayer.takeActionX()
else if map[squareIAmStandingOn].hasPropertyY():
currPlayer.takeActionY()
答案 1 :(得分:1)
从NSImage创建 NSBitmapImageRep 并使用 colorAtX:y:来获取颜色。