我在游戏中工作,我遇到一个问题我设置了两个按钮,当我点击第一个按钮时产生第一个玩家,当我点击第二个按钮时它会移除第一个玩家并产生第二个玩家和所有东西这很好,但问题是,当我点击第一个按钮时,它只会产生一个节点。
我怎样才能让它产生一个节点然后当我点击不生成电话我点击另一个按钮和第二个按钮相同的东西这是我的代码帮助请..
// Set button One
ButtoneOne = UIButton(frame: CGRect(x: 0, y: 0, width: frame.size.width / 25, height: frame.size.height / 20))
ButtoneOne.center = CGPoint(x: view.frame.size.width / 6.5, y: view.frame.size.height / 2)
ButtoneOne.setImage(ButtonTextureOne, forState: .Normal)
ButtoneOne.addTarget(self, action: #selector(Play.PlayesrOne), forControlEvents: UIControlEvents.TouchUpInside)
self.view?.addSubview(ButtoneOne)
func PlayesrOne() {
Player.removeFromParent()
PlayerTwo.removeFromParent()
PlayerOne = SKSpriteNode(imageNamed: "PlayerOne")
PlayerOne.size = CGSize(width: 150, height: 200)
PlayerOne.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2)
PlayerOne.zPosition = -1
self.addChild(PlayerOne)
}
答案 0 :(得分:0)
请记住,在iOS(而不仅仅是iOS)中,态度恶劣会给你的属性带来大写。
我不想重新考虑你的所有代码,我会尽量保持你的结构和方法:
buttoneOne = UIButton(frame: CGRect(x: 0, y: 0, width: frame.size.width / 25, height: frame.size.height / 20))
buttoneOne.center = CGPoint(x: view.frame.size.width / 6.5, y: view.frame.size.height / 2)
buttoneOne.setImage(ButtonTextureOne, forState: .Normal)
buttoneOne.addTarget(self, action: #selector(Play.PlayesrOne), forControlEvents: UIControlEvents.TouchUpInside)
self.view?.addSubview(buttoneOne)
func makePlayerOne() {
if (self.childNodeWithName("playerOne") == nil) {
playerOne = SKSpriteNode(imageNamed: "PlayerOne")
playerOne.size = CGSize(width: 150, height: 200)
playerOne.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2)
playerOne.zPosition = -1
playerOne.name = "playerOne"
self.addChild(playerOne)
}
}
func PlayesrOne() {
player.removeFromParent()
playerOne.removeFromParent()
playerTwo.removeFromParent()
makePlayerOne()
}
你可以为player2 spawn做同样的事情..