Kenny Kiriga
Kenny Kiriga

Reputation: 39

border restitution/bounciness not working (swift programming)

Excuse the naming conventions and the way I indent and create new spaces in my code I know it's not normal but i'm weird D:

Anyway I set my restitution to 1 and it didn't seem to work so I even tried 1.0 to see if I had to do it that way and it didn't work. By it i'm referring to object(s) bouncing off the borders/frame.

I can't do CGVectorMake either since the swift i'm using doesn't allow it. Anyone have any helpful tips?

Only idea I had was to change gravity of the frame itself but everything I try doesn't work. Thanks!

//
//  GameScene.swift
//  Pong
//
//  Created by Mac2 on 1/16/17.
//  Copyright © 2017 Mac2. All rights reserved.
//

import SpriteKit
import GameplayKit

class GameScene: SKScene
{
     var trump = SKSpriteNode()
     var player = SKSpriteNode()
     var opponent = SKSpriteNode()

override func didMove(to view: SKView)
{
    //essentially link them to the physical nodes we created in the gamescene
    trump = self.childNode(withName: "trump") as! SKSpriteNode
    player = self.childNode(withName: "player") as! SKSpriteNode
    opponent = self.childNode(withName: "opponent") as! SKSpriteNode

    //to initialize the game we need the ball to be going somewhere so we make it go on an angle to the player (not opponent)

    trump.physicsBody?.applyImpulse(CGVector(dx: -20, dy: -20))

    let border = SKPhysicsBody(edgeLoopFrom: self.frame)
    //create variable representing the frame or border of the gamescene

    border.friction = 0 //we don't want friction to the borders
    border.restitution = 1.0 //we want bouncyness to the borders

    self.physicsBody = border //wrap it all up and save it as the physics representation of the gamescene frame
}

override func update(_ currentTime: TimeInterval)
{
    // Called before each frame is rendered
}
}

Upvotes: 1

Views: 160

Answers (0)

Related Questions