打地鼠是一款可以用iOS知识来实现的一种游戏.其核心技术就是通过imageView来播放动画,点击button时来停止当前播放的动画开始击打地鼠的动画.话不多说直接上代码.

这是添加当前的背景图片,然后再背景图片上添加地鼠出现的imageView,并在每个imageView上添加个button来执行打击地鼠的事件.

- (void)viewDidLoad {
[super viewDidLoad];
//创建底层显示的背景图片
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
imageView.image = [UIImage imageNamed:@"back.png"];
//打开图片的交互(imageView默认是关闭的)
imageView.userInteractionEnabled = YES; for (int i = ; i < ; i++) {
for (int j = ; j < ; j++) {
//添加地鼠洞的图片
_imageV = [[UIImageView alloc] initWithFrame:CGRectMake(+*i, +*j, , )];
_imageV.image = [UIImage imageNamed:@"emptyhole.png"];
_imageV.tag = +i*+j+;
//创建每个洞的点击事件
_button = [UIButton buttonWithType:UIButtonTypeSystem];
_button.frame = CGRectMake(, , , );
[_button addTarget:self action:@selector(hit:) forControlEvents:UIControlEventTouchUpInside];
//给每个button添加tag值来确定你点击的是那个button
_button.tag = +i*+j+;
[_imageV addSubview:_button];
_imageV.userInteractionEnabled = YES;
[imageView addSubview:_imageV];
}
}
//指定当前现实的背景图片
self.view = imageView;
//添加计时器
[self addTimer];
// Do any additional setup after loading the view, typically from a nib.
}

在确定完成后添加计时器来实现在不同的时间段里在不同位置上出现地鼠.

//添加计时器来启动图片的播放
- (void)addTimer
{
_timer = [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(startGame) userInfo:nil repeats:YES];
}

实现计时器的方法来实现地鼠出洞的动画

//启动地鼠出洞的动画
- (void)startGame
{
//定义一个可变数组来存放播放的图片
NSMutableArray *arr = [NSMutableArray array];
//地鼠出洞的图片
for (int i = ; i < ; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",i]];
[arr addObject:image];
}
//地鼠回洞的图片
for (int i = ; i < ; i++) {
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"t%d.png",-i]];
[arr addObject:image];
}
//获取随机值来让地鼠在随机位置出现
NSInteger num = arc4random()%+;
//根据tag值来获取随机的现实地鼠图片的imageView
_imageV = (UIImageView *)[self.view viewWithTag:num];
//指定imageView的不妨图片的数组
_imageV.animationImages = arr;
//指定播放次数
_imageV.animationRepeatCount = ;
//指定播放时间
_imageV.animationDuration = ;
//开启播放
[_imageV startAnimating];
}

实现button的点击时间来执行地鼠被打击的效果.

- (void)hit:(UIButton *)sender
{
//根据点击button的tag值来获取当前的imageV
NSInteger num = sender.tag;
//根据button的tag值来获取当前点击的是那个imageview
_imageV = (UIImageView *)[self.view viewWithTag:num+];
//确定是哪个位置的button来执行点击事件
_button = (UIButton *)[self.view viewWithTag:num];
//判断当前点击的imageView是否在播放动画
if (_imageV.isAnimating == YES) {
//停止播放动画
[_imageV stopAnimating];
//定义一个可变数组来存储地鼠被击打时的图片
NSMutableArray *imageArr = [NSMutableArray array];
//地鼠被击打的图片
UIImage *image = [UIImage imageNamed:@"hit.png"];
//空洞的图片
UIImage *image1 = [UIImage imageNamed:@"emptyhole.png"];
//讲两张图片添加到可变数组中
[imageArr addObject:image];
[imageArr addObject:image1];
//指定播放动画的数组
_imageV.animationImages = imageArr;
//制动播放的次数(0为无限循环播放)
_imageV.animationRepeatCount = ;
//指定播放的时间
_imageV.animationDuration = ;
//开始播放动画
[_imageV startAnimating];
}else{
//如果点击的位置没有在播放动画执行的方法.
}
}

在写完这些代码你就可以完成一个打地鼠的游戏.

最后附上需要的图片,图片上方为图片在工程中的名字(冒号前是图片名字各位亲不要把冒号也复制了么么哒!!).

back:

enptyhole:

hit:

t1:

t2:

t3:

t4:

t5:

t6:

