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 MJViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    // 1.获得tom.plist的全路径
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *path = [bundle pathForResource:@"tom" ofType:@"plist"];

    // 2.根据文件路径加载字典
    _dict = [NSDictionary dictionaryWithContentsOfFile:path];
}

- (void)playAnim:(int)count fliename:(NSString *)filename {

    // 1.创建可变数组
    NSMutableArray *images = [NSMutableArray array];

    // 2.添加图片
    for (int i = 0; i<count; i++) {

        // 图片名
        NSString *name = [NSString stringWithFormat:@"%@_%02d.jpg", filename, i];
        // 全路径
        NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:nil];

        // 加载图片(缓存)
//        UIImage *img = [UIImage imageNamed:name];
        // 没有缓存
        UIImage *img = [[UIImage alloc] initWithContentsOfFile:path];

        [images addObject:img];
    }

    // 3.设置动画图片(有顺序)
    _tom.animationImages = images;// 序列帧动画

    // 4.只播放一次
    _tom.animationRepeatCount = 1;

    // 5.设置动画的持续时间
    _tom.animationDuration = 0.1 * count;

    // 5.开始动画
    [_tom startAnimating];
}

#pragma mark 监听所有的按钮点击
- (IBAction)btnClick:(UIButton *)sender {

    // 1.如果tom正在播放动画,直接返回
    if (_tom.isAnimating) return;

    // 2.取出按钮文字
    NSString *title = [sender titleForState:UIControlStateNormal];

    // 3.获得图片数量
    int count = [_dict[title] intValue];

    // 4.播放动画
    [self playAnim:count fliename:title];
}

@end

  

时间: 2024-11-13 09:34:25

IOS 汤姆猫代码的相关文章

简单汤姆猫代码实现

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 @pro

汤姆猫代码实现

// // 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开发:纯代码实现汤姆猫小游戏

演示效果如下: 代码如下: 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 学习04 汤姆猫开发

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

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

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

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

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

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

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

一个不会说话的汤姆猫游戏源码

实现“会说话的汤姆猫” App 互动效果,除了不能发出声音,动画效果与原App十分类似.基本原理是,根据选择的不同动作,播放对应的图像序列.支持图片缓存. 游戏项目源码下载:http://code.662p.com/view/7150.html 详细说明:http://ios.662p.com/thread-1874-1-2.html