Skip to content

Python bindings for the RocketSim project

License

Notifications You must be signed in to change notification settings

uservar/rocketsim-py

 
 

Repository files navigation

image

Python bindings for the RocketSim project

Compatible with Python 3.7+, Windows and Linux.

Produces just 2 wheels, and include IDE type hints!

Using these bindings

Download them from PyPi with pip install rocketsim or from the latest release!

Here's what the files do in the latest release:

  • rocketsim.zip - Unzip this into your project and have Windows & Linux support for Python 3.7+!
  • rocketsim-X.X.X-cp37-abi3-win_amd64.whl - The Windows-only wheel file for the bindings. You can pip install file_name.whl to try out RLUtilities in Python 3.7+ on Windows.
  • rocketsim-X.X.X-cp37-abi3-manylinux_2_28_x86_64.whl - The Linux-only wheel file for the bindings. You can pip install file_name.whl to try out RLUtilities in Python 3.7+ on Linux.
  • rocketsim-X.X.X.tar.gz - The minimal source code of this project. Unzip and it contains all the files you need to build the bindings yourself, for your platform and architecture. Beware that this doesn't included any of the required tools/dependencies to build the bindings!

Example

from rocketsim import Angle, Vec3
from rocketsim.sim import Arena, CarConfig, GameMode, Team, CarControls

if __name__ == "__main__":
    arena = Arena(GameMode.Soccar)
    print(f"Arena tick rate: {arena.get_tick_rate()}")

    ball = arena.get_ball()
    ball.pos = ball.get_pos().with_z(1500)
    arena.ball = ball
    print("Set ball state")

    car_id = arena.add_car(Team.Blue, CarConfig.Octane)
    print(f"ID of added car: {car_id}")

    car = arena.get_car(car_id)
    car.pos = Vec3(0, 0, 1050)
    car.angles = Angle(0, 1.1, 0)
    car.boost = 100
    arena.set_car(car_id, car)
    print("Set car state")

    arena.set_car_controls(car_id, CarControls(boost=True))
    print("Set car controls")

    ticks = 7200

    arena.step(ticks)

    inactive_pads = 0

    for i in range(arena.num_pads()):
        pad = arena.get_pad_state(i)
        if not pad.is_active:
            inactive_pads += 1
            pos = arena.get_pad_static(i).pos
            print(f"Pad {i} is inactive at {pos}")

    if inactive_pads == 0:
        print("All pads are active")

About

Python bindings for the RocketSim project

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 82.0%
  • Python 18.0%