Skip to content
Jyunni edited this page Aug 19, 2023 · 3 revisions

Zenerety

Zenerety 에 대해

8102599a-b6c3-4654-96e7-84d448358269 기존 렌더링 방식의 한계로 인하여 도입하게 된 새로운 렌더링 방식입니다.
물론 이 방식의 도입과 함께 다양한 객체와 새로운 오브젝트 체계를 도입하게 되었습니다.

이 방식을 도입하면서 얻는 이점이 있나요?

네, 성능이 향상되진 않았지만, 대신 기존 렌더링 방식보다 성능 저하가 덜합니다! (특히 객체가 많은 경우에 유리합니다.)
그리고 그룹 기능을 구현하기에 유리합니다! 기존 렌더링 방식에 쓰이는 불안정한 GroupObject 객체는 중첩시 리소스가 누락되는 등의 문제점이 있었지만,
Zenerety 렌더링 방식으로 인해 제공하는 Group 객체는 중첩해도 큰 문제가 없습니다!

무엇이 달라지나요?

장면(Scene)이 그룹(Group) 으로 대체됩니다.

Zenerety 에선 Display.AddScene(); 가 더이상 기능하지 않으며, 대신 Display.Target (변수) 가 사용됩니다.
예시:

Box background = new(Window.Width, Window.Height, Color.White);
Text hello = new("Hello!", 30);

Display.Target.Objects.AddRange(
    background,
    hello
);

애니메이션 큐가 생겼습니다!

기존 객체들은 SpriteForAnimation, TextBoxForAnimation 등등 애니메이션 함수를 포함한 형태로 클래스를 제공했습니다.
하지만 이젠 애니메이션 큐를 통해 더 안정적으로 애니메이션을 쉽고 빠르게 구현할수 있습니다!
예시:

Box box = new Box(614,614);
Animation.Info.Opacity opacity_animation_info = new(box, 150);
Animation.Add(opacity_animation_info);

마이그레이션

Zenerety 렌더링 방식을 도입하면서 네이밍이 달라졌으나, 기존 객체를 대체할수 있는 객체들은 거의 만들어졌습니다.

객체 마이그레이션

  • GroupObject -> Group (그룹)
  • Sprite -> Image (이미지)
  • TextBox -> Text (글자)
  • Rectangle -> Box (직사각형)

(Group 기준) override 가능한 함수 목록

  • Prepare (Start 를 대체하였습니다.) : 리소스 준비시 호출되는 함수.
  • Release (Stop 을 대체하였습니다.) : 리소스 해제시 호출되는 함수.
  • Resize : 창 조절시 호출되는 함수.
  • Update : 프레임 마다 호출되는 함수.

(Group 이외의 객체들은 일부 함수가 override 되지 않을수 있습니다. 걱정하지 마세요, Events 클래스에서 원하는 이벤트를 상속하면 됩니다!)

현재 상황

사용법

0.5.x 이전: 구현되지 않아 사용할수 없습니다.
0.6.x : Framework.Run(); 호출 이전에 Framework.NewRenderingSolution = true; 명령어를 추가하면 됩니다!
0.7.x 부터: 기본 렌더링 방식으로 채택되어 바로 사용하면 됩니다.