Library of re-useable game modules to build web browser HTML5 games.
npm install --save ebabel
npm run readme
First of all, thank you! Please see the contributing guidelines so we can start working together effectively.
ebabelAudio
Play music or positional sound.
Kind: global function
Returns: Object
- Multiple objects and properties: camera, url, listener, sound, and audioLoader.
Param | Type | Description |
---|---|---|
input | Object |
Object with properties to specify theme music parameters. |
input.THREE | Object |
Library THREE.js |
input.camera | Object |
THREE.js camera instance. |
input.volume | number |
Loudness of the music, ranges from 0 to 1. |
input.url | string |
Path to the theme music file. |
input.distance | number |
If this is set we are using positional audio. Distance at which the sound is audible. |
input.name | string |
Unique name to identify the theme music and listener in THREE.js camera children. |
input.loop | boolean |
Play theme music in a loop. False by default. |
input.autostart | boolean |
Stars playing the music as soon as it loads. False by default. |
- mockEG
EG
Mock EG (eBabel Games) for unit testing purposes.- mockTHREE
mockTHREE
Mock THREE.js for unit testing purposes.- mockTHREEx
mockTHREEx
Mock THREEx.js for unit testing purposes.
- hexStringToInt(input) ⇒
number
hexStringToInt
Convert string hex to integer.
EG
Mock EG (eBabel Games) for unit testing purposes.
mockTHREE
Mock THREE.js for unit testing purposes.
mockTHREEx
Mock THREEx.js for unit testing purposes.
hexStringToInt
Convert string hex to integer.
Kind: global function
Returns: number
- Integer conversion.
Param | Type | Description |
---|---|---|
input | string |
Input hexadecimal color in string format, i.e. #ff0099 |
light
Setup a THREE.js PointLight and add it to the scene.
Kind: global function
Returns: Object
- THREE.PointLight instance.
Param | Type | Description |
---|---|---|
input | Object |
Parameters and dependencies. |
input.THREE | Object |
Core library of THREE.js |
input.scene | Object |
Scene object where the light will be added. |
input.color | hex |
Dominant color of the light in hexadecima format. Defaults to pure white 0xffffff. |
input.position | Array |
3D coordinates of where the light should be placed. Defaults to [1, 250, 1]. |
input.name | String |
Name of the light. Defaults to 'main-light'. |
ebabelTextSprite
Create a 2D text sprite that can be added to any THREE.js mesh.
Kind: global function
Returns: Object
- THREE.js sprite that can be added to a mesh.
Param | Type | Description |
---|---|---|
input | Object |
Collection of input properties. |
input.THREE | Object |
Library THREE.js object. |
input.canvas | Object |
DOM canvas, i.e. document.createElement('canvas') |
input.text | string |
String of text to display above a sprite. |
- updatePlayerPositionRotation(camera, dataStore)
updatePlayerPositionRotation
Update the position and rotation of the current player camera.- keyboardControls(dataStore)
keyboardControls
Update the position and rotation of the current player camera based on keyboard keys pressed up or down.
updatePlayerPositionRotation
Update the position and rotation of the current player camera.
Kind: global function
Param | Type | Description |
---|---|---|
camera | Object |
THREE.js camera. |
dataStore | Object |
Central store of state data. |
keyboardControls
Update the position and rotation of the current player camera based on keyboard keys pressed up or down.
Kind: global function
Param | Type | Description |
---|---|---|
dataStore | Object |
Central store of state data. |
- skybox(input) ⇒
Object
Skybox
Setup a skybox mesh and add it to the scene.- userData(size, position)
userData
Setup skybox default userData.
Skybox
Setup a skybox mesh and add it to the scene.
Kind: global function
Returns: Object
- Skybox mesh.
Param | Type | Description |
---|---|---|
input | Object |
Parameters and dependencies. |
input.THREE | Object |
Core library of THREE.js |
input.scene | Object |
Scene object where the skybox will be added. |
input.directions | Array |
Array of image paths for all skybox sides, by directions. |
input.size | Number |
Size of the skybox. Defaults to 10000. |
input.position | Array |
Position of the skybox as 3D coordinates. Defaults to [0, 0, 0]. |
userData
Setup skybox default userData.
Kind: global function
Param | Type | Description |
---|---|---|
size | Number |
Length of each side of the skybox cube. |
position | Array |
Coordinates where the skybox is to be positioned: Array of 3 numbers. |
- countArrayElements(input)
countArrayElements
Returns an object that counts how many times each element is present in a given array.- deepCopy(input) ⇒
Object
deepCopy
Make a deep copy of an object, i.e. breaks the pointers, so that updating the copy will not change the original.- dice() ⇒
number
dice
Throw 1 die.- distance(i, j) ⇒
number
distance
Calculate the distance in 3D space from point "i" x, y, and z coordinates to point "j" x, y, and z coordinates.- guid() ⇒
string
guid
Returns a globally unique id string following the standard guid format.- Ido()
Ido
Returns a a string that commemorates how many days since Ido died.- positive(input) ⇒
number
positive
Computes the positive rounded up value of the input.- preventXss(input) ⇒
string
preventXss
Processes an input string to prevent Cross Site Scripting injection attacks (XSS). Returns a safe version of that input.- randomList(input) ⇒
object
randomList
Returns the subset of a list of x elements from a larger source list.- randomPosOrNeg(max) ⇒
number
randomPosOrNeg
Calculates a positive or negative random number.- randomPosition(size) ⇒
array
randomPosition
Calculate new coordinates in a 3D space randomly to generate a new position.- random(max, min) ⇒
number
random
Returns a random integer number from 1 to 100 or from min to max (min is non-inclusive).- reducedDistance(i, j, r) ⇒
array
reducedDistance
Calculate new coordinates in a 3D space for point "i" in order to get closer to point "j" reducing the distance between the two points by "r" amount.- trait() ⇒
number
trait
Throw 3 dices.
countArrayElements
Returns an object that counts how many times each element is present in a given array.
Kind: global function
Param | Type | Description |
---|---|---|
input | array |
Array where element occurences need to be counted. |
deepCopy
Make a deep copy of an object, i.e. breaks the pointers, so that updating the copy will not change the original.
Kind: global function
Returns: Object
- Copy of the input onject.
Param | Type | Description |
---|---|---|
input | Object |
Original object that needs to be copied. |
dice
Throw 1 die.
Kind: global function
Returns: number
- Return a random integer from 1 to 6.
distance
Calculate the distance in 3D space from point "i" x, y, and z coordinates to point "j" x, y, and z coordinates.
Kind: global function
Returns: number
- Distance between i and j.
Param | Type | Description |
---|---|---|
i | array |
Array start position in 3D space e.g. [-10, 5.1, 3] |
j | array |
Array end position in 3D space e.g. [0, 15.1, -7] |
guid
Returns a globally unique id string following the standard guid format.
Kind: global function
Returns: string
- Guid of 36 characters, including hyphens.
Ido
Returns a a string that commemorates how many days since Ido died.
positive
Computes the positive rounded up value of the input.
Kind: global function
Returns: number
- Positive value of the input number.
Param | Type | Description |
---|---|---|
input | number |
Number to be converted into positive. |
preventXss
Processes an input string to prevent Cross Site Scripting injection attacks (XSS). Returns a safe version of that input.
Kind: global function
Returns: string
- Cleaned string that shouldn't run any javascript code if displayed on a webpage.
Param | Type | Description |
---|---|---|
input | string |
The user input string that needs to be sanitized, to remove the possibility of injecting script of other html tags. |
randomList
Returns the subset of a list of x elements from a larger source list.
Kind: global function
Returns: object
- 2 arrays in an object: list and rest.
Param | Type | Description |
---|---|---|
input | object |
Input properties: source and max. |
input.source | array |
The source property is the array from which a max number of elements will be randomly selected. |
input.max | number |
Number of elements that will be randomly selected from input.source |
randomPosOrNeg
Calculates a positive or negative random number.
Kind: global function
Returns: number
- Positive or negative number randomly generated.
Param | Type | Description |
---|---|---|
max | number |
Maximum value that can be generated. |
randomPosition
Calculate new coordinates in a 3D space randomly to generate a new position.
Kind: global function
Returns: array
- Array of generated position coordinates.
Param | Type | Description |
---|---|---|
size | array |
Array of 3 numbers for the width, height and depth, respectively. |
random
Returns a random integer number from 1 to 100 or from min to max (min is non-inclusive).
Kind: global function
Returns: number
- Integer between min and max (inclusively)
Param | Type | Description |
---|---|---|
max | number |
the maximum to be returned, should be an integer |
min | number |
the minimum to be returned, should be an integer |
reducedDistance
Calculate new coordinates in a 3D space for point "i" in order
to get closer to point "j" reducing the distance between the two points by "r" amount.
Kind: global function
Returns: array
- Array of coordinates the i position should get to in order to get closer to j.
Param | Type | Description |
---|---|---|
i | array |
Array of 3 numbers for the coordinates x, y, z of the source point. |
j | array |
Array of 3 numbers for the coordicates x, y, z of the target point. |
r | number |
Number by which the distance between i and j needs to be reduced. |
trait
Throw 3 dices.
Kind: global function
Returns: number
- Return a random integer from 3 to 18.
boundingBox
Calculate a 3D bounding box for a THREE.js mesh.
Kind: global function
Param | Type | Description |
---|---|---|
THREE | object |
Core library of THREE.js |
mesh | string |
3D THREE.js object for a mesh that needs a bounding box calculated. |