0

少し問題があります。紹介させてください: SpriteKit には、MyScene.m と .h ファイルがあります。このクラスには「サイズ」というプロパティがあります。「self.size」を使用して MyScene.m ファイルからアクセスできます。Menu というクラスを作成したので、.m と .h があります。このクラスは「SKNode」のサブクラスです。私の問題は、Menu クラスの MyScene クラスの "size" プロパティの値を取得したいということです。Menu オブジェクトに追加するノードがいくつかあり、それらの位置は MyScene の「サイズ」プロパティに依存するためです。

やり方を教えてください。ありがとうございました

4

2 に答える 2

0

Menu クラスのメソッドを使用してinitWithSceneSize:(CGSize)sizeから、Menu クラスの ivar またはプロパティにサイズを格納できます。

.m に ivar を使用した例:

@implementation MenuClass
{
    CGSize sceneSize;
}

-(instancetype)initWithSceneSize:(CGSize)size
{
     sceneSize = size;
     if (self = [super init])
     {
         // do whatever
     }
     return self;
}

sceneSizeこれで、要素のサイズ変更や配置のために、そのクラス内のどこでも ivarを使用できるようになりました。

別のオプションは、別の回答で詳しく説明されています。これは、のシーン プロパティを使用していますSKNode

これは実行可能なオプションですが、ノードが現在ノード ツリーの子でない場合、sceneプロパティは になることに注意してnilください。そのため、シーンのノード ツリーに現在追加されていることを確認する必要があります。

たとえば、コンストラクターでプロパティを使用しようとするとscene、その時点でアクセスできず、困惑することになります。

間違いなく実行可能なオプションであり、優れたオプションですが、その側面に注意してください。そうしないと、それが次の質問になる可能性があります.

于 2014-10-25T16:46:13.227 に答える
0

sceneのプロパティを使用SKNodeして、ノードを含むシーンを取得できます。詳細については、SKNode クラス リファレンスを参照してください。

于 2014-10-25T14:34:35.360 に答える