0

我正在做一个石头剪刀布鞋游戏,我不知道如何做到这一点。我有两个 UIImageView(s),每个里面都有一个图像。我希望能够比较这两个图像。我在网上查了一下,找不到任何东西。我想能够说

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

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

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

4

1 回答 1

3

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

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

为初始化目的包含一个未定义的状态总是有用的。现在,枚举中定义的这些东西实际上只是 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; 

希望有帮助:)

于 2013-05-05T23:40:43.237 回答