sort enemy draw
This commit is contained in:
parent
0b3f4486c0
commit
f96a8b4b78
@ -905,7 +905,31 @@ pub fn tick(self: *CombatScreen, state: *State, frame: *Engine.Frame) !TickResul
|
||||
}
|
||||
|
||||
enemy.kinetic.update(dt, .{});
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
var sorted_enemies: std.ArrayList(*Enemy) = .empty;
|
||||
|
||||
var enemy_iter = self.enemies.iterator();
|
||||
while (enemy_iter.nextItem()) |enemy| {
|
||||
try sorted_enemies.append(frame.arena.allocator(), enemy);
|
||||
}
|
||||
|
||||
const Context = struct {
|
||||
fn lessThan(_: @This(), lhs: *Enemy, rhs: *Enemy) bool {
|
||||
return lhs.kinetic.pos.y < rhs.kinetic.pos.y;
|
||||
}
|
||||
};
|
||||
|
||||
std.mem.sort(
|
||||
*Enemy,
|
||||
sorted_enemies.items,
|
||||
Context{},
|
||||
Context.lessThan
|
||||
);
|
||||
|
||||
for (sorted_enemies.items) |enemy| {
|
||||
const pos = enemy.kinetic.pos;
|
||||
const sprite_size = enemy.sprite.getSize();
|
||||
var sprite = enemy.sprite;
|
||||
@ -951,6 +975,7 @@ pub fn tick(self: *CombatScreen, state: *State, frame: *Engine.Frame) !TickResul
|
||||
});
|
||||
|
||||
if (self.show_colliders) {
|
||||
const enemy_rect = getCenteredRect(enemy.kinetic.pos, enemy.size);
|
||||
frame.drawRectangle(.{
|
||||
.rect = enemy_rect,
|
||||
.color = rgba(20, 20, 200, 0.2),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user