Skip to content

Commit

Permalink
feat: add translation and rotation locking
Browse files Browse the repository at this point in the history
  • Loading branch information
Gugustinette committed Aug 7, 2024
1 parent 446efcf commit d377d85
Show file tree
Hide file tree
Showing 28 changed files with 574 additions and 273 deletions.
4 changes: 3 additions & 1 deletion apps/playground-2d/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ import MySquare from './classes/MySquare'
const sprite = new FSprite(scene, '/fibbo/playground-2d/bunny.png')
sprite.onLoaded(() => {
sprite.setPosition(2, 3)
sprite.initRigidBody()
sprite.initRigidBody({
lockRotations: true,
})
sprite.setScaleWidth(0.5)
sprite.onCollisionWith(FSquare, () => {
console.log('Sprite collided with a square!')
Expand Down
6 changes: 4 additions & 2 deletions apps/playground-3d/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import './style.css'
})
cube.setColor(0xA0FFA0)
cube.initRigidBody({
shape: F3dShapes.SPHERE,
lockRotations: true,
})
scene.addComponent(cube)

Expand Down Expand Up @@ -65,7 +65,9 @@ import './style.css'
const z = Math.sin(angle) * 4
const cube = new FCube(scene)
cube.setPosition(x, 1, z)
cube.initRigidBody()
cube.initRigidBody({
shape: i === 0 ? F3dShapes.SPHERE : F3dShapes.CUBE,
})
scene.addComponent(cube)
}

Expand Down
48 changes: 32 additions & 16 deletions docs/api/2d/classes/FCircle.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ scene.addComponent(circle)

#### Defined in

[packages/2d/src/polygons/FCircle.ts:20](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/polygons/FCircle.ts#L20)
[packages/2d/src/polygons/FCircle.ts:20](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/polygons/FCircle.ts#L20)

## Methods

Expand Down Expand Up @@ -149,7 +149,7 @@ component.initCollider({

#### Defined in

[packages/2d/src/polygons/FCircle.ts:49](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/polygons/FCircle.ts#L49)
[packages/2d/src/polygons/FCircle.ts:55](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/polygons/FCircle.ts#L55)

***

Expand All @@ -163,6 +163,22 @@ component.initCollider({

The options for the rigid body.

**options.enabledTranslations?**

Enable only specific translations of the rigid body.

**options.enabledTranslations.enableX?**: `boolean`

**options.enabledTranslations.enableY?**: `boolean`

**options.lockRotations?**: `boolean`

Lock the rotations of the rigid body.

**options.lockTranslations?**: `boolean`

Lock the translations of the rigid body.

**options.position?**: `PointData`

The position of the rigid body.
Expand Down Expand Up @@ -204,7 +220,7 @@ component.initRigidBody({

#### Defined in

[packages/2d/src/polygons/FCircle.ts:37](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/polygons/FCircle.ts#L37)
[packages/2d/src/polygons/FCircle.ts:37](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/polygons/FCircle.ts#L37)

***

Expand Down Expand Up @@ -254,7 +270,7 @@ player.onCollisionWith(enemy, () => {

#### Defined in

[packages/2d/src/FComponent2d.ts:275](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L275)
[packages/2d/src/FComponent2d.ts:299](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L299)

***

Expand All @@ -281,7 +297,7 @@ Should be called every frame.

#### Defined in

[packages/2d/src/polygons/FCircle.ts:33](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/polygons/FCircle.ts#L33)
[packages/2d/src/polygons/FCircle.ts:33](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/polygons/FCircle.ts#L33)

***

Expand Down Expand Up @@ -319,7 +335,7 @@ component.setPosition(0, 0)

#### Defined in

[packages/2d/src/FComponent2d.ts:123](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L123)
[packages/2d/src/FComponent2d.ts:123](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L123)

***

Expand Down Expand Up @@ -353,7 +369,7 @@ component.setRotation(Math.PI / 2)

#### Defined in

[packages/2d/src/FComponent2d.ts:154](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L154)
[packages/2d/src/FComponent2d.ts:154](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L154)

***

Expand Down Expand Up @@ -387,7 +403,7 @@ component.setRotationDegree(90)

#### Defined in

[packages/2d/src/FComponent2d.ts:167](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L167)
[packages/2d/src/FComponent2d.ts:167](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L167)

***

Expand Down Expand Up @@ -425,7 +441,7 @@ component.setScale(1, 1)

#### Defined in

[packages/2d/src/FComponent2d.ts:137](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L137)
[packages/2d/src/FComponent2d.ts:137](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L137)

## Properties

Expand Down Expand Up @@ -483,7 +499,7 @@ RAPIER Collider

#### Defined in

[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L46)
[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L46)

***

Expand All @@ -499,7 +515,7 @@ PIXI container

#### Defined in

[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L22)
[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L22)

***

Expand All @@ -515,7 +531,7 @@ Position of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L28)
[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L28)

***

Expand All @@ -531,7 +547,7 @@ RAPIER RigidBody

#### Defined in

[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L42)
[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L42)

***

Expand All @@ -547,7 +563,7 @@ Rotation of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L36)
[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L36)

***

Expand All @@ -563,7 +579,7 @@ Scale of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L32)
[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L32)

***

Expand All @@ -579,4 +595,4 @@ The scene which the component is in.

#### Defined in

[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L17)
[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L17)
48 changes: 32 additions & 16 deletions docs/api/2d/classes/FComponent2d.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ The scale of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:56](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L56)
[packages/2d/src/FComponent2d.ts:56](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L56)

## Methods

Expand Down Expand Up @@ -152,7 +152,7 @@ component.initCollider({

#### Defined in

[packages/2d/src/FComponent2d.ts:243](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L243)
[packages/2d/src/FComponent2d.ts:267](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L267)

***

Expand All @@ -166,6 +166,22 @@ component.initCollider({

The options for the rigid body.

**options.enabledTranslations?**

Enable only specific translations of the rigid body.

**options.enabledTranslations.enableX?**: `boolean`

**options.enabledTranslations.enableY?**: `boolean`

**options.lockRotations?**: `boolean`

Lock the rotations of the rigid body.

**options.lockTranslations?**: `boolean`

Lock the translations of the rigid body.

**options.position?**: `PointData`

The position of the rigid body.
Expand Down Expand Up @@ -203,7 +219,7 @@ component.initRigidBody({

#### Defined in

[packages/2d/src/FComponent2d.ts:188](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L188)
[packages/2d/src/FComponent2d.ts:193](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L193)

***

Expand Down Expand Up @@ -253,7 +269,7 @@ player.onCollisionWith(enemy, () => {

#### Defined in

[packages/2d/src/FComponent2d.ts:275](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L275)
[packages/2d/src/FComponent2d.ts:299](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L299)

***

Expand All @@ -280,7 +296,7 @@ Should be called every frame.

#### Defined in

[packages/2d/src/FComponent2d.ts:91](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L91)
[packages/2d/src/FComponent2d.ts:91](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L91)

***

Expand Down Expand Up @@ -314,7 +330,7 @@ component.setPosition(0, 0)

#### Defined in

[packages/2d/src/FComponent2d.ts:123](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L123)
[packages/2d/src/FComponent2d.ts:123](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L123)

***

Expand Down Expand Up @@ -344,7 +360,7 @@ component.setRotation(Math.PI / 2)

#### Defined in

[packages/2d/src/FComponent2d.ts:154](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L154)
[packages/2d/src/FComponent2d.ts:154](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L154)

***

Expand Down Expand Up @@ -374,7 +390,7 @@ component.setRotationDegree(90)

#### Defined in

[packages/2d/src/FComponent2d.ts:167](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L167)
[packages/2d/src/FComponent2d.ts:167](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L167)

***

Expand Down Expand Up @@ -408,7 +424,7 @@ component.setScale(1, 1)

#### Defined in

[packages/2d/src/FComponent2d.ts:137](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L137)
[packages/2d/src/FComponent2d.ts:137](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L137)

## Properties

Expand Down Expand Up @@ -462,7 +478,7 @@ RAPIER Collider

#### Defined in

[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L46)
[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L46)

***

Expand All @@ -474,7 +490,7 @@ PIXI container

#### Defined in

[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L22)
[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L22)

***

Expand All @@ -486,7 +502,7 @@ Position of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L28)
[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L28)

***

Expand All @@ -498,7 +514,7 @@ RAPIER RigidBody

#### Defined in

[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L42)
[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L42)

***

Expand All @@ -510,7 +526,7 @@ Rotation of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L36)
[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L36)

***

Expand All @@ -522,7 +538,7 @@ Scale of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L32)
[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L32)

***

Expand All @@ -534,4 +550,4 @@ The scene which the component is in.

#### Defined in

[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/8d1d863e977b4e67cd08aa4b38688ea89d320e56/packages/2d/src/FComponent2d.ts#L17)
[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/446efcf6acd7b8597316769fc6a8a3146d7c8a02/packages/2d/src/FComponent2d.ts#L17)
Loading

0 comments on commit d377d85

Please sign in to comment.