Marcelo
Marcelo

Reputation: 41

Use of Undeclared type 'NSEvent'

I am trying to make a mouse down event, but keep getting the error "Use of undeclared type 'NSEvent'" on the "override func mouseDown( theEvent: NSEvent!) { " line. After researching and trying different things, I still got nothing. Anyone had this problem before?

import UIKit
import SpriteKit


let BallCategoryName = "ball"
let MainBallCategoryName = "mainBall"

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        super.didMoveToView(view)

        // 1. Create a physics body that borders the screen
        let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
        // 2. Set the friction of that physicsBody to 0
        borderBody.friction = 0
        // 3. Set physicsBody of scene to borderBody
        self.physicsBody = borderBody

        physicsWorld.gravity = CGVectorMake(0, 0)

        let ball = childNodeWithName(BallCategoryName) as SKSpriteNode
        var mainBall = childNodeWithName(MainBallCategoryName) as SKSpriteNode

    ball.physicsBody!.applyImpulse(CGVectorMake(10, -10))

    ball.physicsBody!.allowsRotation = false
    ball.physicsBody!.friction = 0
    ball.physicsBody!.restitution = 1
    ball.physicsBody!.linearDamping = 0
    ball.physicsBody!.angularDamping = 0

}

override func mouseDown( theEvent: NSEvent!) {
    let action = SKAction.moveTo(
        CGPoint(x:theEvent.locationInWindow.x,y:theEvent.locationInWindow.y),
        duration:2
    );
    MainBallCategoryName.runAction(action)

 }
}

Upvotes: 2

Views: 2856

Answers (2)

rob mayoff
rob mayoff

Reputation: 385930

iOS devices don't have mice, and iOS doesn't have an NSEvent class. It has a UIEvent class, but there's nothing special about a function named mouseDown on iOS. iOS events report touches, not mouse buttons.

If you copied this code from a tutorial, the tutorial was for OS X, not iOS. You should find an iOS tutorial instead.

Upvotes: 2

CodeSmile
CodeSmile

Reputation: 64477

In an OS X app you should not:

import UIKit

but instead use

import AppKit

Upvotes: 1

Related Questions