我正在创建一个模式匹配游戏。基本上我在屏幕上有4个方形UIViews,颜色各异。我希望一个方格随机闪烁,然后另一个方格随机闪烁。例如,当游戏开始时,可以说随机选择一个红色框来闪烁。现在在第二次迭代中,红色框应该再次闪烁,然后是另一个随机选择的框,让它说是蓝色。所以现在我们有红色和蓝色。现在循环再次开始,现在它是红色,蓝色,绿色。这就是我想要完成的。如果这没有意义,请下载IOS游戏“Mimeo”,它应该传达我正在尝试做的事情。有人可以帮帮我吗?我没有运气,我试图在其他地方寻求帮助而没有运气。
// Created by Gary Dorman on 9/26/15.
// Copyright © 2015 Gary Dorman. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
var enemyArray = [Int]()
var userArray = [Int]()
var currentScore = 0
var highScore = 0
var randomNumber = 0
@IBOutlet weak var RedBox: UIView!
@IBOutlet weak var GreenBox: UIView!
@IBOutlet weak var BlueBox: UIView!
@IBOutlet weak var YellowBox: UIView!
@IBOutlet weak var ScoreLabel: UILabel!
@IBOutlet weak var TitleImageView: UIImageView!
@IBAction func startGameButton(sender: UIButton) {
self.resetCurrentScoreAndLabel()
self.increaseLevel()
}
func increaseLevel(){
var delayTime = 1.0
randomNumber = Int(arc4random_uniform(4) + 1)
enemyArray.append(randomNumber)
for level in 1...enemyArray.count{
animateColorBox(self.enemyArray[level - 1], delay: delayTime)
delayTime++
print(enemyArray[level - 1])
}
}
override func viewDidLoad() {
super.viewDidLoad()
configureBorderOnColorBoxes()
}
func configureBorderOnColorBoxes(){
RedBox.layer.borderColor = UIColor.blackColor().CGColor
GreenBox.layer.borderColor = UIColor.blackColor().CGColor
BlueBox.layer.borderColor = UIColor.blackColor().CGColor
YellowBox.layer.borderColor = UIColor.blackColor().CGColor
RedBox.layer.borderWidth = 3
GreenBox.layer.borderWidth = 3
BlueBox.layer.borderWidth = 3
YellowBox.layer.borderWidth = 3
}
func resetCurrentScoreAndLabel(){
currentScore = 0
ScoreLabel.text = "Score: \(currentScore)"
}
func animateColorBox(tagNumber: Int, delay: Double){
let pauseBetweenAnimation = 1.25
let originalColor:UIColor = self.view.viewWithTag(tagNumber)!.backgroundColor!
UIView.animateWithDuration(1.0, delay: (delay - 1) * pauseBetweenAnimation, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.view.viewWithTag(tagNumber)!.alpha = 0.25
}, completion: { finished in
UIView.animateWithDuration(0.5, delay: (delay - 1) * pauseBetweenAnimation, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.view.viewWithTag(tagNumber)!.alpha = 1
}, completion: nil)
})
}
}
答案 0 :(得分:1)
这是一个可能适合您的解决方案:
<complex>
通过这种方法,如果我从我想要的内容中正确地思考这个问题,您就可以在开始下一个视图的动画之前完成对集合中给定UIView的调光和不透明的执行。如果这对您有用,请告诉我。
编辑:
我意识到我已经取消了动画之间的暂停,但是您可以将它放在延迟区域中,以根据您的需要进行调整。
哦,我意识到我的第一篇文章没有检查敌人阵列中的值,所以让我改变一些东西。