Exemplo n.º 1
0
        public static void ConstructScene()
        {
            GamePixel[][] scene = new GamePixel[viewport.size.y][];

            for (int y = 0; y < viewport.size.y; y++)
            {
                scene[y] = new GamePixel[viewport.size.x];

                for (int x = 0; x < viewport.size.x; x++)
                {
                    Coord gridPos = new Coord(x + viewport.position.x, y + viewport.position.y);

                    scene[y][x] = grid[gridPos.y][gridPos.x];

                    foreach (Entity entity in entities)
                    {
                        if (entity.rect.top <= gridPos.y & entity.rect.bottom >= gridPos.y & entity.rect.left <= gridPos.x & entity.rect.right >= gridPos.x)
                        {
                            if (entity.spriteSheet[entity.activeSpriteSet][entity.activeSprite].grid[gridPos.y - entity.rect.top][gridPos.x - entity.rect.left].foreground >= 0 & entity.spriteSheet[entity.activeSpriteSet][entity.activeSprite].grid[gridPos.y - entity.rect.top][gridPos.x - entity.rect.left].background >= 0)
                            {
                                scene[y][x] = entity.spriteSheet[entity.activeSpriteSet][entity.activeSprite].grid[gridPos.y - entity.rect.top][gridPos.x - entity.rect.left];
                            }
                        }
                    }
                }
            }

            gameRegion.SetContent(scene);
        }