| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright (c) 2008-2023 the Urho3D project
- // License: MIT
- #pragma once
- #include <Urho3D/Scene/LogicComponent.h>
- // All Urho3D classes reside in namespace Urho3D
- using namespace Urho3D;
- /// Mover logic component
- /// - Handles entity (enemy, platform...) translation along a path (set of Vector2 points)
- /// - Supports looping paths and animation flip
- /// - Default speed is 0.8 if 'Speed' property is not set in the tmx file objects
- class Mover : public LogicComponent
- {
- URHO3D_OBJECT(Mover, LogicComponent);
- public:
- /// Construct.
- explicit Mover(Context* context);
- /// Register object factory and attributes.
- static void RegisterObject(Context* context);
- /// Handle scene update. Called by LogicComponent base class.
- void Update(float timeStep) override;
- /// Return path attribute.
- Vector<byte> GetPathAttr() const;
- /// Set path attribute.
- void SetPathAttr(const Vector<byte>& value);
- /// Path.
- Vector<Vector2> path_;
- /// Movement speed.
- float speed_;
- /// ID of the current path point.
- int currentPathID_;
- /// Timer for particle emitter duration.
- float emitTime_;
- /// Timer used for handling "attack" animation.
- float fightTimer_;
- /// Flip animation based on direction, or player position when fighting.
- float flip_;
- };
|