#cannot assign to constant

1 messages · Page 1 of 1 (latest)

fossil otter
#
const Enemy = struct {
    position: Vector2,
    size: f32,
    speed: f32,
};

const Game = struct {
    frame: usize,
    choosingMap: bool,
    health: usize,
    maps: std.ArrayList(Map),
    enemies: std.ArrayList(Enemy),
};

var game: Game = undefined;
const enemy = Enemy{
            .position = Vector2.init(0, 300),
            .size = 8,
            .speed = 1,
        };

        try game.enemies.append(enemy);
for (game.enemies.items) |enemy| {
        enemy.position = enemy.position.moveTowards(Vector2.init(1000, 1000), 1);
    }

when i try to compile im getting error

src/main.zig:71:14: error: cannot assign to constant
        enemy.position = enemy.position.moveTowards(Vector2.init(1000, 1000), 1);
upbeat jacinth
#

Loop captures are const

#
for (game.enemies.items) |*enemy| {
    enemy.*.position = ... 
} 
#

This captures by pointer, allowing to overwrite it

#

The .*. Is not needed, I put it there to emphasise the dereference