User Tools

Site Tools


dragengine:modules:dragonscript:behavior_playercontrollable

ECBehaviorPlayerControllable

Behavior element behavior adding player controlling support to actor.

Actors with this behavior can become the player controlled actor. Requires an instance of ECBehaviorPlayerControllable.Tracker to be assigned. The instance keeps track of the active player actor and is typically stored globally in the game. BaseGameApp provides such an instance for easy use.

Instance Counts

This behavior can be used only once on an element.

Element Class Properties

Element class properties have the prefix playerControllable. .

Events

playerTakesControl

Became active player actor.

playerReleasesControl

Ceased being active player actor.

Conversation Commands

playerControllable

playerControllable takeControl

Make actor become the active player actor.

Conversation Conditions

playerControllable

playerControllable isPlayerControlled

Actor is the active player actor.

Required Behaviors

This behavior requires no other behaviors.

Optional Behaviors

Persistency

This behavior does support element class to be persistable (setPersistable).

API Documentation

ECBehaviorPlayerControllable.

Since DragonScript Module Version 1.0

Use Cases

  • Allow element to be controlled by player.

Element Class Example

This example defines an element which can be controlled by the player.

class MyElement extends BehaviorElementClass
  public var ECBehaviorPlayerControllable playerControllable
  func new()
    playerControllable = ECBehaviorPlayerControllable.new(this)
  end
end

Behavior Factory

Using element class supporting adding behaviors the behavior can be added like this:

<?xml version='1.0' encoding='UTF-8'?>
<elementClass name='MyClass' class='GenericBehaviorElement'>
  <behavior type='ECBehaviorComponent'/>
  <behavior type='ECBehaviorCollider'/>
 
  <behavior type='ECBehaviorPlayerControllable'>
    <!-- optional: use BaseGameApp player controlled actor.
                   game can add more supported values. default is 'default' -->
    <string name='playerControlledActor'>default</string>
 
    <!-- set element properties. omit property prefix if used inside behavior tag -->
    <string name='.name'>value</string>
  </behavior>
</elementClass>

Live Examples

You could leave a comment if you were logged in.
dragengine/modules/dragonscript/behavior_playercontrollable.txt · Last modified: 2025/03/13 11:26 by dragonlord