我正在制作一个游戏,一个角色会有一个气球思想和一堆上面的按钮。每隔五秒,气球的图像就会改变,因此按钮的组织也会改变。
我设法创建代码来制作图像的类型,但是我很难创建将按钮链接到气球的逻辑。想法是当显示气球的新图像时,用户必须单击与图像对应的按钮。
这是一张更好地说明的图片:
我尝试使用Enums,但对我不起作用。这是我的代码:
enum PontuacaoJogo {
case toddynho
case coxinha
case sushi
case coracao
case netflix
case ballonToddynho
case ballonCoxinha
case ballonSushi
case ballonCoracao
case ballonNetflix
var imagemNecessidades: UIImage {
switch self {
case .toddynho: return UIImage(named: "toddy_.png")!
case .coxinha: return UIImage(named: "coxinha_.png")!
case .sushi: return UIImage(named: "sushi_.png")!
case .coracao: return UIImage(named: "coracao_.png")!
case .netflix: return UIImage(named: "bedflix_1.png")!
default: ()
}
return imagemNecessidades }
var imagemBaloes: UIImage {
switch self {
case .ballonToddynho: return UIImage(named: "toddy_.png")!
case .ballonCoxinha: return UIImage(named: "coxinha_.png")!
case .ballonSushi: return UIImage(named: "sushi_.png")!
case .ballonCoracao: return UIImage(named: "coracao_.png")!
case .ballonNetflix: return UIImage(named: "bedflix_1.png")!
default: ()
}
return imagemBaloes }
}
之后我尝试创建一个If else语句,将UIButton
的图像与气球的图像进行比较,但我找不到通用的东西,例如:
if imgBtn1.imageView.image == ballon.image {
// makes point
}
因为按钮的图像和气球的图像有不同的名称。那么,我该如何做到这一点呢?
答案 0 :(得分:0)
我建议两个选项:UIViews可以有一个标签,因此你可以用枚举ID标记你的按钮。在不知道您的应用程序如何设置的情况下,一些相关部分看起来类似于:
// Declare enums in some header
typedef NS_ENUM(NSInteger, PontuacaoJogo)
{
PontuacaoJogoSushi,
PontuacaoJogoNetflix
};
// When you create the thought bubble with the image needing to match
-(void)createThoughtBubble
{
//logic to choose image
self.thoughtBubbleID = PontuacaoJogoSushi;
//self.someImageView.image = [UIImage imageNamed:@"sushi"];
}
-(UIButton*)imagemBaloes:(PontuacaoJogo)buttonID
{
UIButton* someButton;
someButton.tag = buttonID;
}
//Tap delegate for the three buttons
-(IBAction)buttonTapped:(id)sender
{
UIButton* buttonTapped = (UIButton*)sender; //if typeof class etc....
if( buttonTapped.tag == self.thoughtBubbleID )
{
//Match
}
}
如果要进一步扩展这些按钮,另一个是子类UIButton并为你的枚举添加属性; (可能是大多数游戏制作中的情况)。
@interface SimonSaysButton : UIButton
@property (nonatomic) PontuacaoJogo imageID;
@end
无论哪种方式,我都不会比较图像相等性,而是测试数据,在您的情况下是枚举值。
答案 1 :(得分:0)
我设法工作:
我使用的解决方案是创建两个数组,一个用于气球图像,另一个用于按钮图像。所以,在if else语句中,我比较了两个数组的索引并且工作了!