레벨이 바뀌면 새로운 배경을로드하고 적의 속도 등의 SKScene의 여러 글로벌 속성을 변경하는 방법이 있습니다. 새로운 레벨은 (initWithSize에서 생성 된) 다른 모든 노드를 포함합니다. 배경을 다시 그리는 방법이 있습니까?백그라운드 노드 배치는 다른 모든 노드 레벨 전환을 커버합니다
0
A
답변
1
나는 당신이 말하고있는 것을 이해한다면 레벨 중에는 백그라운드 노드와 다른 노드가있는 레벨이 있습니다. 레벨을 변경하면 SKScene의 자식으로 새 배경을 추가하게됩니까?
모든 경우를 커버하는 이유입니다. 나중에 노드 트리에 추가함으로써 마지막으로 그려 지므로 모든 것을 다룹니다. 레벨마다 다른 장면 해놔
:
몇 당신이 처리 할 수있는 방법이 있습니다. 이 방법으로 각 장면은 독립적이며 다른 장면의 내용을 방해하지 않습니다.
-removeAllChildren을 SKScene에 추가 한 다음 배경과 새 레벨에 필요한 것을 추가하십시오.
- 원한다면 원래 배경의 텍스처를 더 새로운 배경으로 바꿀 수 있습니다. 그러나 이렇게하면 오래된 노드를 정리해야 할 가능성이 있습니다.
아마도 다른 장면을 갖는 것이 더 나은 선택 일 것입니다.
감사합니다. 동일한 장면의 인스턴스를 sktransistion으로 만들었지 만 initWithSelf에로드 된 새 인스턴스의 속성으로 원하는 수준을 넘어 섰습니다. 또한 0의 위치 할당을 할 수 있었는지 궁금해했지만 시도하지 않았습니다. – dancingbush
위치 지정을 사용하여 그리기 순서를 제어 할 수 있습니다. 그러나 필요한 노드를 추가하거나 제거하여 노드를 관리해야합니다. 예를 들어 원래 위치를 사용한 경우 배경이 올바르게 보이지만 실제로는 배경 노드가 두 개가됩니다. 그리고 계속해서 레벨을 올리면 배경이 쌓일 것입니다. 따라서 관계없이 일부 노드 관리가 필요합니다. 일반적으로 노드 순서에 따라 도면을 제어하는 것이 일반적으로 쉽기 때문에 배치 자체를 사용하지 않습니다. 실제로 개인적인 취향에 달려 있습니다. –