# GSAIKinematicBody2DAgent

**Extends:** GSAISpecializedAgent < GSAISteeringAgent < GSAIAgentLocation

### Description

A specialized steering agent that updates itself every frame so the user does not have to using a KinematicBody2D

### Properties

| Type            | Name           |
| --------------- | -------------- |
| KinematicBody2D | body           |
| int             | movement\_type |

### Functions

| Type | Name                                                                               |
| ---- | ---------------------------------------------------------------------------------- |
| void | func \_apply\_steering(acceleration: GSAITargetAcceleration, delta: float) -> void |

### Enumerations

#### MovementType

```gdscript
const MovementType: Dictionary = {"COLLIDE":1,"POSITION":2,"SLIDE":0}
```

### Property Descriptions

#### body

```gdscript
var body: KinematicBody2D
```

Setter | \_set\_body

The KinematicBody2D to keep track of

#### movement\_type

```gdscript
var movement_type: int
```

The type of movement the body executes

### Method Descriptions

#### \_apply\_steering (virtual)

```gdscript
func _apply_steering(acceleration: GSAITargetAcceleration, delta: float) -> void
```

Moves the agent's `body` by target `acceleration`.
