Ich habe ein Projekt erstellt, wo ich einen Ball habe und wenn die Ansicht lädt, fällt es runter, was gut ist. Ich versuche den Ball wieder hochzuspringen und wieder runterzufallen, wenn der Spritenode angetippt wird.Berühre Sprite, springe hoch und dann wieder runter (wiederhole so oft wie spritenode angetippt wird.)
--Dieser Frage war edited-- Ursprünglich konnte ich es bekommen, wenn sprite.userInteractionEnabled = false
zu arbeiten. Ich musste diese Aussage richtig stellen, um den Punktestand zu verändern.
Jetzt kann ich nicht die Kugeln angezapft zu fallen und werden zu springen. Wenn ich ball.physicsBody?.dynamic = true
wende, fallen die Bälle aufgrund der Schwerkraft. Wie tippe ich das Sprite selbst und lasse es springen.
GameScene.swift (Für diejenigen, die den Code für sich. Versuchen wollen)
import SpriteKit
class GameScene: SKScene {
var ball: Ball!
private var score = 0 {
didSet { scoreLabel.text = "\(score)" }
}
override func didMoveToView(view: SKView) {
let ball = Ball()
scoreLabel = SKLabelNode(fontNamed:"Geared-Slab")
scoreLabel.fontColor = UIColor.blackColor()
scoreLabel.position = CGPoint(x: self.frame.midX, y: 3 * self.frame.size.height/4)
scoreLabel.fontSize = 100.0
scoreLabel.zPosition = 100
scoreLabel.text = String(score)
self.addChild(scoreLabel)
ball.position = CGPoint(x:self.size.width/2.0, y: 440)
addChild(ball)
ball.physicsBody = SKPhysicsBody(circleOfRadius: 120)
ball.physicsBody?.dynamic = true
ball.physicsBody?.allowsRotation = false
ball.physicsBody?.restitution = 3
ball.physicsBody?.friction = 0
ball.physicsBody?.angularDamping = 0
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.usesPreciseCollisionDetection = true
}
class Ball: SKSpriteNode {
init() {
let texture = SKTexture(imageNamed: "Ball")
super.init(texture: texture, color: .clearColor(), size: texture.size())
userInteractionEnabled = true
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let scene = self.scene as! GameScene
scene.score += 1
}
Früher war es ein SKNode angezapft CGVectorMake
(Impuls, Geschwindigkeit) mit jetzt, es ist ein SKSpriteNode, und ich habe versucht mit SKAction
, aber es funktioniert entweder nicht, oder ich stelle es an den falschen Ort (berührt beginnen).
Vielen Dank. Es funktionierte. Ich kann nicht glauben, dass es so einfach war. –
meinst du, du könntest mir dabei helfen? Ich möchte nicht entfernen, dass du meine Frage beantwortet hast, weil du es richtig beantwortet hast, als ich es gefragt habe. –
aktualisierte meine Antwort @JNorris – ronatory