Class: Rect
화면에 사각형을 그리는 객체다.
Description
Usage
new Rect(options)
- Extends:
- GameObject
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
object |
Properties
|
Members
isStroke: boolean
윤곽선을 그릴 것인지를 의미한다. 윤곽선을 그리기 위해서는 옵션에서 strokeColor나 strokeWidth를 설정하여야한다.
- Type:
- {boolean}
- Extends:
- GameObject#isStroke
strokeColor: Color
윤곽선의 색상을 의미한다. 만약 옵션에서 윤곽선에 대한 정보가 있다면 isStroke는 true로 설정되고 윤곽선의 색상이 설정된다.
- Type:
- {Color}
- Extends:
- GameObject#strokeColor
context2d: CanvasRenderingContext2d
canvas에 이 객체를 렌더링할 때 사용할 context다.
- Type:
- {CanvasRenderingContext2d}
- Overrides:
- GameObject#context2d
name: string
생성된 객체의 이름을 말한다. 기본값으로는 생성자의 이름을 저장한다.
- Type:
- {string}
- Overrides:
- GameObject#name
isVisible: boolean
화면에 이 객체를 그릴 것인지를 의미한다. 기본값은 true다.
- Type:
- {boolean}
- Overrides:
- GameObject#isVisible
isActive: boolean
이 객체가 활성상태인지 의미한다. 만약 이 값이 false라면 update와 render가 실행되지 않는다. 이 값이 false라면 물리엔진에서도 수집하지 않는다. 기본값은 true다.
- Type:
- {boolean}
- Overrides:
- GameObject#isActive
layer: Layer
객체의 레이어다.
- Type:
- {Layer}
- Overrides:
- GameObject#layer
rigidbody: RigidBody
물리효과를 위한 강체다.
- Type:
- {RigidBody}
- Overrides:
- GameObject#rigidbody
transform: Transform
이 객체의 좌표, 크기, 각도 등을 의미한다.
- Type:
- {Transform}
- Overrides:
- GameObject#transform
isPhysicsEnable: boolean
이 객체에 물리효과를 적용할건지를 의미한다. 기본적으론 적용하지 않는다.
- Type:
- {boolean}
- Overrides:
- GameObject#isPhysicsEnable
collider: BoxCollider
이 객체의 Collision 타입을 나타낸다. 기본값으로는 상자 형태(BoxCollider)를 사용한다.
- Type:
- {BoxCollider}
- Overrides:
- GameObject#collider
color: Color
렌더링에 사용될 색상값이다.
- Type:
- {Color}
- Overrides:
- GameObject#color
matrix: Matrix
이 객체의 transform을 행렬로 나타낸 결과다. canvas에서 좌표, 회전, 규모를 이용해 물체를 그리려면 행렬을 이용해야한다. 그래서 이 객체의 transform을 canvas에서 활용할 수 있게 matrix로 변환하여 저장한다.
- Type:
- {Matrix}
- Overrides:
- GameObject#matrix
previousMatrix: Matrix
이전 프레임의 matrix와 현재 프레임의 matrix를 선형보간하기 위해 이전 프레임의 matrix를 저장해야한다.
- Type:
- {Matrix}
- Overrides:
- GameObject#previousMatrix
childList: array
이 객체의 자식들을 저장할 테이블이다.
- Type:
- {array}
- Overrides:
- GameObject#childList
parent: GameObject
이 객체의 부모 객체다. 부모의 matrix를 이용해 자신의 matrix를 만들고, 이 객체를 삭제할 때 부모에 의해 삭제되기 때문에 이 객체의 부모를 기억해야 한다.
- Type:
- {GameObject}
- Overrides:
- GameObject#parent
- Default Value:
- undefined
Methods
draw()
화면에 사각형과 윤곽선을 그린다.
- Extends:
- GameObject#draw
- Overrides:
- GameObject#draw
setStrokeWidth(width)
윤곽선의 두께를 설정한다.
- Extends:
- GameObject#setStrokeWidth
Parameters:
Name | Type | Description |
---|---|---|
width
|
number |
윤곽선의 두께 |
update(deltaTime)
GameObject 내에서는 단순히 이 오브젝트에 등록된 하위 GameObject들의 update를 실행시킨다.
- Overrides:
- GameObject#update
Parameters:
Name | Type | Description |
---|---|---|
deltaTime
|
number |
이전 프레임과 현재 프레임의 시간차 |
integrateForce(deltaTime)
가속도를 적분하여 속도에 누적한다.
- Overrides:
- GameObject#integrateForce
Parameters:
Name | Type | Description |
---|---|---|
deltaTime
|
number |
이전 프레임과 현재 프레임의 시간차 |
integrateVelocity(deltaTime)
속도를 적분하여 좌표값에 누적한다.
- Overrides:
- GameObject#integrateVelocity
Parameters:
Name | Type | Description |
---|---|---|
deltaTime
|
number |
이전 프레임과 현재 프레임의 시간차 |
calculateMatrix()
transform을 matrix로 변환한다. 이 때 부모 객체가 있다면 행렬곱을 수행해 두 matrix를 결합한다. 이 객체의 transform만 변환을 수행하지 않고 이 객체의 자식들에게도 calculateMatrix를 호출한다.
- Overrides:
- GameObject#calculateMatrix
render()
먼저 선형보간한 matrix를 사용해 context에 등록한다. 그 다음 draw()를 통해 물체를 렌더링한다. 이 객체를 상속받은 Rect나 Circle처럼 자식객체에 따라 각각 다른 렌더링이 수행된다. 그 후 이 객체의 모든 자식들을 렌더링한다.
- Overrides:
- GameObject#render
hasParentGameObject() → {boolean}
이 객체의 부모가 존재한다면 true를 반환한다.
- Overrides:
- GameObject#hasParentGameObject
Returns:
multiplyParentMatrix()
자신의 transform을 matrix로 변환한 것과 부모의 matrix를 행렬곱한다.
- Overrides:
- GameObject#multiplyParentMatrix
setTransform()
계산된 matrix를 context2d에 적용한다.
- Overrides:
- GameObject#setTransform
beforeDraw()
렌더링 전에 색상값을 갱신한다거나 다른 작업이 미리 처리되어야 하는 경우 이 함수를 오버라이드해서 사용하면 된다.
이 객체에서는 기본적으로 색상값을 적용시키기 위해 globalAlpha값을 조절한다. context2d.save()를 통해 현재 설정값을 저장해두었으므로, 마음대로 변경 후 context2d.restore()로 되돌리게 된다. 따라서 현재 설정값이 자식들의 렌더링에 사용된다.
- Overrides:
- GameObject#beforeDraw
afterDraw()
일반적으로 beforeDraw()에서 전처리했던 것을 원래대로 돌리는 작업을 한다. beforeDraw()를 오버라이드했다면 이 함수도 오버라이드하여 수정된 context2d를 원래대로 돌려놓아야 한다.
- Overrides:
- GameObject#afterDraw
getName() → {string}
이 객체의 이름을 반환한다.
- Overrides:
- GameObject#getName
Returns:
setName(name)
이 객체의 이름을 설정한다. 기본값으로는 생성자의 이름을 저장하게 된다.
- Overrides:
- GameObject#setName
Parameters:
Name | Type | Description |
---|---|---|
name
|
string |
객체의 이름 |
activate()
isActive를 true로 설정한다.
- Overrides:
- GameObject#activate
deactivate()
isActive를 false로 설정한다.
- Overrides:
- GameObject#deactivate
show()
isVisible을 true로 설정한다.
- Overrides:
- GameObject#show
hide()
isVisible을 false로 설정한다.
- Overrides:
- GameObject#hide
getLayer() → {Layer}
레이어를 반환한다.
- Overrides:
- GameObject#getLayer
Returns:
setParent(parent)
인자로 받은 객체와 이 객체 사이에 부모-자식 관계를 만든다. 만약 이 객체의 부모가 이미 있다면, 그 부모의 자식 테이블에서 이 객체를 제거하고, 새로운 부모의 자식 테이블에 이 객체를 추가한다.
- Overrides:
- GameObject#setParent
Parameters:
Name | Type | Description |
---|---|---|
parent
|
GameObject |
이 객체의 부모가 될 객체 |
removeChild(child)
인자로 전달받은 객체가 자식 테이블에 존재한다면, 그 객체를 자식 테이블에서 제거하고, 씬 객체의 자식 테이블에 추가한다.
- Overrides:
- GameObject#removeChild
Parameters:
Name | Type | Description |
---|---|---|
child
|
GameObject |
자식 리스트에서 지워질 자식 객체 |
removeParent()
이 객체의 부모와 이 객체 사이의 관계를 끊는다. 이 객체는 부모로부터 떨어져 나오게 되는데, 씬 객체를 새로운 부모로 설정한다.
- Overrides:
- GameObject#removeParent
addChild(child)
자식 목록에 인자로 전달된 객체를 추가한다.
- Overrides:
- GameObject#addChild
Parameters:
Name | Type | Description |
---|---|---|
child
|
GameObject |
이 객체의 자식으로 추가될 객체 |
onCollision(other)
이 객체가 물리효과에 의해 다른 객체와 충돌했을 때 이 함수가 호출된다.
- Overrides:
- GameObject#onCollision
Parameters:
Name | Type | Description |
---|---|---|
other
|
GameObject |
이 객체와 충돌한 다른 객체 |
addPosition(position)
이 객체의 좌표값에 특정값을 더한다.
- Overrides:
- GameObject#addPosition
Parameters:
Name | Type | Description |
---|---|---|
position
|
Vector |
이 객체의 좌표에 더해질 좌표값 |
setPosition(position)
이 객체의 좌표값을 특정값으로 설정한다.
- Overrides:
- GameObject#setPosition
Parameters:
Name | Type | Description |
---|---|---|
position
|
Vector |
이 객체의 좌표로 설정될 좌표값 |
getPosition() → {Vector}
이 객체의 좌표값을 반환한다.
- Overrides:
- GameObject#getPosition
Returns:
getWorldPosition() → {Vector}
이 객체의 화면상 좌표값을 반환한다. Canvas에 이 객체를 렌더링할 때 사용하는 matrix에서 x, y값을 벡터로 만들어 반환한다.
- Overrides:
- GameObject#getWorldPosition
Returns:
addScale(이)
이 객체의 크기를 특정값만큼 변경한다.
- Overrides:
- GameObject#addScale
Parameters:
Name | Type | Description |
---|---|---|
이
|
Vector |
객체의 규모에 더해질 규모값 |
setScale(이)
이 객체의 크기를 특정값으로 설정한다.
- Overrides:
- GameObject#setScale
Parameters:
Name | Type | Description |
---|---|---|
이
|
Vector |
객체의 규모로 설정될 규모값 |
getScale() → {Vector}
이 객체의 규모(스케일값)값을 반환한다. 크기(size)를 반환하는게 아니다!
- Overrides:
- GameObject#getScale
Returns:
getWorldScale() → {Vector}
이 객체의 화면상 규모값을 반환한다.
- Overrides:
- GameObject#getWorldScale
Returns:
addRotation(degree)
이 객체의 각도(degree)를 특정값만큼 변경한다.
- Overrides:
- GameObject#addRotation
Parameters:
Name | Type | Description |
---|---|---|
degree
|
number |
이 객체의 각도에 더해질 각도값(degree) |
setRotation(degree)
이 객체의 각도(degree)를 특정값으로 설정한다.
- Overrides:
- GameObject#setRotation
Parameters:
Name | Type | Description |
---|---|---|
degree
|
number |
이 객체의 각도로 설정될 각도값(degree) |
getRotation() → {number}
이 객체의 각도(degree)를 반환한다.
- Overrides:
- GameObject#getRotation
Returns:
getWorldRotation() → {number}
이 객체의 화면상 각도(degree)를 반환한다.
- Overrides:
- GameObject#getWorldRotation
Returns:
addVelocity(velocity)
이 객체의 속도를 특정값만큼 증가시킨다.
- Overrides:
- GameObject#addVelocity
Parameters:
Name | Type | Description |
---|---|---|
velocity
|
Vector |
이 객체의 속도에 더해질 속도값 |
setVelocity(velocity)
이 객체의 속도를 특정값으로 설정한다.
- Overrides:
- GameObject#setVelocity
Parameters:
Name | Type | Description |
---|---|---|
velocity
|
Vector |
getVelocity() → {Vector}
이 객체의 속도를 반환한다.
- Overrides:
- GameObject#getVelocity
Returns:
addAcceleration(이)
이 객체의 가속도를 특정값만큼 증가시킨다.
- Overrides:
- GameObject#addAcceleration
Parameters:
Name | Type | Description |
---|---|---|
이
|
Vector |
객체의 가속도에 더해질 가속도값 |
setAcceleration(accelration)
이 객체의 가속도를 특정값으로 설정한다.
- Overrides:
- GameObject#setAcceleration
Parameters:
Name | Type | Description |
---|---|---|
accelration
|
Vector |
getAcceleration() → {Vector}
이 객체의 가속도를 반환한다.
- Overrides:
- GameObject#getAcceleration
Returns:
getSize() → {Vector}
이 객체의 물리적 크기를 반환한다.
- Overrides:
- GameObject#getSize
Returns:
getWorldSize() → {Vector}
이 객체의 화면상 물리적 크기를 반환한다. 이 객체의 크기에 화면상 규모를 곱한 값을 반환하게 된다.
- Overrides:
- GameObject#getWorldSize
Returns:
getWorldBoundary() → {Vector}
이 객체의 화면상 외형의 크기를 반환한다. 기본적으로 BoxCollider를 사용하기 때문에 상자 형태의 크기가 반환된다.
- Overrides:
- GameObject#getWorldBoundary
Returns:
getBoundary() → {Vector}
이 객체의 외형의 크기를 반환한다. 기본적으로 BoxCollider를 사용하기 때문에 상자 형태의 크기가 반환된다.
- Overrides:
- GameObject#getBoundary
Returns:
getColliderWorldPosition() → {Vector}
이 객체의 화면상 좌표값에 외형의 오프셋값을 더한 좌표를 반환한다. 이 때 오프셋에도 WorldScale을 적용해 더한다.
- Overrides:
- GameObject#getColliderWorldPosition
Returns:
getColliderOffset() → {Vector}
이 객체의 외형의 오프셋값을 반환한다.
- Overrides:
- GameObject#getColliderOffset
Returns:
getMatrix() → {Matrix}
이 객체의 matrix를 반환한다.
- Overrides:
- GameObject#getMatrix
Returns:
getBounceness() → {number}
이 객체의 탄성값을 반환한다.
- Overrides:
- GameObject#getBounceness
Returns:
getStaticFriction() → {number}
이 객체의 정지 마찰 계수를 반환한다.
- Overrides:
- GameObject#getStaticFriction
Returns:
getDynamicFriction() → {number}
이 객체의 운동 마찰 계수를 반환한다.
- Overrides:
- GameObject#getDynamicFriction
Returns:
getMass() → {number}
이 객체의 질량값을 반환한다.
- Overrides:
- GameObject#getMass
Returns:
getInverseMass() → {number}
이 객체의 질량값의 역수를 반환한다.
- Overrides:
- GameObject#getInverseMass
Returns:
destroy()
이 객체를 씬으로부터 제거한다. 이 객체의 자식 테이블에 있는 모든 객체들도 연달아 제거된다.
이 객체를 제거하기위해 DestroyManager에 등록한다. 이 객체가 등록되었다면 업데이트가 끝난 직후 DestroyManager가 등록된 객체들을 제거한다.
- Overrides:
- GameObject#destroy
isMouseOver() → {boolean}
이 객체 위에 마우스가 올라가 있는지를 반환한다. 기본적으로 worldSize값과 worldPosition을 이용해 계산한다.
- Overrides:
- GameObject#isMouseOver
Returns:
isLeftMouseClickThis() → {boolean}
마우스 왼쪽 버튼으로 이 객체를 클릭했는지를 반환한다.
- Overrides:
- GameObject#isLeftMouseClickThis
Returns:
isRightMouseClickThis() → {boolean}
마우스 오른쪽 버튼으로 이 객체를 클릭했는지를 반환한다.
- Overrides:
- GameObject#isRightMouseClickThis