【发布时间】:2017-12-05 14:18:27
【问题描述】:
我有一个主玩家节点和随机下来的敌人,但他们中的一部分在框架之外,我想让他们(和玩家)无法离开框架、左右边界。我怎样才能做到这一点?
感谢您的时间和精力:)
这是我的敌对线,不知道这有什么帮助,但它就在这里,所以我不会因为“太宽泛”而被举报
func launchEnemy() {
let randomX = arc4random_uniform( UInt32(screenWidth))
EnemyMissile.position = CGPoint( x: CGFloat(randomX) - (screenWidth / 2), y: screenHeight + 50)
let action = SKAction.move(by: CGVector(dx: 0, dy: -400 + speedScore), duration: 5.0)
EnemyMissile.run(SKAction.repeatForever(action))
increaseSpeed()
self.run(action, withKey:"LaunchEnemyAction")
}
这是我的EnemyClass
import Foundation
import SpriteKit
class EnemyClass: SKNode {
var EnemyNode:SKSpriteNode = SKSpriteNode()
var hitsToKill:Int = 2
var hitCount:Int = 0
var damagePoints: Int = 2
//var missileAnimation:SKAction?
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) had not been implemented")
}
override init () {
super.init()
}
func createEnemy ( _ theImage:String) {
EnemyNode = SKSpriteNode(imageNamed: theImage)
self.addChild(EnemyNode)
let body:SKPhysicsBody = SKPhysicsBody(circleOfRadius: EnemyNode.size.width / 2.25, center:CGPoint(x: 0,y: 0))
body.isDynamic = true
body.affectedByGravity = false
body.allowsRotation = false
body.categoryBitMask = BodyType.enemy.rawValue
body.contactTestBitMask = BodyType.bullet.rawValue | BodyType.player.rawValue
self.physicsBody = body
self.name = "EnemyClass"
}
func destroy() {
self.removeFromParent()
self.name = "removeNode"
}
func hit() -> Bool {
hitCount += 1
if ( hitCount == hitsToKill) {
destroy()
return true
} else {
damagePoints = 4
EnemyNode.removeAction(forKey: "animation")
return false
}
}
}
【问题讨论】:
-
您需要在这个问题上做更多的工作,尝试在可以获得特定答案的地方创建它。解释你做了什么并展示了一些工作,问题越彻底和简洁,答案就越好。在我投票决定关闭之前,我会给你一些时间来重做这个。
-
@Knight0fDragon 你是什么意思?没有要解决的特定“问题”,所以我不确定如何为我的问题提供更多信息或“工作”,而不是发布我的整个 GameScene,这在这种情况下是完全没有必要的。
-
那你来错地方了。请参阅stackoverflow.com/tour 了解如何提出适合这种格式的问题。也许您的广泛问题最好在developer.apple.com/devforums 提出。
-
@Knight0fDragon 我知道我没有找错地方,因为我在这里问了一段时间的问题,我已经看到很多类似的问题,被“广泛”回答。所以先生,请原谅我,我正在等待有人可以帮助我解决我的无知。谢谢。
-
这对我来说似乎不是一个 -2 问题@-@()
标签: swift sprite-kit 2d-games