iOSの開発に興味を持ち簡単な例で試してみようと
swiftの勉強を始めました。
そこで画面上に丸(型:SKShapeNode)を表示し
update()で動かしてみようと思ってコードを書いていたところ
下記の問題にぶつかりました。知識が浅いためか調べても解決できなかったため質問させていただきました。とても初歩的な質問で申し訳ありませんが、回答お待ちしております。

■やりたかったこと
1.var circle = SKShapeNode(circleOfRadius:xx)
のxxで画面サイズ基準で初期化したかった
(例えばxx=self.frame.width/100.0のようにしたかった)

■問題点
1.下記コードのcircleの宣言部分で
"Value of type '(NSObject) -> () -> GameScene' has no member 'frame'"
と怒られてしまいました。

import SpriteKit
import GameplayKit
import UIKit

class GameScene: SKScene{

    var circle = SKShapeNode(circleOfRadius:self.frame.width/100.0)

    func getWidthHeight(){
        width=self.frame.width
        height=self.frame.width
    }...

■回答いただきたいこと
1."Value of type '(NSObject) -> () -> GameScene' has no member 'frame'"と怒られた理由
2.上記コードのfunc内ではなぜ怒られないのか
3.上記コードのfunc内のself.frame.widthのselfはGameSceneのことではないのか

以上3つについて回答をお願いしたいです。
よろしくお願いいたします。