关灯游戏无限关
来源:互联网 发布:java中interrupt用法 编辑:程序博客网 时间:2024/04/27 16:16
思路:在一个view上建两层button 然后改变最上面一层的背景颜色
效果图
这里用了button 分类
//声明@interface UIButton (CategoryButton)+ (UIButton *)roundRectButtonWithFrame:(CGRect)frame title:(NSString *)title target:(id)target action:(SEL)action;+ (UIButton *)buttonWithType:(UIButtonType)type frame:(CGRect)frame title:(NSString *)title target:(id)target action:(SEL)action;@end
//实现
@implementation UIButton (CategoryButton)+ (UIButton *)roundRectButtonWithFrame:(CGRect)frame title:(NSString *)title target:(id)target action:(SEL)action{ return [UIButton buttonWithType:UIButtonTypeRoundedRect frame:frame title:title target:target action:action]; }+ (UIButton *)buttonWithType:(UIButtonType)type frame:(CGRect)frame title:(NSString *)title target:(id)target action:(SEL)action{ UIButton *button = [UIButton buttonWithType:type]; button.frame = frame; [button setTitle:title forState:UIControlStateNormal]; [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; button.layer.borderWidth=4; button.layer.contentsScale=5; return button; }@end
//root.h文件
@interface RootViewController : UIViewController@property(assign,nonatomic)int state;// 灯的状态@property(assign,nonatomic)int RandomClick;//随机点击次数@end
//实现
- (void)viewDidLoad{ [super viewDidLoad]; // 添加背景图片// UIView *registeredView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];// UIImage *img=[UIImage imageNamed:@"2.png"];// [registeredView setBackgroundColor:[UIColor colorWithPatternImage:img]];// 设置背景颜色// registeredView.backgroundColor=[UIColor redColor];// [self.view addSubview:registeredView]; CGFloat x=0; CGFloat y=0; UIView *downView = [[UIView alloc]initWithFrame:self.view.frame]; [self.view addSubview:downView];// downView.tag = 10000; UIView *downView2 = [[UIView alloc]initWithFrame:self.view.frame]; [self.view addSubview:downView2]; downView2.tag = 20000; for (int i=1; i<6; i++) { for (int j=1; j<6; j++) { UIButton *button1=[UIButton roundRectButtonWithFrame:CGRectMake(x, y, 64, 96) title:@"" target:self action:@selector(offLamp:)]; button1.backgroundColor=[UIColor orangeColor]; [downView addSubview:button1]; UIButton *button=[UIButton roundRectButtonWithFrame:CGRectMake(x, y, 64, 96) title:@"" target:self action:@selector(offLamp:)]; button.backgroundColor=[UIColor redColor]; [downView2 addSubview:button]; button.tag =i*100+j;// 显示button上的tag值// NSString* str = [NSString stringWithFormat:@"%d",button1.tag];// [button1 setTitle:str forState:UIControlStateNormal];// NSLog(@"%d",button.tag);// 添加图片,并改变背景的状态// [button setBackgroundImage:[UIImage imageNamed:@"imgage.png"] forState:UIControlStateSelected]; x+=64; } x=0; y+=96; } [self initWith];}//初始化-(void)initWith{ for (int i=0; i<1+self.RandomClick; i++) { UIButton * button1=(UIButton*)[self.view viewWithTag:(arc4random()%5+1)*100+arc4random()%5+1]; [self offLamp:button1]; } }//过关并进入下一关-(void)win{ self.state = 0; UIView *view = [self.view viewWithTag:20000]; for (UIButton *but in [view subviews]) { if (but.backgroundColor == [UIColor redColor]) { self.state++; } if (self.state==25) { UIAlertView *aView = [[UIAlertView alloc]initWithTitle:@"恭喜你" message:@"你过关了" delegate:self cancelButtonTitle:@"下一关" otherButtonTitles:nil]; [aView show]; self.RandomClick++; [self initWith]; } }}//点击事件/这里如果用seleated还可以优化-(void)offLamp:(UIButton *)button{ if (button.backgroundColor==[UIColor redColor]) { button.backgroundColor=[UIColor clearColor]; }else{ button.backgroundColor=[UIColor redColor]; } UIView *button1=[self.view viewWithTag:button.tag+100]; if (button1.backgroundColor==[UIColor redColor]) { button1.backgroundColor=[UIColor clearColor]; }else{ button1.backgroundColor=[UIColor redColor]; } UIView *button2=[self.view viewWithTag:button.tag-100]; if (button2.backgroundColor==[UIColor redColor]) { button2.backgroundColor=[UIColor clearColor]; }else{ button2.backgroundColor=[UIColor redColor]; } UIView *button3=[self.view viewWithTag:button.tag+1]; if (button3.backgroundColor==[UIColor redColor]) { button3.backgroundColor=[UIColor clearColor]; }else{ button3.backgroundColor=[UIColor redColor]; } UIView *button4=[self.view viewWithTag:button.tag-1]; if (button4.backgroundColor==[UIColor redColor]) { button4.backgroundColor=[UIColor clearColor]; }else{ button4.backgroundColor=[UIColor redColor]; } [self win];}
- 关灯游戏无限关
- IOS关灯游戏 无限关卡
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- 关灯游戏
- IOS 关灯游戏
- 关灯游戏源代码
- ios关灯游戏源代码
- UI关灯游戏 代码
- OC关灯游戏
- UITouchView实现关灯游戏
- IOS UI 关灯游戏
- WPF获取窗口句柄
- Easyui和IE浏览器的兼容问题
- 【Matlab学习笔记】【编程实例】二(将两幅灰度图片调整成相同的尺寸,然后左右拼接到一起)
- latch free等待事件
- 黑马程序员--面向对象的三大基本特征(多态)(04)
- 关灯游戏无限关
- 微信webview中以图片相册形式打开页面中图片
- linux 常用的命令
- 详解大端模式和小端模式
- jquery表格树插件的制作过程
- 一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案
- Maven依赖的继承
- Effective Objective-C 2.0:Item 25: Always Prefix Category Names on Third-Party Classes
- std::string 的用法总结