iOS伪实现打地鼠游戏的更多相关文章

  1. iOS版打地鼠游戏源码

    打地鼠游戏源码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源码,这也是一款高质量的打地鼠游戏源码,可以拥有逐步上升的关卡的设置,大家可以在关卡时设置一些商业化的模式来盈利的,非常完美的一款 ...

  2. 打地鼠游戏iOS源码项目

    打地鼠游戏源码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源码,这也是一款高质量的打地鼠游戏源码,可以拥有逐步上升的关卡的设置,大家可以在关卡时设置一些商业化的模式来盈利的,非常完美的一款 ...

  3. 打地鼠游戏ios源码

    打地鼠游戏源码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源码,这也是一款高质量的打地鼠游戏源码,可以拥有逐步上升的关卡的设置,大家可以在关卡时设置一些商业化的模式来盈利的,非常完美的一款 ...

  4. 打地鼠游戏iOS源代码项目

    打地鼠游戏源代码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源代码.这也是一款高质量的打地鼠游戏源代码.能够拥有逐步上升的关卡的设置,大家能够在关卡时设置一些商业化的模式来盈利的,很完美的 ...

  5. ios打地鼠游戏源代码

    打地鼠游戏源代码,游戏是一款多关卡基于cocos2d的iPad打地鼠游戏源代码,这也是一款高质量的打地鼠游戏源代码,能够拥有逐步上升的关卡的设置,大家能够在关卡时设置一些商业化的模式来盈利的,很完美的 ...

  6. 无聊的人用JS实现了一个简单的打地鼠游戏

    直入正题,用JS实现一个简单的打地鼠游戏 因为功能比较简单就直接裸奔JS了,先看看效果图,或者 在线玩玩 吧 如果点击颜色比较深的那个(俗称坏老鼠),将扣分50:如果点击颜色比较浅的那个(俗称好老鼠) ...

  7. 团队项目——打地鼠游戏(SPEC)系统性能评估测试

    1.SPEC测试的目标: 本轮测试的目的是测试打地鼠游戏的需求以及确保每个需求都能得到满足的方法.编写此需求说明书是为了使用户和开发人员对所开发的系统有一致的理解.通过阅读此说明书,开发人员可以了解当 ...

  8. ios版弹珠游戏源码

    这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op>     <ignore_js_op&g ...

  9. Android打地鼠游戏源码带道具购买的Android游戏开发

    这是一款基于安卓的打地鼠游戏,界面简洁,有level模式打地鼠和无尽模式打地鼠两种游戏模式,并可以通过商店使用金币进行道具的购买,道具可以让你更容易通关:同时金币可以在游戏通关的时候获取.工程中有较为 ...

随机推荐

  1. 使用 ServKit(PHPnow) 搭建 PHP 环境[图]

    http://servkit.org/guide 搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的 ...

  2. MongoDB 复制

    副本集:简单说,副本集就是有自动故障恢复功能的主从集群.主从集群和副本集最为明显的区别:副本集没有固定的“主节点”.整个集群会选出一个主节点.当其不能工作时,变更到其他节点.二者看起来非常相似:副本集 ...

  3. OpenGL进阶(十一) - GLSL4.x中的数据传递

    in out 对于 vertex shader,每个顶点都会包含一次,它的主要工作时处理关于定点的数据,然后把结果传递到管线的下个阶段. 以前版本的GLSL,数据会通过一些内建变量,比如gl_Vert ...

  4. where 1=1

    sql: where 1=1 1=1 永真, 1<>1 永假. 1<>1 的用处: 用于只取结构不取数据的场合 例如: 拷贝表 create   table_name   as ...

  5. MVC5 Entity Framework学习之Entity Framework高级功能

    在之前的文章中,你已经学习了怎样实现每一个层次结构一个表继承. 本节中你将学习使用Entity Framework Code First来开发ASP.NET web应用程序时能够利用的高级功能. 在本 ...

  6. 【筛素数表证明】【O[n]】

    void get_prime() { int cnt = 0; for (int i = 2; i < N; i++) { if (!tag[i]) p[cnt++] = i; for (int ...

  7. 反射操作辅助类ReflectionUtil

    这篇文章的目的是介绍这样一种方式,就是在写一个函数的时候,传递的参数是object类型的,在这个函数里面想访问这个参数对象的某一属性值,我们知道这个属性值的name,但是一般情况下,object对象是 ...

  8. ASP.NET中分布式事务的使用

    之前发表了一篇事务的存储过程,最近在做项目的时候遇到分布式事务,所有总结一下,跟大家分享和交流一下经验.首先说明为什么要分布式事务呢?先说说我在项目的哪里遇到分布式事务吧,我是在做网站后台开发的时候, ...

  9. Android studio教程:[3]修改背景主题

    android studio开发环境的背景主题是可以更改的,现在都流行黑色背景,这样让软件显得更高端大气的,更加赏心悦目,但最主要的还是看起来更舒适更顺眼.下面就教大家如何更改背景主题. 工具/原料 ...

  10. mvc 微软票据验证

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...