【发布时间】:2017-09-21 13:49:28
【问题描述】:
这里有游戏的打印屏幕:
我有一个静态的 SKSpriteNode(播放器),它正在旋转到触摸的方向。这是我的代码:
class GameplayScene: SKScene, SKPhysicsContactDelegate {
static let Pi = CGFloat(Double.pi)
static let DegreesToRadians = Pi / 180
override func touchesMoved(_ touches: Set<UITouch>, with event:
UIEvent?) {
let curTouch = touches.first! as UITouch
let curPoint = curTouch.location(in: self)
let deltaX = self.player.position.x - curPoint.x
let deltaY = self.player.position.y - curPoint.y
let angle = atan2(deltaY, deltaX)
self.player.zRotation = angle + 90 * GameplayScene.DegreesToRadians
}
}
现在,我想每秒从与屏幕触摸方向相同的玩家身上发射子弹。当子弹移出屏幕时,我想实现“SKAction.removeFromParent”。
这是我的 fireMissile 函数:
func fireMissile() {
let missile = SKSpriteNode(color: .yellow, size: CGSize(width: 20,
height: 5))
missile.name = "Missile"
missile.position = CGPoint(x: player.position.x + 30, y:
player.position.y)
missile.zPosition = 2
missile.physicsBody = SKPhysicsBody(rectangleOf: missile.size)
missile.physicsBody?.isDynamic = false
missile.physicsBody?.categoryBitMask = ColliderType.Bullet
missile.physicsBody?.collisionBitMask = ColliderType.Enemy
missile.physicsBody?.contactTestBitMask = ColliderType.Enemy
self.addChild(missile)
}
【问题讨论】:
-
我不是已经给你这个答案了吗?
-
困惑,或者你在这里问两个不同的问题?你需要帮助移除子弹,还是帮助旋转坦克?或帮助移动坦克?这些都是单独的问题:)
-
Fluidify - 我想让子弹(从玩家)以恒定的速度朝屏幕上的触摸方向射击,基本上。抱歉,不清楚:P
-
确保您使用@Name 以便我们收到通知 :) 我只是再次遇到这个问题...
标签: swift sprite-kit skaction