Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[add] addChild modifiers #71

Merged
merged 55 commits into from
Nov 8, 2022
Merged

[add] addChild modifiers #71

merged 55 commits into from
Nov 8, 2022

Conversation

rrbox
Copy link
Owner

@rrbox rrbox commented Sep 7, 2022

SKNode サブクラスを生成するか引数から受け取るかし, ノードの子ノードとして追加するメソッドです.

SKNode サブクラスを生成するか引数から受け取るかし, ノードの子ノードとして追加するメソッドです.
SKNode サブクラスのノードを追加するメソッドと, ビルダーから生成したノードを追加するメソッドを引数から見分けられるようにした.
テストコードに addChild モディファイアの実装分を追加した.
@rrbox
Copy link
Owner Author

rrbox commented Sep 7, 2022

使った感想:

  • addChild(builder:) は使い心地がいい. "生成工程" としての意味をなしている.
  • addChild(_:)addChild(_:, withNode:) は使い心地が悪い."編集フロー" を作っているのに, 実体を中に入れるのに違和感を覚える.

SKNode サブクラスのイニシャライザの恩恵を受けるために, イニシャライザ一つ一つを構造体でラップするという模索
全てのSKNodeサブクラスのインスタンス化を遅延して実行する構造体を追加.
SKLabelNode 向けの API を一つのフォルダに整理した.
SKLabelNode 特異的なイニシャライザを遅延実行するための構造体を作成するファイル
BuilderProtocol が行なっている挙動は Processor として位置付けた方が Initializer の実装に有利であると考えた.
このファイルに Builder を再定義していく.
新しい定義の Builder を作成した. イニシャライザのストラテジとプロセッサを保持させる予定.
イニシャライザストラテジは保留して, モディファイアフローの構築のみ実装した
ノード生成時に NodeInit からイニシャライザを実行するようにした
body の型を Builder に修正.
SKNode サブクラス全てにイニシャライザストラテジを作成するため, 各サブクラス用のフォルダを作成した.
同じファイル名を持つファイルが複数存在した場合, ビルドが通らなかったため修正した.
同じファイル名を持つファイルが複数存在した場合, ビルドが通らなかったため修正した.
サブクラスに対するサポートのためにテストを追加する予定です.
SKSpriteNode サブクラスを対象としたビルダーに対して SKSpriteNode 向けのモディファイを追加してもコンパイルが通ることを確認した.
LabelProcessor の対象を SKLabelNode のサブクラスとした.
SKLabelNode 向けモディファイアの適用範囲を SKLabelNode のサブクラスまで拡大した.
SKLabelNode のサブクラスを対象としたビルダーを作成してもコンパイルが通るか確認した.
ShapeProcessor の有効範囲を SKSpapeNode のサブクラスにまで広げた.
SKShapeNode 向け processor のモディファイアを SKShapeNodeサブクラスに対しても利用できるようにした.
SKNode (サブクラス) をインスタンス化するオブジェクトの名前が決まったため, それに合わせて名前を変更しました.
NodeInit とは 別の方法で SKNode を生成する Generator に置き換える予定.
SKNode のイニシャライザの種類に応じて使い分ける 3 つのプロトコルを定義しました.
この名前空間は, Generator の生成関数を整理するために使用します.
@rrbox rrbox mentioned this pull request Nov 7, 2022
@rrbox
Copy link
Owner Author

rrbox commented Nov 8, 2022

ThrowableNodeGeneratorOptionalNodeGenerator に対する実装はまだ行えていません. それぞれの処置は別途 issue, branch を作成して開発する予定です.

@rrbox rrbox merged commit 0fe9288 into develop Nov 8, 2022
@rrbox rrbox deleted the feat/add-child-method branch November 8, 2022 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant