enchant.js와 tmlib.js를 사용한 게임 제작 프레임 워크 "enforce"당 판정 제어
스프라이트 당 판정에 대해
게임 등에서 캐릭터끼리의 당 판정을 취하는 것은 많이 사용됩니다.
당 판정은, 통상은 스프라이트 표시로 사용하고 있는 화상의 구형으로 판정됩니다.
그러나, 이것으로는 그림의 크기가 그대로 게임의 난이도가 되어 버려, 게임 밸런스를 취하는 방법이 어려워져 버립니다.
enforce에서는 생성된 객체의 당 판정은 지정된 이미지의 크기(width, height)로 취하지만 멤버 변수의
콜리더
로 오브젝트를 설정하면, 설정된 오브젝트의 스프라이트 사이즈로 당 판정이 취해집니다.
보통의 곰이라면 32x32에서 충돌 판정이 취해집니다만 8x8의 이미지를 사용한 오브젝트를 생성해, 그것을 collider로 설정하면 당 판정은 그 8x8의 스프라이트로 취해지므로 난이도가 낮아집니다( 반대로 높을 수 있습니다).
"collider"로 설정된 객체는 자동으로 부모 객체를 따라갑니다.
"collider"로 설정된 객체의 멤버 변수 "offsetx"와 "offsety"는 상위 객체의 표시 위치 차이가 됩니다.
오브젝트가 가지고 있는 좌표치는 스프라이트의 중심이므로, 부모 오브젝트의 중심으로부터 어느 정도 떨어진 위치에 「collider」를 표시할지 지정할 수 있습니다.
removeObject()로 부모 객체를 삭제하면 "collider"객체도 자동으로 삭제됩니다.
「isIntersect()」와 「isCollision()」는 이 「collider」로 당 판정을 실시합니다.
예를 들어, 자기의 클래스의 「constructor」에 아래와 같은 처리를 추기합니다.
collider = addObject
image: 'collider8x8'
x: @x
y: @y
width: 8
height: 8
animlist: [
[100, [0]]
]
@collider = collider
그러면 자기의 당 판정은, 자기에 설정되어 있는 스프라이트가 아니고, 「@collider 」에 설정되어 있는 스프라이트 「collider8x8」로 행해집니다.
enforce 자습서 목록
Reference
이 문제에 관하여(enchant.js와 tmlib.js를 사용한 게임 제작 프레임 워크 "enforce"당 판정 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/digitarhythm/items/36ed0d6a0a4e35731695
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
collider = addObject
image: 'collider8x8'
x: @x
y: @y
width: 8
height: 8
animlist: [
[100, [0]]
]
@collider = collider
Reference
이 문제에 관하여(enchant.js와 tmlib.js를 사용한 게임 제작 프레임 워크 "enforce"당 판정 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/digitarhythm/items/36ed0d6a0a4e35731695텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)