打地鼠是一款可以用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. 64位Win7安装+32位Oracle + PL/SQL 解决方法

    软件景象:64位win7.32位Oracle 10g. PL/SQL 9.0.4.1644 媒介:以前开辟用的都是32位体系,忽然换到64位上,安装景象真的有点麻烦了,尤其对于PL/SQL只支撑32位 ...

  2. LeeCode-Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  3. 【转】android 电池(三):android电池系统

    关键词:android电池系统电池系统架构 uevent power_supply驱动 平台信息: 内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV3 ...

  4. 【转】C++容器类

    C++容器类 C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等:后者包括set,map,multiset,multimap等. 若需要存储的元素数在 ...

  5. Pasha and String(思维,技巧)

    Pasha and String Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u S ...

  6. 开源 java CMS - FreeCMS1.9公布。

    FreeCMS商业版V1.9更新功能 添加Oracle数据库支持.

  7. Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程

    本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. ...

  8. 一起talk GDB吧(第七回:GDB监视功能)

    各位看官们.大家好.上一回中我们说的是GDB改动程序执行环境的功能.而且说了怎样使用GDB改动变量 的值.这一回中.我们继续介绍GDB的调试功能:监视功能.当然了,我们也会介绍怎样使用GDB的监视功 ...

  9. Sybase配置中文语言支持及字符集

    在windows平台上,Sybase ASE15.0.7安装完成后默认语言是:英语(us_english),默认字符集为:cp850.cp850是一个西欧字符集,虽然也能使用cp850字符集保存汉字, ...

  10. Kill命令模拟1

    #include<sys/types.h> #include<signal.h> #include<stdio.h> #include<stdlib.h> ...