zoukankan      html  css  js  c++  java
  • 关灯游戏的小总结

    关灯游戏总结

    首先创建“灯”类,继承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;

    //}

    }

     

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

  • 相关阅读:
    hive使用derby的服务模式(可以远程模式)
    使用sqoop过程
    使用mongodump及mongorestore备份及恢复数据
    sql server 2000 错误229 拒绝了对象sysobjects 的select 权限
    node.js 连接 sql server 包括低版本的sqlserver 2000
    centos7 安装jdk1.8
    mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
    该网页已屏蔽以下插件Adobe Flash Player
    关于IntelliJ IDEA 文档无法编辑的解决办法
    华硕_ZX50JX4200 安装ssd固态盘
  • 原文地址:https://www.cnblogs.com/amoy888/p/3391743.html
Copyright © 2011-2022 走看看