CUGL 2.5
Cornell University Game Library
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
cugl::scene2::MoveBy Class Reference

#include <CUMoveAction.h>

Inheritance diagram for cugl::scene2::MoveBy:
cugl::scene2::Action

Public Member Functions

 MoveBy ()
 
 ~MoveBy ()
 
void dispose ()
 
bool init ()
 
bool init (const Vec2 delta)
 
bool init (const Vec2 delta, float time)
 
const Vec2getDelta () const
 
void setDelta (const Vec2 &delta)
 
virtual std::shared_ptr< Actionclone () override
 
virtual void start (const std::shared_ptr< SceneNode > &target, void **state) override
 
virtual void stop (const std::shared_ptr< SceneNode > &target, void **state) override
 
virtual void update (const std::shared_ptr< SceneNode > &target, void *state, float dt) override
 
virtual std::string toString (bool verbose=false) const override
 
- Public Member Functions inherited from cugl::scene2::Action
 Action ()
 
 ~Action ()
 
float getDuration () const
 
void setDuration (float time)
 
virtual std::shared_ptr< Actionclone ()
 
virtual void start (const std::shared_ptr< SceneNode > &target, void **state)
 
virtual void stop (const std::shared_ptr< SceneNode > &target, void **state)
 
virtual void update (const std::shared_ptr< SceneNode > &target, void *state, float dt)
 
virtual std::string toString (bool verbose=false) const
 
 operator std::string () const
 

Static Public Member Functions

static std::shared_ptr< MoveByalloc ()
 
static std::shared_ptr< MoveByalloc (const Vec2 delta)
 
static std::shared_ptr< MoveByalloc (const Vec2 delta, float time)
 

Protected Attributes

Vec2 _delta
 
- Protected Attributes inherited from cugl::scene2::Action
float _duration
 

Detailed Description

This action represents a movement by a given vector amount.

An action contains only the definition of the animation. This can include information about the transform to use or the duration of the animation. However, it does not contain any attribute of the target. Hence, an action can be reapplied to different targets.

By itself, an action does nothing. It only specifies an action that may take place. To use an action, it must be passed to the ActionManager. The manager will create an action instance and animate that instance. While an action may be reused many times, an action instance corresponds to a single animation.

Constructor & Destructor Documentation

◆ MoveBy()

cugl::scene2::MoveBy::MoveBy ( )
inline

Creates an uninitialized movement action.

NEVER USE A CONSTRUCTOR WITH NEW. If you want to allocate an object on the heap, use one of the static constructors instead.

◆ ~MoveBy()

cugl::scene2::MoveBy::~MoveBy ( )
inline

Deletes this action instance, disposing all resources

Member Function Documentation

◆ alloc() [1/3]

static std::shared_ptr< MoveBy > cugl::scene2::MoveBy::alloc ( )
inlinestatic

Returns a newly allocated movement animation over the given vector.

When animated, this action will move its target by the given delta. The animation will be instantaneous.

Returns
a newly allocated movement animation over the given vector.

◆ alloc() [2/3]

static std::shared_ptr< MoveBy > cugl::scene2::MoveBy::alloc ( const Vec2  delta)
inlinestatic

Returns a newly allocated, instaneous movement animation over the given vector.

When animated, this action will move its target by the given delta. The animation will be instantaneous.

Parameters
deltaThe amount to move the target node
Returns
a newly allocated, instaneous movement animation over the given vector.

◆ alloc() [3/3]

static std::shared_ptr< MoveBy > cugl::scene2::MoveBy::alloc ( const Vec2  delta,
float  time 
)
inlinestatic

Returns a newly allocated, instaneous movement animation over the given vector.

When animated, this action will move its target by the given delta. The animation will take place over the given number of seconds.

Parameters
deltaThe amount to move the target node
timeThe animation duration
Returns
a newly allocated, instaneous movement animation over the given vector.

◆ clone()

virtual std::shared_ptr< Action > cugl::scene2::MoveBy::clone ( )
overridevirtual

Returns a newly allocated copy of this Action.

Returns
a newly allocated copy of this Action.

Reimplemented from cugl::scene2::Action.

◆ dispose()

void cugl::scene2::MoveBy::dispose ( )
inline

Disposes all of the resources used by this action.

A disposed action can be safely reinitialized.

◆ getDelta()

const Vec2 & cugl::scene2::MoveBy::getDelta ( ) const
inline

Returns the movement delta for this action.

Changing this value for an actively animating action can have undefined effects.

Returns
the movement delta for this action.

◆ init() [1/3]

bool cugl::scene2::MoveBy::init ( )
inline

Initializes a degenerate movement action.

The movement amount is set to (0.0, 0.0), meaning no movement takes place.

Returns
true if initialization was successful.

◆ init() [2/3]

bool cugl::scene2::MoveBy::init ( const Vec2  delta)
inline

Initializes an instaneous movement animation over the given vector.

When animated, this action will move its target by the given delta. The animation will be instantaneous.

Parameters
deltaThe amount to move the target node
Returns
true if initialization was successful.

◆ init() [3/3]

bool cugl::scene2::MoveBy::init ( const Vec2  delta,
float  time 
)

Initializes a movement animation over the given vector.

When animated, this action will move its target by the given delta. The animation will take place over the given number of seconds.

Parameters
deltaThe amount to move the target node
timeThe animation duration
Returns
true if initialization was successful.

◆ setDelta()

void cugl::scene2::MoveBy::setDelta ( const Vec2 delta)
inline

Sets the movement delta for this action.

Changing this value for an actively animating action can have undefined effects.

Parameters
deltathe movement delta for this action.

◆ start()

virtual void cugl::scene2::MoveBy::start ( const std::shared_ptr< SceneNode > &  target,
void **  state 
)
overridevirtual

Prepares a target for action

The important state of the target should be allocated and stored in the given state reference. The semantics of this state is action-dependent.

Parameters
targetThe node to act on
stateThe address to store the node state

Reimplemented from cugl::scene2::Action.

◆ stop()

virtual void cugl::scene2::MoveBy::stop ( const std::shared_ptr< SceneNode > &  target,
void **  state 
)
overridevirtual

Cleans up a target after an action

The target state in the given address should be deallocated, just as it was allocated in start. The semantics of this state is action-dependent.

Parameters
targetThe node to act on
stateThe address to deallocate the node state

Reimplemented from cugl::scene2::Action.

◆ toString()

virtual std::string cugl::scene2::MoveBy::toString ( bool  verbose = false) const
overridevirtual

Returns a string representation of the action for debugging purposes.

If verbose is true, the string will include class information. This allows us to unambiguously identify the class.

Parameters
verboseWhether to include class information
Returns
a string representation of this action for debuggging purposes.

Reimplemented from cugl::scene2::Action.

◆ update()

virtual void cugl::scene2::MoveBy::update ( const std::shared_ptr< SceneNode > &  target,
void *  state,
float  dt 
)
overridevirtual

Executes an action on the given target node.

The important state of the target is stored in the given state parameter. The semantics of this state is action-dependent.

Parameters
targetThe node to act on
stateThe relevant node state
dtThe elapsed time to animate.

Reimplemented from cugl::scene2::Action.

Member Data Documentation

◆ _delta

Vec2 cugl::scene2::MoveBy::_delta
protected

Difference between the destination and initial position


The documentation for this class was generated from the following file: