another data view

This commit is contained in:
Vinzenz Schroeter 2024-04-10 22:39:33 +02:00
parent 85ae3e302c
commit 91ab911f9c
9 changed files with 44 additions and 23 deletions

View file

@ -8,6 +8,6 @@ internal sealed class BulletDrawer(BulletManager bullets): IDrawStep
public void Draw(PixelDisplayBufferView buffer)
{
foreach (var bullet in bullets.GetAll())
buffer.Pixels[bullet.Position.ToPixelPosition().ToPixelIndex()] = true;
buffer.Pixels[bullet.Position.ToPixelPosition()] = true;
}
}

View file

@ -17,8 +17,8 @@ internal sealed class MapDrawer(MapService map) : IDrawStep
for (byte pixelInTileY = 0; pixelInTileY < MapService.TileSize; pixelInTileY++)
for (byte pixelInTileX = 0; pixelInTileX < MapService.TileSize; pixelInTileX++)
{
var index = tile.GetPixelRelative(pixelInTileX, pixelInTileY).ToPixelIndex();
buffer.Pixels[index] = pixelInTileX % 2 == pixelInTileY % 2;
var position = tile.GetPixelRelative(pixelInTileX, pixelInTileY);
buffer.Pixels[position] = pixelInTileX % 2 == pixelInTileY % 2;
}
}
}

View file

@ -35,18 +35,15 @@ internal sealed class TankDrawer : IDrawStep
{
var pos = tank.Position.ToPixelPosition();
var rotationVariant = (int)Math.Round(tank.Rotation) % 16;
for (var dy = 0; dy < MapService.TileSize; dy++)
for (var dx = 0; dx < MapService.TileSize; dx++)
{
var rowStartIndex = (pos.Y + dy) * MapService.PixelsPerRow;
if (!TankSpriteAt(dx, dy, rotationVariant))
continue;
for (var dx = 0; dx < MapService.TileSize; dx++)
{
if (!TankSpriteAt(dx, dy, rotationVariant))
continue;
var i = rowStartIndex + pos.X + dx;
buffer.Pixels[i] = true;
}
var position = new PixelPosition(pos.X + dx, pos.Y + dy);
buffer.Pixels[position] = true;
}
}
}
@ -59,4 +56,4 @@ internal sealed class TankDrawer : IDrawStep
return _tankSprite[index];
}
}
}