Хобрук: Ваш путь к мастерству в программировании

Swift 3 кнопка игры нажата циклически

У меня есть массив изображений, если я нажму кнопку, изображение появится случайным образом. и есть изображение вниз, также вызываемое из массива, но оно появляется случайным образом сразу после того, как я открыл игру. Я хочу сделать оператор условий для нажатия кнопки. например, у меня есть 5 условий после нажатия кнопки: 1- если нажато и появилось изображение, это не то же самое, что будет добавлена ​​оценка просмотра UIIMage 2- если кнопка не нажата в течение 2 секунд, появится вниз. 3- если кнопка нажата, и это то же самое, что и изображение пользовательского интерфейса, игра окончена. 4- Если он вычислил 4 изображения вниз, потому что он не попал в изображение за 2 секунды, он проиграет.

 var array:[UIImage] = [UIImage(named: "1.png")!,
                            UIImage(named: "2.png")!,
                            UIImage(named: "3.png")!,
                            UIImage(named: "4.png")!,
                            UIImage(named: "5.png")!,
                            UIImage(named: "6.png")!,
                            UIImage(named: "7.png")!,
                            UIImage(named: "8.png")!,
                            UIImage(named: "9.png")!,
                            UIImage(named: "10.png")!]

переменная случайная = arc4random_uniform(10)

@IBAction func myButtonPressed(button: UIButton) {

    var randomNum: UInt32 = 10
    randomNum = arc4random_uniform(UInt32(array.count))

    myButton.setImage(UIImage(named: "bird\(randomNum).png"), for: UIControlState.normal)

    // myButton.setImage(UIImage(named: "\(randomNum).png"), for: UI)


    self.myImage.animationImages = array

    let buttonWidth = myButton.frame.width
    let buttonHeight = myButton.frame.height

    // Find the width and height of the enclosing view
    let viewWidth = myButton.superview!.bounds.width
    let viewHeight = myButton.superview!.bounds.height

    // Compute width and height of the area to contain the button's center
    let xwidth = viewWidth - buttonWidth
    let yheight = viewHeight - buttonHeight

    // Generate a random x and y offset
    let xoffset = CGFloat(arc4random_uniform(UInt32(xwidth)))
    let yoffset = CGFloat(arc4random_uniform(UInt32(yheight)))

    // Offset the button's center by the random offsets.
    myButton.center.x = xoffset + buttonWidth / 2
    myButton.center.y = yoffset + buttonHeight / 2

   /* for i in array{

        if myButton != myImage{
            randomNum = arc4random_uniform(UInt32(array.count))

        }

        if else

    } */
}
13.09.2017

Ответы:


1

Возможно, вы могли бы попробовать что-то вроде этого. Что касается вашего первого условия, какова ваша переменная представления UIImage. Это другой вид UIImage, который отображается на раскадровке?

import UIKit

class ViewController: UIViewController {

    var array: [UIImage] = [UIImage(named: "1.png")!,
                            UIImage(named: "2.png")!,
                            UIImage(named: "3.png")!,
                            UIImage(named: "4.png")!,
                            UIImage(named: "5.png")!]



    @IBOutlet weak var myButton: UIButton!
    var pressed: Bool = false;
    var score: Int = 0;


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        //2nd Condition: if button did not press for 2 seconds will appear down
        if(pressed == false){
            Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(ViewController.doSomething), userInfo: nil, repeats: true)
        }


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func isPressed(_ sender: UIButton) {

        pressed = true;

        var randomNum: UInt32 = 10
        randomNum = arc4random_uniform(UInt32(array.count));

        myButton.setImage(UIImage(named: "\(randomNum).png"), for: .normal)

        // 1st Condition: if pressed and the image appeared is not same as the UIIMage view down score will be added
        if( UIImage(named: "\(randomNum).png") != myButton.currentImage){

            //Add View Down Score
            score += 1;
        }
        // 3rd Condition: if button pressed and it is same as the UIimage so game over
        else{

            // Game Over
        }



    }

    func doSomething() {
        // Not sure what you mean by will appear down
        print("Action")
    }

}

Я не совсем уверен, что делает ваше 4-е условие. Просьба уточнить

14.09.2017
  • Привет, да, у меня есть представление UIImage, которое является изображением вниз 14.09.2017
  • И у меня есть myButton, второе изображение будет появляться случайным образом, когда я нажимаю его, и произошло 4 условия. 14.09.2017
  • У вас есть git, возможно, я мог бы снять ваш репозиторий и попытаться отработать то, что у вас есть сейчас 14.09.2017
  • Я попробовал ваше исправление; изображение UIImage вниз исчезло. Он должен быть там и появляться случайным образом каждый раз, когда я открываю игру. поэтому, соответственно, изображение myButton имеет условия if. Я имел в виду, что изображение упадет. он потеряет изображение в состоянии, если он не нажмет кнопку в течение 2 секунд, оно опустится и сохранит их, если он соберет 4 изображения вниз, он потеряет, вы поняли, что я имею в виду, это сложно вместе. Какова функция завершения игры? 14.09.2017
  • Любая помощь для этого действия? 14.09.2017
  • Привет, извини, я работал над чем-то. Я постараюсь повторить то, что вы хотите сделать сегодня вечером. Было бы действительно здорово, если бы вы поместили свой код в какой-нибудь контроль версий (например, github), чтобы я мог снять его и работать с тем, что у вас есть. У вас есть гитхаб? 14.09.2017
  • Новые материалы

    Введение в контекст React
    В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

    Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
    Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

    Это оно
    Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

    7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
    Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

    Базовое руководство по переносу концепций обучения в глубокое обучение
    Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

    C в C.R.U.D с использованием React-Redux
    Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

    5 обязательных элементов современного инструмента конвейера данных
    В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..