enchant.js와 tmlib.js를 사용한 게임 제작 프레임 워크 "enforce"캐릭터의 중첩 처리

이 섹션에서는 "game01"이라는 디렉토리 내에서 작업하고 있다고 가정합니다.

캐릭터 중첩



enchant.js와 tmlib.js에서 스프라이트의 상하 관계는 장면에 addChild 한 순서대로 위로 위로 겹쳐집니다 (마지막에 추가한 것이 맨 위).
그러나 enforce에서는 스프라이트를 숨긴 경우는 removeChild하고 있기 때문에 일단 숨긴 스프라이트를 다시 표시하면 addChild되어 최상위에 와 버려 addChild 된 순서만으로는 겹치는 순서를 유지할 수 있습니다. 아니.
그래서 enchant.js에서는 "장면", tmlib.js에서는 "캔버스 요소"를 사용하고,

"장면과 캔버스 요소 자체의 중첩 순서(addChild된 순서)가 장면이나 캔버스 요소에 addChild된 스프라이트의 중첩 순서보다 우선된다"

라는 특성을 이용하여 그것을 레이어처럼 사용할 수 있도록 하고 있습니다.
일반적인 캐릭터의 생성은
obj = addObject
  image: 'bear'
  x: SCREEN_WIDTH / 2
  y: SCREEN_HEIGHT / 2
  width: 32
  height: 32
  animlist: [
    [100, [0, 1, 0, 2]]
  ]

하지만 여기에,
  scene: GAMESCENE_SUB2

를 추가하면 'scene' 매개변수가 생략된 스프라이트보다 항상 겹치는 순서로 위로 올라갑니다.
그림으로 하면 아래 그림과 같이 됩니다.



'scene' 매개변수를 생략하면 'GAMESCENE_SUB1'이 됩니다.
예를 들면,

"GAMESCENE_SUB1에 addChild 된 스프라이트는 그 아래 (GAMESCENE, BGSCENE_SUB2, BGSCENE_SUB1, BGSCENE)의 장면에 addChild 된 스프라이트보다 절대 아래가되지 않으며 그 이상 (GAMESCENE_SUB2, TOP 장면에 addChild 된 스프라이트보다 절대 위가 될 것은 없다.

라는 것이 됩니다.
동일한 장면에 addChild 된 스프라이트의 겹치는 순서는 addChild 된 순서 (위로 위로 겹쳐갑니다)가됩니다.

enforce 자습서 목록

좋은 웹페이지 즐겨찾기