项目作者: endel

项目描述 :
Plugable Entity Component System for Games
高级语言: JavaScript
项目地址: git://github.com/endel/behaviour.js.git
创建时间: 2015-12-22T20:59:30Z
项目社区:https://github.com/endel/behaviour.js

开源协议:MIT License

下载


behaviour.js

Greenkeeper badge

Build Status

Plugable Entity Component System for Games.

behaviour.js is a Unity-like Entity Component System that you can plug on any
JavaScript library or engine.

Examples:

Usage

Attach the entity component system into your target library’s base class. Then
you’ll be able to attach custom behaviours directly into your objects.

  1. import { createComponentSystem, Behaviour } from 'behaviour.js'
  2. var componentSystem = createComponentSystem(THREE.Object3D)
  3. // Define your custom behaviour
  4. class CustomBehaviour extends Behaviour {
  5. onAttach () {
  6. console.log("CustomBehaviour has been attached into ", this.object)
  7. }
  8. update() {
  9. console.log("Let's do something with this object", this.object)
  10. this.object.rotation += 0.1
  11. }
  12. onDetach () {
  13. console.log("CustomBehaviour has been detached from ", this.object)
  14. }
  15. }
  16. // Attach the behaviour into your objects
  17. var object = new THREE.Object3D()
  18. object.addBehaviour(new CustomBehaviour())
  19. function animate() {
  20. componentSystem.update()
  21. // render your application
  22. // ...
  23. requestAnimationFrame( animate );
  24. }

API

Entities are a sublcass of
EventEmitters,
they have emit/on/once/off methods. A handy way to communicate
between behaviours is listening to events in Behaviour’s onAttach
callback.

Object

These methods are injected on all instances of the base object you provided on
createComponentSystem (e.g. THREE.Object, PIXI.DisplayObject, etc)

Methods

  • getEntity() - Get Entity instance attached to the object.
  • addBehaviour(behaviour, options) - Attach custom behaviour to this entity

Behaviour

Properties

  • entity - Entity instance
  • object - Object which this behaviour was attached

Callbacks

  • onAttach - called after being attached in a target object
  • onDetach - called after being manually detached (through entity.detach method)
  • update - called when your component system is updated

Methods

  • detach
  • on(event, callback[, context]) - alias to entity.on
  • once(event, callback[, context]) - alias to entity.once
  • off(event[, callback]) - alias to entity.off
  • emit(event[, arguments...]) - alias to entity.emit

Entity

Properties

  • object - Object which this behaviour was attached
  • behaviours - Array of behaviour instances

Methods

  • attach(behaviour) - Attach behaviour instance into this Entity
  • detach(behaviour) - Detach behaviour instance from this Entity
  • getBehaviour - Get attached behaviour by name or class reference.
  • detachAll - Detach all behaviours from this Entity
  • destroy - Detach all behaviours from this Entity and remove it from the System
  • on(event, callback[, context]) - Subscribe to an event
  • once(event, callback[, context]) - Subscribe to an event only once
  • off(event[, callback]) - Unsubscribe from an event or all events. If no callback is provided, it unsubscribes you from all events.
  • emit(event[, arguments...]) - Trigger a named event

License

MIT