UIImageView比较游戏中的图像

时间:2013-05-05 23:03:40

标签: iphone ios objective-c image

我正在研究一种摇滚纸剪刀鞋游戏,我不知道如何做到这一点。我有两个UIImageView(s),每个都是一个图像。我希望能够比较这两个图像。我在网上查了一下,找不到任何东西。我希望能够说出

 if([imageView1.image == rock] && [imageView2.image == scissor]) {
    textLabel.text = @"You won!";
 }

我知道这种语法当然是错误的,但我试图展示我正在寻找的英语部分。任何帮助表示赞赏。

我没有任何类型的源代码向您展示,因为我不知道我在做什么。我不是在寻找像素到像素的比较,或者任何复杂的事情,我只想找到一种方法来确定图像是否相同。

1 个答案:

答案 0 :(得分:3)

好的,这是我如何使用枚举解决这个问题。首先,声明你的枚举。你可以随意调用它,我称之为RPS_STATE

enum RPS_STATE {
    RPS_ROCK,
    RPS_SCISSOR,
    RPS_PAPER,
    RPS_UNDEFINED
};

为init目的包含一个未定义的状态总是有用的。现在,枚举中定义的这些东西实际上只是0-3的整数。

因此,在设置图像时可以使用以下内容。

 -(void) setToRock:(UIImageView *) view {
      view.image = rockImage;
      view.tag = RPS_ROCK;
 }

 -(void) setToScissor:(UIImageView *) view  {
      view.image = scissorImage;
      view.tag = RPS_SCISSOR;
 }

 -(void) setToPaper:(UIImageView *) view  {
      view.image = paperImage;
      view.tag = RPS_PAPER;
 }

然后你可以很好地设置和比较它们。

 [self setToPaper:imageView1];
 [self setToPaper:imageView2];

 if(imageView1.tag == imageView2.tag){

 }  

等等。您还可以将枚举用作类型。例如

 enum RPS_STATE variableHoldingOnlyRPSState; 

希望有所帮助:)