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, .{});
|
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 pos = enemy.kinetic.pos;
|
||||||
const sprite_size = enemy.sprite.getSize();
|
const sprite_size = enemy.sprite.getSize();
|
||||||
var sprite = enemy.sprite;
|
var sprite = enemy.sprite;
|
||||||
@ -951,6 +975,7 @@ pub fn tick(self: *CombatScreen, state: *State, frame: *Engine.Frame) !TickResul
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (self.show_colliders) {
|
if (self.show_colliders) {
|
||||||
|
const enemy_rect = getCenteredRect(enemy.kinetic.pos, enemy.size);
|
||||||
frame.drawRectangle(.{
|
frame.drawRectangle(.{
|
||||||
.rect = enemy_rect,
|
.rect = enemy_rect,
|
||||||
.color = rgba(20, 20, 200, 0.2),
|
.color = rgba(20, 20, 200, 0.2),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user