简单汤姆猫代码实现

 1 //
 2 //  ViewController.m
 3 //  091215TomCat
 4 //
 5 //  Created by LongMa on 15/9/12.
 6 //  Copyright (c) 2015年 Dast. All rights reserved.
 7 //
 8
 9 #import "ViewController.h"
10
11 @interface ViewController ()
12 - (IBAction)knockDown;
13 @property (weak, nonatomic) IBOutlet UIImageView *imgView;
14 - (IBAction)drink;
15 /**
16  *  对不同时间重构后的响应代码
17  *
18  *  @param name 图片前面部分
19  *  @param len  可变数组长度:图片个数
20  */
21 - (void)catActionWithFrontName:(NSString*)name
22                   andlength:(int)len;
23
24 @end
25
26 @implementation ViewController
27
28 - (void)viewDidLoad
29 {
30   [super viewDidLoad];
31
32 }
33 - (IBAction)knockDown
34 {
35   [self catActionWithFrontName:@"knockout_" andlength:80];
36 }
37
38
39 - (IBAction)drink
40 {
41   [self catActionWithFrontName:@"drink_" andlength:80];
42
43 }
44
45 - (void)catActionWithFrontName:(NSString*)name
46                   andlength:(int)len
47 {
48 //二、  为了防止动画执行时被其他时间打断,添加
49   if (self.imgView.isAnimating)
50   {
51     return;//正在运行就不响应点击事件,直接跳出方法。
52   }
53   
54 //  一、实现动画(1.动画数组存的是图片对象 2.先设置播放次数和持续时间再开始动画)并提取重复代码
55   //1.准备UIImage对象数组
56   NSMutableArray *arr = [NSMutableArray array];
57   
58   for (int i = 0; i < len; i++)
59   {
60     //   拼接文件名
61     NSString *str = [NSString stringWithFormat:@"%@%02d.jpg", name, i ];
62     //    转为UIImage对象
63     
64 //    三、内存叠加问题:imageNamed方法会缓存图片,故改为从文件获得:
65 //    此时注意两点:1.非png格式要移到Supporting Files里(拖拽成棕色文件夹即成功)
66 //                2.代码里文件名要加上 类型后缀、
67     NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:nil];//居然忘了
68     UIImage *img = [UIImage imageWithContentsOfFile:path];
69     
70 //    根据文件名查找图片并转化为图片对象
71 //    UIImage *img = [UIImage imageNamed:str];
72     //    对象加入临时的UIImage对象数组
73     [arr addObject:img];
74   }
75   //  把临时可变数组赋值给  用于动画的UIImage对象数组
76   //  上面的都是为这一步准备
77   self.imgView.animationImages = arr;
78   
79   //   设置并开始动画
80   [self.imgView setAnimationRepeatCount:1];
81   [self.imgView setAnimationDuration:arr.count * 0.08];
82   [self.imgView startAnimating];
83 //  四、动画结束时释放内存
84 //  self.imgView.animationImages = nil;//错误!程序环机制,需要设置时间延迟后再执行:
85   
86   //注意:1.perform [email protected] 3.set+数组名+冒号
87   [self.imgView performSelector:@selector(setAnimationImages:) withObject:nil
88                      afterDelay:arr.count * 0.08 + 1];
89 }
90 @end

时间: 2024-11-03 16:59:42

简单汤姆猫代码实现的相关文章

汤姆猫代码实现

// // ViewController.m // Tom // // Created by administrator on 15/8/4. // Copyright (c) 2015年 gengcong. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *tom; - (IB

IOS 汤姆猫代码

// // MJViewController.m // 03-Tom // // Created by apple on 13-11-24. // Copyright (c) 2013年 itcast. All rights reserved. // #import "MJViewController.h" @interface MJViewController () { NSDictionary *_dict; // 保存所有图片的个数 } @end @implementation

声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码

上周看到一个变调算法,挺有意思的,原本计划尝试用来润色TTS合成效果的. 实测感觉还需要进一步改进,待有空再思考改进方案. 算法细节原文,移步链接: http://blogs.zynaptiq.com/bernsee/pitch-shifting-using-the-ft/ C++开源的项目,比较老的一个项目了. 源码下载地址: http://blogs.zynaptiq.com/bernsee/download/ 本人对这份算法源码进行简单的优化调整. 稍微提升了一点性能. 修改后的完整代码:

iOS开发:纯代码实现汤姆猫小游戏

演示效果如下: 代码如下: 1 // 2 // CKViewController.m 3 // 纯代码实现汤姆猫 4 // 5 // Created by FrankChen on 14-12-10. 6 // Copyright (c) 2014年 diaozhatian. All rights reserved. 7 // 8 9 #import "CKViewController.h" 10 11 @interface CKViewController () 12 { 13 //

汤姆猫游戏核心代码 ios/objective-c

#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *tomImageView; @end @implementation ViewController //敲汤姆猫的头部.前提:一系列动画已经导入. (IBAction)btnKnockOutonclicked:(UIButton *)sender{ [self tomImate

IOS 开发笔记-基础 UI(7)汤姆猫(UIImageView 的序列帧动画、图片加载,方法重构、Bundle 图片素材)

使用UIImageView.UIButton实现一个综合小案例---汤姆猫 回忆:UIImageView 来自UIView,UIView 来自UIResponder,UIButton 来自UIControl,UIControl 来自UIView 单独看实现,代码实现其实比较简单,但是创意很难得,美工要求很高! 是一个了不起的游戏! 功能分析 (1)点击对应的按钮后,让汤姆猫展现对应的动画 步骤分析 (1)搭建UI界面,同时也是准备素材 (2)监听按钮点击 (3)根据点击的按钮执行对应的动画 说明

IOS 学习04 汤姆猫开发

IOS开发,一个简单的汤姆猫开发,截图如下: 1.1以前一直觉得这个小游戏不错,很好玩,现在学习IOS才发现其实这个程序真心很简单,其实这个还不是个完整,还没有声音,以后再来完整. 1.2 创建项目,导入图片,在项目images.xcassets中保存PNG图片,这里只保存6个按键图片,图片文件直接拉进就可以,如下图: 1.3 相信大多数人都玩过这个小游戏,其实这就是一个动画,而动画就是由多个图片连在一起播放的,最后看起来就是动画了. 1.4 知道了动画的原理,那就好办了,我们再来导入按键相对应

[UI基础][不会说话的汤姆猫]

会说话的汤姆猫这个APP层级风靡一时,其UI部分就是利用了序列动画的技术, 接下来 我们用汤姆猫来演示怎么制作序列动画. [要求]: 1.学会使用序列动画的方法 2.学会分析动画播放中内存占用高的问题,并解决 [实现] 1.搭建UI界面 1.1.设置模拟器的屏幕尺寸3.7,添加素材 我们的素材文件是是按照3.7Inch的大小,设置屏幕大小为3.7Inch,添 加动画的素材到工程. 2.2.添加控件 2.2.1.添加背景图片 我们用ImageView控件来实现动画,首先添加一个UIViewImag

[iOS基础控件 - 3.4] 汤姆猫

需求: 1.点击按钮播放相应动画 2.点击汤姆猫身体部分(头.脚.尾巴)显示动画 3.当前正在播放动画不可触发其他动画 4.优化缓存.内存管理 A.序列帧动画 #1. png格式的文件可以不带扩展名访问,而且可以放到”Images.scassets”的组中预览,jpg只能放到support file中了,而且访问的时候要写上扩展名 #2. 在ViewController中的属性栏可以设置storyboard模型的大小 #3. 拖入文件夹的时候要选择“Create Groups"才能正确引用,不要