IOS开发基础02(序列帧动画)

这篇博客详细介绍了如何在iOS应用中实现序列帧动画,以植物大战僵尸游戏为例,通过创建UIImageView并封装动画方法`createAnimation`,展示了如何加载多张图片并设置动画效果,包括植物、僵尸等角色的动画播放过程。博客内容涵盖了UIImageView的使用、图片资源的加载以及动画的配置和启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以植物大战僵尸为例:



//  ViewController.swift

//  植物大战僵尸


import UIKit


class ViewController: UIViewController {

    

    //IOS显示图片基本都采用UIImageView


    override func viewDidLoad() {

        super.viewDidLoad()

        

        let imageView = UIImageView(frame: UIScreen.mainScreen().bounds)

        let backgroundImage = UIImage(named: "BackGround.png")

        //设置imageView显示的图片

        imageView.image = backgroundImage

        view.addSubview(imageView)

        

        //

        let flowerFrame:CGRect = CGRectMake(60, 100, 73, 73)

        createAnimation(flowerFrame, imgName: "flower1.tiff", n: (1, 19), imageName: "flower")

        //僵尸

        let BZombieFrame = CGRectMake(150, 40, 160, 160)

        createAnimation(BZombieFrame, imgName: "BZombie1.tiff", n: (1, 26), imageName: "BZombie")

        //僵尸2

        let ZombieFrame = CGRectMake(150, 240, 160, 160)

        createAnimation(ZombieFrame, imgName: "Zombie1.tiff", n: (0, 22), imageName: "Zombie")

        //窝瓜

        let guaFrame = CGRectMake(55, 200, 85, 85)

        createAnimation(guaFrame, imgName: "gua1.tiff", n: (1, 17), imageName: "gua")

        //豌豆

        let plantsFrame = CGRectMake(45, 300, 100, 100)

        createAnimation(plantsFrame, imgName: "plants1.tiff", n: (1, 10), imageName: "plants")

        

    }

    

    //封装动画方法

    func createAnimation(frames:CGRect, imgName:String, n:(Int, Int)/*定义元组,控制for循环*/, imageName:String) {

        let imageView = UIImageView(frame: frames)

        let image = UIImage(named: imgName)

        imageView.image = image

        view.addSubview(imageView)

        

        //序列帧动画:要播放的图片(animationImages:[UIImages]),播放时间(animationDuration:Double),播放次数(animationRepeatCount)

        var Images = [UIImage]()

        for i in n.0..<n.1 {

            //根据i构建图片名字

            let imagesName = "\(imageName)\(i).tiff"

            let image = UIImage(named: imagesName)

            Images.append(image!)

        }

        imageView.animationImages = Images

        imageView.animationDuration = Double(n.1) * 0.1

        //imageFlower.animationRepeatCount = 1

        //开始动画

        imageView.startAnimating()

    }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

    }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值