A Trajectory behavior for Construct 3, Simulate 2D physics trajectory and projectile motion. simulates the motion of an object that is thrown, launched, or otherwise projected
Author: piranha305
Addon Url: https://www.construct.net/en/make-games/addons/1088/trajectory
Made using c3ide2-framework
To build the addon, run the following commands:
npm i
node ./build.js
To run the dev server, run
npm i
node ./dev.js
The build uses the pluginConfig file to generate everything else. The main files you may want to look at would be instance.js and scriptInterface.js
Property Name | Description | Type |
---|---|---|
Enabled | If Enabled, the object will move along the trajectory paths | check |
Velocity | Speed which the object will move in pixels per second | integer |
Angle | Angle, in degrees, to launch the projectile at | integer |
Gravity | Force applied every tick, in pixels per second squared | integer |
Gravity Angle | Angle in which the gravity force will be applied, in degrees | integer |
Stop On Solid | Stops the projectile movement when colliding with a Solid | check |
Set Movement Angle | Set movement angle to match the direction of the trajectory | check |
Action | Description | Params |
---|---|---|
Set Enabled | Sets the behavior as enabled (if true, the object will move along the trajectory paths) | Enabled (boolean) |
Set Gravity Angle | Set the angle in which gravity force will be applied, in degrees | Gravity Angle (number) |
Set Trajectory By Velocity | Calculate the trajectory based on the velocity and launch angle | Velocity (number) Launch Angle (number) Start Instantly (boolean) Stop On Solid (boolean) Set Movement Angle (boolean) |
Set Trajectory By Target | Calculate the trajectory based on the target position and time | Target X (number) Target Y (number) Time (number) Start Instantly (boolean) Stop On Solid (boolean) Set Movement Angle (boolean) Stop On Target Reached (boolean) |
Set Trajectory By Target Angle | Calculate the trajectory based on the target position and launch angle | Target X (number) Target Y (number) Launch Angle (number) Start Instantly (boolean) Stop On Solid (boolean) Set Movement Angle (boolean) Stop On Target Reached (boolean) |
Draw Trajectory | Draw the trajectory using a Sprite | Sprite (object) Layer (layer) Steps (number) Time (number) Set Sprite Angle (boolean) |
Draw Trajectory With End Sprite | Draw the trajectory using a Sprite and an end cap Sprite | Sprite (object) End Cap Sprite (object) Layer (layer) Steps (number) Time (number) Set Sprite Angle (boolean) |
Clear Drawn Trajectory | Clear the drawn trajectory | |
Predict Trajectory Collision | Predict where a collision with a solid object will occur along the trajectory | Steps (number) Time (number) |
Start Trajectory | Start moving along predefined the trajectory | |
Stop Trajectory | Stop moving along the trajectory | |
Load From JSON | Load the trajectory data from a JSON string | JSON (string) |
Condition | Description | Params |
---|---|---|
Is Enabled | Check if the trajectory behavior is enabled | |
On Hit Solid | Triggered when the projectile hits a solid object | |
On Start Moving Along Trajectory | Triggered when the object starts moving along the trajectory | |
Is Moving Along Trajectory | ICheck if the object is moving along the trajectory | |
For Each Step In Trajectory | Loop through each step in the trajectory | Steps (number) Time (number) |
On Predicted Collision Found | Triggered when the 'Predict Trajectory Collision' action finds a collision with a solid object | |
No Predicted Collision Found | Triggerd when the 'Predict Trajectory Collision' action does not find a collision with a solid object | |
On Target Reached | Triggered when the object reaches the target position |
Expression | Description | Return Type | Params |
---|---|---|---|
GetXAt | Get the X position at a given time, in seconds | number | Time (number) |
GetYAt | Get the Y position at a given time, in seconds | number | Time (number) |
GetVelocityX | Get the current velocity X, in pixels per second | number | |
GetVelocityY | Get the current velocity Y, in pixels per second | number | |
GetAngleAt | Get the angle at a given time, in seconds | number | Time (number) |
GetMaxHeight | Get the maximum height of the trajectory, in pixels | number | |
GetLoopTimeStep | Get the time step, in seconds, between each loop iteration | number | |
GetLoopX | Get the current X position, between each loop iteration | number | |
GetLoopY | Get the current Y position, between each loop iteration | number | |
GetLoopAngle | Get the current angle, in degrees, between each loop iteration | number | |
GetCollisionX | Get X position from Predicted Trajectory Collision | number | |
GetCollisionY | Get Y position from Predicted Trajectory Collision | number | |
Time | Get the last trajectory's time, in seconds, if no time was set, returns -1 | number | |
TargetX | Get the last trajectory's target X, if no target was set, returns -1 | number | |
TargetY | Get the last trajectory's target Y, if no target was set, returns -1 | number | |
Velocity | Get the last trajectory's velocity, in pixels per second | number | |
LaunchAngle | Get the last trajectory's launch angle, in degrees | number | |
AsJSON | Get the trajectory data as a JSON string | string |