//
//  ViewController.m
//  OcDemoTest
//
//  Created by Mac on 2023/7/14.
//

#import "ViewController.h"



@interface ViewController ()
// label
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
// Use of undeclared identifier
// 全局

@property (nonatomic,strong) NSArray *standImages;
@property (nonatomic,strong) NSArray *samallImages;
@property (nonatomic,strong) NSArray *bigimage;


@end

@implementation ViewController

/***
 图片的两种加载方式
   1.imageNamed:该资源也不会被从内存中干掉
    放到Assets.xcassets图片 默认缓存
    使用 场景图片经常使用
  iimageWithcontentsOfFile
  指向它的指针销毁,该资源会被内存中干掉
   放到项目中的图片没有缓存
 使用场景。不经常用,大批量图片
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    // 1.加载所有站立的图片
//    NSMutableArray<UIImage *> *standImages = [NSMutableArray array];
//    for(int i = 0;i<10;i++){
//        // 获取所有图片名称
//        NSString *imageName = [NSString stringWithFormat:@"stand_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [standImages addObject:image];
//    }
  self.standImages = [self loadAllImagesWithimagePrefix:@"stand" count:10];
    
//    NSMutableArray<UIImage *> *samallImages = [NSMutableArray array];
//    for(int i = 0;i<39;i++){
//        // 获取所有图片名称
//        NSString *imageName = [NSString stringWithFormat:@"xiaozhao3_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [samallImages addObject:image];
//    }
   self.samallImages = [self loadAllImagesWithimagePrefix:@"xiaozhao3" count:39];
//    NSMutableArray<UIImage *> *bigimage = [NSMutableArray array];
//    for(int i = 0;i<87;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"dazhao_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [bigimage addObject:image];
//    }
//    self.bigimage = bigimage;
    
  self.bigimage = [self loadAllImagesWithimagePrefix:@"dazhao" count:87];
    
    // 进来就站立
    [self stand];
    
    
}

// 封装方法
// 加载所有图片
/**
   imagePrefix  名称
    count   数量
 */
-(NSArray *)loadAllImagesWithimagePrefix:(NSString *)imagePrefix count:(int)count{
    NSMutableArray<UIImage *> *images = [NSMutableArray array];
    for(int i = 0;i<count;i++){
        // 获取所有图片的名称
        NSString *imageName = [NSString stringWithFormat:@"%@_%d",imagePrefix,i+1];
        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
        NSString *imagePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
        UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
        // 装入数组
        [images addObject:image];
    }
    return images;
    
}
// 放招

// 站立
- (IBAction)stand{
    // 加载所有图片
//    NSMutableArray<UIImage *> *standImages = [NSMutableArray array];
//    for(int i = 0;i<10;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"stand_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [standImages addObject:image];
//    }
//     //设置画图片
//    self.imageView.animationImages = self.standImages;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 0;
//    // 设置播放时长
//    self.imageView.animationDuration = 0.5;
//    // 播放
//    [self.imageView startAnimating];
    
    //[self stand];
  [self playZhaoWithImage:self.standImages playcount:0 duration:0.5 isStand:YES];
    
}

// 小招
- (IBAction)smallZhao {
    // 加载所有图片
//    NSMutableArray<UIImage *> *samallImages = [NSMutableArray array];
//    for(int i = 0;i<39;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"xiaozhao3_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [samallImages addObject:image];
//    }
    // 设置动画图片
//    self.imageView.animationImages = self.samallImages;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 1;
//    // 设置播放时长
//    self.imageView.animationDuration = 1;
//    // 播放
//    [self.imageView startAnimating];

    // 释放后站立 延迟
    // Selector方法
    // Object 参数
    // afterDelay 时间
   // [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];
    [self playZhaoWithImage:self.samallImages playcount:1 duration:1.5 isStand:NO];
    

    
}

// 大招
- (IBAction)bigZhao{
    // 加载所有图片
//    NSMutableArray<UIImage *> *bigimage = [NSMutableArray array];
//    for(int i = 0;i<87;i++){
//        // 获取所有图片的名称
//        NSString *imageName = [NSString stringWithFormat:@"dazhao_%d",i+1];
//        // 创建UIImage
//        UIImage *image = [UIImage imageNamed:imageName];
//        // 装入数组
//        [bigimage addObject:image];
//    }
    // 设置动画图片
//    self.imageView.animationImages = self.bigimage;
//    // 设置播放次数
//    self.imageView.animationRepeatCount = 1;
//    // 设置播放时长
//    self.imageView.animationDuration = 2.0;
//    // 播放
//    [self.imageView startAnimating];

   // [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];

   [self playZhaoWithImage:self.bigimage playcount:1 duration:2.0 isStand:NO];
}
// 游戏结束
- (IBAction)gameOver:(id)sender {
    self.standImages = nil;
    self.samallImages = nil;
    self.bigimage = nil;
    self.imageView.animationImages = nil;
    
    
}

-(void)playZhaoWithImage:(NSArray *)images playcount:(NSInteger)playcount duration:(double)duration isStand:(BOOL)isStand{
    self.imageView.animationImages = images;
    // 设置播放次数
    self.imageView.animationRepeatCount = playcount;
    // 设置播放时长
    self.imageView.animationDuration = duration;
    // 播放
    [self.imageView startAnimating];
    
    //站立
    if(!isStand){
        [self performSelector:@selector(stand) withObject:nil afterDelay:self.imageView.animationDuration];

    }
    
}


@end

 

原文地址:https://blog.csdn.net/weixin_38107457/article/details/131744111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37826.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注