以植物大战僵尸为例:
// 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()
}
}