• 关灯游戏的小总结


    关灯游戏总结

    首先创建“灯”类,继承UIView。

    创建“灯”的个数,在ViewController.m内创建多个大小相等的视图框,因为我们这些视图窗都要放在这个View里面。

               这时候可用用for循环,嵌套创建出行和列,然后给各个窗口添加一个tag标签,使用 窗口名.tag,方便稍后使用。

    //在屏幕上创建出4*7 28个视图(布局)

        for (int j=0; j<7; j++) {

            for (int i=0; i<4; i++) {

            Light *deng=[[Light alloc]initWithFrame:CGRectMake(i*80+5, j*60+10, 70, 50)];

                deng.tag=100+10*j+i;//为每个视图加上标签

            [self.view addSubview:deng];

            }

        }

     

    然后我们来丰富“灯”的内容。

    给他换换背景颜色(用图片代替,图片名为2.png):

    self.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"2"]];

    接下来我们来描写触摸时触发的事件:

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

        Light *lt1=(Light*)[self.superview viewWithTag:self.tag-1];

        Light *lt2=(Light*)[self.superview viewWithTag:self.tag+1];

        Light *lt3=(Light*)[self.superview viewWithTag:self.tag-10];

    Light *lt4=(Light*)[self.superview viewWithTag:self.tag+10];

    //以上为点击一个视图时,周围(上下左右)的视图跟着被选中。

    紧跟着我们给每个视图加入changeImage的动画效果,翻转

        [self changeImage];

        [lt1 changeImage];

        [lt2 changeImage];

        [lt3 changeImage];

        [lt4 changeImage];

    }

    翻转动画效果的实现如下:

    -(void)changeImage{

        [UIView beginAnimations:nil context:nil];//动画开始

        [UIView setAnimationDuration:1];

        //UIAnimationTransition翻转动画,是个枚举类,1为UIViewAnimationTransitionFlipFromLeft(向左翻转)

        [UIView setAnimationTransition:1 forView:self cache:YES];

    [UIView commitAnimations];

    增加翻转的内容以丰富游戏的趣味性,这时候我们就设计这么一个思想:当点击窗口1时 如果显示为A,那么变为B(四周窗口也进行此操作)。这时候我们就要有个判断的条件,所以我们先定义个实例用于判断:@property(assign,nonatomic)BOOL flag;//用于标记开关

    注:FANMIAN和ZHENGMIAN 使用的是宏用法,定义的内容:

    #define ZHENGMIAN [UIColor colorWithPatternImage:[UIImage imageNamed:@"1"]]

    #define FANMIAN [UIColor colorWithPatternImage:[UIImage imageNamed:@"2"]]

        //用三目运算写

        self.backgroundColor=self.flag?FANMIAN:ZHENGMIAN;

        self.flag=!self.flag;

        //普通判断法写

    //    if (self.flag==YES) {

    //       self.backgroundColor=FANMIAN;

    //        self.flag=NO;

    //    }

    //else{   

    //    self.backgroundColor=ZHENGMIAN;

    //    self.flag=YES;

    //}

    }

     

    这样我们就完成了整个游戏的基本创作,如果需要给他添加更多的更丰富的内容,我们可以在各个节点进行丰富~

  • 相关阅读:
    需求分析的方法与实践
    系统架构分析与设计方法论
    装修-3
    装修-2
    装修-1
    daikuan
    JAVA容器全面总结
    超图8C iserver启动成功,访问不了网站localhost:8090/iserver/manager,显示404
    Arcgis中给字段添加属性域
    arcgis for server搭建集群环境
  • 原文地址:https://www.cnblogs.com/amoy888/p/3391743.html
Copyright © 2020-2023  润新知