Skip to content

Commit

Permalink
Enable collisions with specific objects
Browse files Browse the repository at this point in the history
  • Loading branch information
Gugustinette committed Aug 3, 2024
1 parent e7d9273 commit 2b94dbe
Show file tree
Hide file tree
Showing 27 changed files with 1,040 additions and 540 deletions.
10 changes: 9 additions & 1 deletion apps/playground-3d/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import './style.css'
shape: F3dShapes.SPHERE,
})
cube.onCollisionWith(FSphere, () => {
console.log('Cube collided with sphere!')
console.log('Cube collided with a Sphere!')
})
scene.addComponent(cube)

Expand All @@ -40,6 +40,14 @@ import './style.css'
const gltfCube = new GltfCube(scene)
scene.addComponent(gltfCube)

const gltfCube2 = new GltfCube(scene)
gltfCube2.setPosition(2, 5, 2)
scene.addComponent(gltfCube)

cube.onCollisionWith(gltfCube, () => {
console.log('Cube collided with the gltfCube!')
})

// Create 8 cubes dynamically in circle from 0 to 2PI
for (let i = 0; i < 8; i++) {
const angle = i * Math.PI / 4
Expand Down
86 changes: 58 additions & 28 deletions docs/api/2d/classes/FCircle.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,19 @@ scene.addComponent(circle)

#### Defined in

[packages/2d/src/polygons/FCircle.ts:20](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/polygons/FCircle.ts#L20)
[packages/2d/src/polygons/FCircle.ts:20](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/polygons/FCircle.ts#L20)

## Methods

### emitCollisionWith()

> **emitCollisionWith**(`class_`): `void`
> **emitCollisionWith**(`classOrObject`): `void`
#### Parameters

**class\_**: `any`
**classOrObject**: `any`

The class to emit the
The class or object to emit the collision event with.

#### Returns

Expand All @@ -80,7 +80,7 @@ player.emitCollisionWith(Enemy)

#### Defined in

packages/core/dist/index.d.ts:48
packages/core/dist/index.d.ts:62

***

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

#### Defined in

[packages/2d/src/polygons/FCircle.ts:44](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/polygons/FCircle.ts#L44)
[packages/2d/src/polygons/FCircle.ts:44](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/polygons/FCircle.ts#L44)

***

Expand Down Expand Up @@ -191,19 +191,19 @@ component.initRigidBody({

#### Defined in

[packages/2d/src/polygons/FCircle.ts:32](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/polygons/FCircle.ts#L32)
[packages/2d/src/polygons/FCircle.ts:32](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/polygons/FCircle.ts#L32)

***

### onCollisionWith()

> **onCollisionWith**(`class_`, `callback`): `void`
> **onCollisionWith**(`classOrObject`, `callback`): `void`
#### Parameters

**class\_**: `any`
**classOrObject**: `any`

The class to add the callback to.
The class or object to add the callback to.

**callback**

Expand All @@ -217,22 +217,31 @@ The callback to add.

Add a callback to be called when a collision occurs.

#### Example
#### Examples

```typescript
const player = new Player()
const enemy = new Enemy()
player.onCollisionWith(Enemy, () => {
console.log('Player collided with enemy!')
console.log('Player collided with an Enemy!')
})
```

```typescript
const player = new Player()
const enemy = new Enemy()
player.onCollisionWith(enemy, () => {
console.log('Player collided with the enemy!')
})
```

#### Inherited from

[`FComponent2d`](FComponent2d.md).[`onCollisionWith`](FComponent2d.md#oncollisionwith)

#### Defined in

packages/core/dist/index.d.ts:34
packages/core/dist/index.d.ts:48

***

Expand All @@ -259,7 +268,7 @@ Should be called every frame.

#### Defined in

[packages/2d/src/polygons/FCircle.ts:28](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/polygons/FCircle.ts#L28)
[packages/2d/src/polygons/FCircle.ts:28](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/polygons/FCircle.ts#L28)

***

Expand Down Expand Up @@ -297,7 +306,7 @@ component.setPosition(0, 0)

#### Defined in

[packages/2d/src/FComponent2d.ts:100](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L100)
[packages/2d/src/FComponent2d.ts:100](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L100)

***

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

#### Defined in

[packages/2d/src/FComponent2d.ts:131](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L131)
[packages/2d/src/FComponent2d.ts:131](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L131)

***

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

#### Defined in

[packages/2d/src/FComponent2d.ts:144](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L144)
[packages/2d/src/FComponent2d.ts:144](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L144)

***

Expand Down Expand Up @@ -403,27 +412,48 @@ component.setScale(1, 1)

#### Defined in

[packages/2d/src/FComponent2d.ts:114](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L114)
[packages/2d/src/FComponent2d.ts:114](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L114)

## Properties

### CALLBACKS\_ONCOLLISION

> **CALLBACKS\_ONCOLLISION**: `object`
Callbacks for when a collision occurs with a given class.
It is a dictionary where the key is the class name and the value is the callback.

#### Index Signature

\[`key`: `string`\]: () => `void`[]

#### Description

Callbacks for when a collision occurs with a given class or object.
It is a dictionary where the key is the class name or object id and the value is an array of callbacks.

#### Inherited from

[`FComponent2d`](FComponent2d.md).[`CALLBACKS_ONCOLLISION`](FComponent2d.md#callbacks_oncollision)

#### Defined in

packages/core/dist/index.d.ts:17

***

### ID

> **ID**: `number`
#### Description

Unique identifier for the component.
It is generated automatically.

#### Inherited from

[`FComponent2d`](FComponent2d.md).[`ID`](FComponent2d.md#id)

#### Defined in

packages/core/dist/index.d.ts:12

***
Expand All @@ -440,7 +470,7 @@ RAPIER Collider

#### Defined in

[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L46)
[packages/2d/src/FComponent2d.ts:46](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L46)

***

Expand All @@ -456,7 +486,7 @@ PIXI container

#### Defined in

[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L22)
[packages/2d/src/FComponent2d.ts:22](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L22)

***

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

#### Defined in

[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L28)
[packages/2d/src/FComponent2d.ts:28](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L28)

***

Expand All @@ -488,7 +518,7 @@ RAPIER RigidBody

#### Defined in

[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L42)
[packages/2d/src/FComponent2d.ts:42](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L42)

***

Expand All @@ -504,7 +534,7 @@ Rotation of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L36)
[packages/2d/src/FComponent2d.ts:36](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L36)

***

Expand All @@ -520,7 +550,7 @@ Scale of the component.

#### Defined in

[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L32)
[packages/2d/src/FComponent2d.ts:32](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L32)

***

Expand All @@ -536,4 +566,4 @@ The scene which the component is in.

#### Defined in

[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/b0ef6c5de7076d583a0c1746364b2ee4ba074b5e/packages/2d/src/FComponent2d.ts#L17)
[packages/2d/src/FComponent2d.ts:17](https://github.com/fibbojs/fibbo/blob/e7d9273a28a254e3c2d88f8fb630ca0c812fc191/packages/2d/src/FComponent2d.ts#L17)
Loading

0 comments on commit 2b94dbe

Please sign in to comment.