打地鼠是一款可以用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. PHP MySQL 连接数据库 之 Connect

    连接到一个 MySQL 数据库 在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接. 在 PHP 中,这个任务通过 mysql_connect() 函数完成. 语法 mysql_conn ...

  2. vector的内存分配与释放

    1. vector内存分配 <Effective STL>中"条款14":使用reserve来避免不必要的重新分配 关于STL容器,最神奇的事情之一是只要不超过它们的最 ...

  3. .NET 4 并行(多核)编程系列之一入门介绍

    .NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下:  1. 并行编程和多线程编程的区别.  ...

  4. WIN7 64位系统安装JDK并配置环境变量

    本文来自:http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html 工具/原料 JDK 方法/步骤   首先,下载JDK安装包,到官 ...

  5. 把Storyboard减轻的方法

    把Storyboard减轻的方法 by 伍雪颖 UIViewController *secondStoryboard = [[UIStoryboard storyboardWithName:@&quo ...

  6. js的for in循环和java里的foreach循环的差别

    js里的for in循环定义例如以下: for(var variable in obj) { ... } obj能够是一个普通的js对象或者一个数组.假设obj是js对象,那么variable在遍历中 ...

  7. 【巧妙消维DP】【HDU2059】龟兔赛跑

    龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. sql server去除重复信息,

    SELECT st_id FROM ( SELECT *,ROW_NUMBER() OVER( PARTITION BY st_code ORDER BY st_code ) AS num FROM ...

  9. OC——动态添加Button和监听UIAlertView按钮

    1:动态添加uibutton - (IBAction)addButton:(id)sender { CGRect frame = CGRectMake(90, 200, 200, 60); UIBut ...

  10. windows8开发学习笔记

    XAML行列定义 <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> &l ...