README
ebabel
Library of re-useable game modules to build web browser HTML5 games.
Install
npm install --save ebabel
Generate this README.md document
npm run readme
Contribute to ebabel game modules
First of all, thank you! Please see the contributing guidelines so we can start working together effectively.
Object
audio(input) ⇒ 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. |
Constants
- 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.
Functions
- hexStringToInt(input) ⇒
number
hexStringToInt
Convert string hex to integer.
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.
number
hexStringToInt(input) ⇒ 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 |
Object
light(input) ⇒ 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'. |
Object
textSprite(input) ⇒ 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. |
Functions
- 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(camera, dataStore)
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(dataStore)
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. |
Functions
- skybox(input) ⇒
Object
Skybox
Setup a skybox mesh and add it to the scene.- userData(size, position)
userData
Setup skybox default userData.
Object
skybox(input) ⇒ 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(size, position)
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. |
Functions
- 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(input)
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. |
Object
deepCopy(input) ⇒ 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. |
number
dice() ⇒ dice
Throw 1 die.
Kind: global function
Returns: number
- Return a random integer from 1 to 6.
number
distance(i, j) ⇒ 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] |
string
guid() ⇒ guid
Returns a globally unique id string following the standard guid format.
Kind: global function
Returns: string
- Guid of 36 characters, including hyphens.
Ido()
Ido
Returns a a string that commemorates how many days since Ido died.
number
positive(input) ⇒ 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. |
string
preventXss(input) ⇒ 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. |
object
randomList(input) ⇒ 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 |
number
randomPosOrNeg(max) ⇒ 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. |
array
randomPosition(size) ⇒ 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. |
number
random(max, min) ⇒ 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 |
array
reducedDistance(i, j, r) ⇒ 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. |
number
trait() ⇒ trait
Throw 3 dices.
Kind: global function
Returns: number
- Return a random integer from 3 to 18.
boundingBox(THREE, mesh)
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. |