Edit of asset "Ballistic Solutions (GDScript, C#)" Accepted

Old/Current New/Edit
Title Ballistic Solutions (GDScript, C#)
Description Library for calculating interception times, impact positions, and firing vectors, taking into account the velocities and accelerations of both projectile and target.

Quickstart
1. Install the addon in Godot or reference the DLL in your C# project.
2. In your scene, compute the vector to the target:
`var to_target = target.global_position - global_position`
3. Call `best_firing_velocity` to get initial projectile velocity.
4. Instantiate your projectile and assign velocity and acceleration.

Warning
Godot Physics Consideration:
Godot applies linear damping to physics bodies by default, which gradually reduces object velocity. This can significantly affect ballistic accuracy if not properly accounted for.

Recommendations:
- Set default_linear_damp = 0 in the project settings, if you want pure projectile motion
- Test thoroughly with your specific physics settings
Ballistic deflection calculator is a tool for calculating the shot vector considering speeds and accelerations for Godot.

Methods
Array[float] times_to_hit_vector2(...) static
Array[float] times_to_hit_vector3(...) static
Array[float] times_to_hit_vector4(...) static

Array[Vector2] velocities_vector2(...) static
Array[Vector3] velocities_vector3(...) static
Array[Vector4] velocities_vector4(...) static

Vector2 velocity_from_time_to_hit_vector2(...) static
Vector3 velocity_from_time_to_hit_vector3(...) static
Vector4 velocity_from_time_to_hit_vector4(...) static

Example
const BULLET_SCENE: PackedScene = preload("res://.../bullet.tscn")
var bullet_speed: float = 300

func shoot(target: CharacterBody2D) -> void:
var to_target: Vector2 = target.global_position - global_position

var bullet_velocities: Array[Vector2] = BDC.velocities_vector2(bullet_speed, to_target, target.velocity)

if bullet_velocities.size() == 0:
print("impossible to hit the target")
return

var bullet: CharacterBody2D = BULLET_SCENE.instantiate()
bullet.global_position = global_position
bullet.velocity = bullet_velocities[0]

get_parent().add_child(bullet)
Category Scripts
License MIT
Repository Provider GitHub
Repository Url https://github.com/neclor/ballistic-solutions
Issues Url https://github.com/neclor/ballistic-solutions/issues
Godot version Godot 4.0
Version String 4.0.1 2.1.1
Download Commit ede88e056e566e707deb9a57eacb84628021aebb 8113da0864d935d1987a9fa437b72424f4b0be5b
Download Url (Computed) https://github.com/neclor/ballistic-solutions/archive/ede88e056e566e707deb9a57eacb84628021aebb.zip https://github.com/neclor/ballistic-solutions/archive/8113da0864d935d1987a9fa437b72424f4b0be5b.zip
Icon Url https://raw.githubusercontent.com/neclor/ballistic-solutions/main/icon.png
Preview Insert
Type image
Image/Video URL https://raw.githubusercontent.com/neclor/ballistic-deflection-calculator-godot/main/docs/screenshot.png
Thumbnail