How do I increase a value by a number (cps) every second on single view?
I have been looking at previous questions, however, they seem to be outdated or do not work for my case. In my application I want to increase a variable (money) every second by another variable (cps). When I try doing forever loops or using timers, I either get errors or nothing occurs.
class SecondViewController: UIViewController
var money = 0
var cost = 20
var clicks = 1
var cost2 = 50
var CPS: Int = 0
var truth = true
@IBOutlet weak var costOutlet2: UILabel!
@IBOutlet weak var errorLabel: UILabel!
@IBOutlet weak var cpsButtonOutlet: UILabel!
@IBOutlet weak var clicksButtonOutlet: UIButton!
@IBOutlet weak var clicksOutlet: UILabel!
@IBOutlet weak var cpsOutlet: UILabel!
@IBOutlet weak var scoreOutlet2: UILabel!
@IBOutlet weak var costOutlet: UILabel!
@IBOutlet weak var cpsBtnOutlet: UIButton!
override func prepare(for backsegue: UIStoryboardSegue, sender: Any?)
let controller = backsegue.destination as! ViewController
controller.money = Int(scoreOutlet2.text!)!
controller.clicks = Int(clicksOutlet.text!)!
controller.CPS = Int(cpsOutlet.text!)!
controller.cost = Int(cost)
controller.cost2 = Int(cost2)
override func viewDidLoad()
super.viewDidLoad()
costOutlet2.isHidden = true
costOutlet.isHidden = true
costOutlet.text = "(cost)"
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
cpsOutlet.text = "(CPS)"
errorLabel.isHidden = true
clicksButtonOutlet.setTitle("$(cost): +1 Clicks", for: .normal)
cpsBtnOutlet.setTitle("$(cost2): +1 CPS", for: . normal)
override func viewDidAppear(_ animated: Bool)
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
@IBAction func addClicks(_ sender: Any)
if (money >= cost)
money = money - cost
scoreOutlet2.text = "(money)"
cost = cost * 3
clicks = clicks + 1
clicksOutlet.text = "(clicks)"
(sender as AnyObject).setTitle("$(cost): +1 Clicks", for:)
print(cost)
else
insufficent()
@IBAction func addCps(_ sender: Any)
if (money >= cost2)
money = money - cost2
scoreOutlet2.text = "(money)"
cost2 = cost2 * 3
CPS = CPS + 1
cpsOutlet.text = "(CPS)"
(sender as AnyObject).setTitle("$(cost2): +1 CPS", for:)
else
insufficent()
func insufficent()
errorLabel.isHidden = false
errorLabel.text = "Insufficent Funds"
DispatchQueue.main.asyncAfter(deadline: .now() + 3.5)
self.errorLabel.isHidden = true
I am currently trying to make a clicker game on Swift 4 Xcode 10, I am able to make the CPS increase when it is purchased, however, when it is bought the value of money does not go up every second. How can I make the variable "money" increase by whatever the value of "CPS" is.
ios swift
add a comment |
I have been looking at previous questions, however, they seem to be outdated or do not work for my case. In my application I want to increase a variable (money) every second by another variable (cps). When I try doing forever loops or using timers, I either get errors or nothing occurs.
class SecondViewController: UIViewController
var money = 0
var cost = 20
var clicks = 1
var cost2 = 50
var CPS: Int = 0
var truth = true
@IBOutlet weak var costOutlet2: UILabel!
@IBOutlet weak var errorLabel: UILabel!
@IBOutlet weak var cpsButtonOutlet: UILabel!
@IBOutlet weak var clicksButtonOutlet: UIButton!
@IBOutlet weak var clicksOutlet: UILabel!
@IBOutlet weak var cpsOutlet: UILabel!
@IBOutlet weak var scoreOutlet2: UILabel!
@IBOutlet weak var costOutlet: UILabel!
@IBOutlet weak var cpsBtnOutlet: UIButton!
override func prepare(for backsegue: UIStoryboardSegue, sender: Any?)
let controller = backsegue.destination as! ViewController
controller.money = Int(scoreOutlet2.text!)!
controller.clicks = Int(clicksOutlet.text!)!
controller.CPS = Int(cpsOutlet.text!)!
controller.cost = Int(cost)
controller.cost2 = Int(cost2)
override func viewDidLoad()
super.viewDidLoad()
costOutlet2.isHidden = true
costOutlet.isHidden = true
costOutlet.text = "(cost)"
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
cpsOutlet.text = "(CPS)"
errorLabel.isHidden = true
clicksButtonOutlet.setTitle("$(cost): +1 Clicks", for: .normal)
cpsBtnOutlet.setTitle("$(cost2): +1 CPS", for: . normal)
override func viewDidAppear(_ animated: Bool)
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
@IBAction func addClicks(_ sender: Any)
if (money >= cost)
money = money - cost
scoreOutlet2.text = "(money)"
cost = cost * 3
clicks = clicks + 1
clicksOutlet.text = "(clicks)"
(sender as AnyObject).setTitle("$(cost): +1 Clicks", for:)
print(cost)
else
insufficent()
@IBAction func addCps(_ sender: Any)
if (money >= cost2)
money = money - cost2
scoreOutlet2.text = "(money)"
cost2 = cost2 * 3
CPS = CPS + 1
cpsOutlet.text = "(CPS)"
(sender as AnyObject).setTitle("$(cost2): +1 CPS", for:)
else
insufficent()
func insufficent()
errorLabel.isHidden = false
errorLabel.text = "Insufficent Funds"
DispatchQueue.main.asyncAfter(deadline: .now() + 3.5)
self.errorLabel.isHidden = true
I am currently trying to make a clicker game on Swift 4 Xcode 10, I am able to make the CPS increase when it is purchased, however, when it is bought the value of money does not go up every second. How can I make the variable "money" increase by whatever the value of "CPS" is.
ios swift
2
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59
add a comment |
I have been looking at previous questions, however, they seem to be outdated or do not work for my case. In my application I want to increase a variable (money) every second by another variable (cps). When I try doing forever loops or using timers, I either get errors or nothing occurs.
class SecondViewController: UIViewController
var money = 0
var cost = 20
var clicks = 1
var cost2 = 50
var CPS: Int = 0
var truth = true
@IBOutlet weak var costOutlet2: UILabel!
@IBOutlet weak var errorLabel: UILabel!
@IBOutlet weak var cpsButtonOutlet: UILabel!
@IBOutlet weak var clicksButtonOutlet: UIButton!
@IBOutlet weak var clicksOutlet: UILabel!
@IBOutlet weak var cpsOutlet: UILabel!
@IBOutlet weak var scoreOutlet2: UILabel!
@IBOutlet weak var costOutlet: UILabel!
@IBOutlet weak var cpsBtnOutlet: UIButton!
override func prepare(for backsegue: UIStoryboardSegue, sender: Any?)
let controller = backsegue.destination as! ViewController
controller.money = Int(scoreOutlet2.text!)!
controller.clicks = Int(clicksOutlet.text!)!
controller.CPS = Int(cpsOutlet.text!)!
controller.cost = Int(cost)
controller.cost2 = Int(cost2)
override func viewDidLoad()
super.viewDidLoad()
costOutlet2.isHidden = true
costOutlet.isHidden = true
costOutlet.text = "(cost)"
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
cpsOutlet.text = "(CPS)"
errorLabel.isHidden = true
clicksButtonOutlet.setTitle("$(cost): +1 Clicks", for: .normal)
cpsBtnOutlet.setTitle("$(cost2): +1 CPS", for: . normal)
override func viewDidAppear(_ animated: Bool)
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
@IBAction func addClicks(_ sender: Any)
if (money >= cost)
money = money - cost
scoreOutlet2.text = "(money)"
cost = cost * 3
clicks = clicks + 1
clicksOutlet.text = "(clicks)"
(sender as AnyObject).setTitle("$(cost): +1 Clicks", for:)
print(cost)
else
insufficent()
@IBAction func addCps(_ sender: Any)
if (money >= cost2)
money = money - cost2
scoreOutlet2.text = "(money)"
cost2 = cost2 * 3
CPS = CPS + 1
cpsOutlet.text = "(CPS)"
(sender as AnyObject).setTitle("$(cost2): +1 CPS", for:)
else
insufficent()
func insufficent()
errorLabel.isHidden = false
errorLabel.text = "Insufficent Funds"
DispatchQueue.main.asyncAfter(deadline: .now() + 3.5)
self.errorLabel.isHidden = true
I am currently trying to make a clicker game on Swift 4 Xcode 10, I am able to make the CPS increase when it is purchased, however, when it is bought the value of money does not go up every second. How can I make the variable "money" increase by whatever the value of "CPS" is.
ios swift
I have been looking at previous questions, however, they seem to be outdated or do not work for my case. In my application I want to increase a variable (money) every second by another variable (cps). When I try doing forever loops or using timers, I either get errors or nothing occurs.
class SecondViewController: UIViewController
var money = 0
var cost = 20
var clicks = 1
var cost2 = 50
var CPS: Int = 0
var truth = true
@IBOutlet weak var costOutlet2: UILabel!
@IBOutlet weak var errorLabel: UILabel!
@IBOutlet weak var cpsButtonOutlet: UILabel!
@IBOutlet weak var clicksButtonOutlet: UIButton!
@IBOutlet weak var clicksOutlet: UILabel!
@IBOutlet weak var cpsOutlet: UILabel!
@IBOutlet weak var scoreOutlet2: UILabel!
@IBOutlet weak var costOutlet: UILabel!
@IBOutlet weak var cpsBtnOutlet: UIButton!
override func prepare(for backsegue: UIStoryboardSegue, sender: Any?)
let controller = backsegue.destination as! ViewController
controller.money = Int(scoreOutlet2.text!)!
controller.clicks = Int(clicksOutlet.text!)!
controller.CPS = Int(cpsOutlet.text!)!
controller.cost = Int(cost)
controller.cost2 = Int(cost2)
override func viewDidLoad()
super.viewDidLoad()
costOutlet2.isHidden = true
costOutlet.isHidden = true
costOutlet.text = "(cost)"
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
cpsOutlet.text = "(CPS)"
errorLabel.isHidden = true
clicksButtonOutlet.setTitle("$(cost): +1 Clicks", for: .normal)
cpsBtnOutlet.setTitle("$(cost2): +1 CPS", for: . normal)
override func viewDidAppear(_ animated: Bool)
scoreOutlet2.text = "(money)"
clicksOutlet.text = "(clicks)"
@IBAction func addClicks(_ sender: Any)
if (money >= cost)
money = money - cost
scoreOutlet2.text = "(money)"
cost = cost * 3
clicks = clicks + 1
clicksOutlet.text = "(clicks)"
(sender as AnyObject).setTitle("$(cost): +1 Clicks", for:)
print(cost)
else
insufficent()
@IBAction func addCps(_ sender: Any)
if (money >= cost2)
money = money - cost2
scoreOutlet2.text = "(money)"
cost2 = cost2 * 3
CPS = CPS + 1
cpsOutlet.text = "(CPS)"
(sender as AnyObject).setTitle("$(cost2): +1 CPS", for:)
else
insufficent()
func insufficent()
errorLabel.isHidden = false
errorLabel.text = "Insufficent Funds"
DispatchQueue.main.asyncAfter(deadline: .now() + 3.5)
self.errorLabel.isHidden = true
I am currently trying to make a clicker game on Swift 4 Xcode 10, I am able to make the CPS increase when it is purchased, however, when it is bought the value of money does not go up every second. How can I make the variable "money" increase by whatever the value of "CPS" is.
ios swift
ios swift
edited Nov 13 '18 at 17:02
rmaddy
240k27315379
240k27315379
asked Nov 13 '18 at 16:14
Nicholas KlahrNicholas Klahr
62
62
2
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59
add a comment |
2
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59
2
2
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59
add a comment |
1 Answer
1
active
oldest
votes
Try to use the code in your viewController
/...
override func viewDidLoad()
super.viewDidLoad()
increaseMoneyEverySecond()
private func increaseMoneyEverySecond()
money = money + CPS
DispatchQueue.main.asyncAfter(deadline: .now()+1) [weak self] in
if let strongSelf = self
strongSelf.increaseMoneyEverySecond()
/...
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53285140%2fhow-do-i-increase-a-value-by-a-number-cps-every-second-on-single-view%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try to use the code in your viewController
/...
override func viewDidLoad()
super.viewDidLoad()
increaseMoneyEverySecond()
private func increaseMoneyEverySecond()
money = money + CPS
DispatchQueue.main.asyncAfter(deadline: .now()+1) [weak self] in
if let strongSelf = self
strongSelf.increaseMoneyEverySecond()
/...
add a comment |
Try to use the code in your viewController
/...
override func viewDidLoad()
super.viewDidLoad()
increaseMoneyEverySecond()
private func increaseMoneyEverySecond()
money = money + CPS
DispatchQueue.main.asyncAfter(deadline: .now()+1) [weak self] in
if let strongSelf = self
strongSelf.increaseMoneyEverySecond()
/...
add a comment |
Try to use the code in your viewController
/...
override func viewDidLoad()
super.viewDidLoad()
increaseMoneyEverySecond()
private func increaseMoneyEverySecond()
money = money + CPS
DispatchQueue.main.asyncAfter(deadline: .now()+1) [weak self] in
if let strongSelf = self
strongSelf.increaseMoneyEverySecond()
/...
Try to use the code in your viewController
/...
override func viewDidLoad()
super.viewDidLoad()
increaseMoneyEverySecond()
private func increaseMoneyEverySecond()
money = money + CPS
DispatchQueue.main.asyncAfter(deadline: .now()+1) [weak self] in
if let strongSelf = self
strongSelf.increaseMoneyEverySecond()
/...
answered Nov 13 '18 at 16:29
GkoluniaGkolunia
828
828
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53285140%2fhow-do-i-increase-a-value-by-a-number-cps-every-second-on-single-view%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
The code you posted makes no attempt to update anything every second. Please show what you tried and clearly explain what issues you are having.
– rmaddy
Nov 13 '18 at 16:59