-2
업 그레 이드를 구입할 때 상점 현장에서 SKSpriteNode의 이미지를 변경하려고합니다. 변수를 올바르게 추적하고 있다고 생각합니다.하지만 잘못하고 있다고 생각합니다. 고급에 도움을 주셔서 감사합니다, 나는 그것을 행운으로 파악하기 위해 잠시 노력했습니다.조건이 충족되면 SKSpriteNode 이미지를 변경하는 방법은 무엇입니까?
1) 조건이 충족 될 때 true로 전환 부울 변수를 만듭니다 :
// ShopScene.swift
// TheLastFlight
//
// Created by -Zachary Walensa- on 8/3/16.
// Copyright © 2016 -Zachary Walensa-. All rights reserved.
//
import Foundation
import SpriteKit
var coinUpgrade = defaults.integer(forKey: "coinUpgradeSaved")
var missileUpgrade = defaults.integer(forKey: "missileUpgradeSaved")
class ShopScene: SKScene {
var coinLabel = SKLabelNode(fontNamed: "The Bold Font")
var missileUpgrades = SKSpriteNode(imageNamed: "missile1")
override func didMove(to view: SKView) {
coinLabel.text = "Coins: \(coinNumber)"
coinLabel.fontSize = 100
coinLabel.fontColor = SKColor.black
coinLabel.zPosition = 1
coinLabel.position = CGPoint(x: self.size.width/2, y: self.size.height*0.1)
self.addChild(coinLabel)
let background = SKSpriteNode(imageNamed: "background")
background.size = self.size
background.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
background.zPosition = 0
self.addChild(background)
let mainMenu = SKLabelNode(fontNamed: "The Bold Font")
mainMenu.text = "Main Menu"
mainMenu.fontSize = 100
mainMenu.fontColor = SKColor.darkGray
mainMenu.position = CGPoint(x: self.size.width*0.5, y: self.size.height*0.3)
mainMenu.zPosition = 1
mainMenu.name = "Main Menu"
self.addChild(mainMenu)
let Life = SKSpriteNode(imageNamed: "lifeButton")
Life.position = CGPoint(x: self.size.width*0.3, y: self.size.height*0.8)
Life.zPosition = 1
Life.name = "Life"
self.addChild(Life)
let coinUpgrades = SKSpriteNode(imageNamed: "coinUpgrade")
coinUpgrades.position = CGPoint(x: self.size.width*0.5, y: self.size.height*0.8)
coinUpgrades.zPosition = 1
coinUpgrades.name = "Coin"
self.addChild(coinUpgrades)
missileUpgrades.position = CGPoint(x: self.size.width*0.8, y: self.size.height*0.8)
missileUpgrades.zPosition = 1
missileUpgrades.name = "missile"
self.addChild(missileUpgrades)
/*let coinLabel = SKLabelNode(fontNamed: "The Bold Font")
coinLabel.text = "Coins: \(coinNumber)"
coinLabel.fontSize = 100
coinLabel.fontColor = SKColor.black
coinLabel.zPosition = 1
coinLabel.position = CGPoint(x: self.size.width/2, y: self.size.height*0.1)
self.addChild(coinLabel) */
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches {
let pointOfTouch = touch.location(in: self)
let nodeITapped = atPoint(pointOfTouch)
if nodeITapped.name == "Main Menu" {
let sceneToMoveTo = MainMenuScene(size: self.size)
sceneToMoveTo.scaleMode = self.scaleMode
let myTrasition = SKTransition.fade(withDuration: 0.5)
self.view!.presentScene(sceneToMoveTo, transition: myTrasition)
}
if nodeITapped.name == "Life" {
if coinNumber >= 50 {
lifeNumber += 1
coinNumber -= 50
defaults.set(coinNumber, forKey: "coinNumberSaved")
defaults.set(lifeNumber, forKey: "lifeNumberSaved")
coinLabel.text = "Coins: \(coinNumber)"
}
}
if nodeITapped.name == "Coin" {
if coinNumber >= 600 {
coinNumber -= 600
defaults.set(coinNumber, forKey: "coinNumberSaved")
coinUpgrade = 1
defaults.set(coinUpgrade, forKey: "coinUpgradeSaved")
coinLabel.text = "Coins: \(coinNumber)"
}
}
if nodeITapped.name == "missile" {
if missileUpgrade == 2 {
missileUpgrade = 1
defaults.set(missileUpgrade, forKey: "missileUpgradeSaved")
if missileUpgrade == 1 {
missileUpgrade = 2
defaults.set(missileUpgrade, forKey: "missileUpgradeSaved")
}
}
else if missileUpgrade == 0 || coinNumber >= 1400 {
coinNumber -= 1400
defaults.set(coinNumber, forKey: "coinNumberSaved")
missileUpgrade = 2
defaults.set(missileUpgrade, forKey: "missileUpgradeSaved")
coinLabel.text = "Coins: \(coinNumber)"
missileUpgrades = SKSpriteNode(imageNamed: "missile")
}
}
}
}
}
하시기 바랍니다에만 게시물 관련 코드를. 질문에서이 많은 코드를 보는 것은 번거 로움이되어 사람들이 질문을 읽지 못하게합니다. – Nik