예제 #1
0
        /// This is called when the game should draw itself.
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            renderer.clearScreen(this);
            renderer.startDrawing();

            //Draw console
            if (currentMap.getOccupied(inputManager.GetCurrentMouseTile(currentMap)))
            {
                uiManager.updateConsole(currentMap.getOccupyingElement(inputManager.GetCurrentMouseTile(currentMap)).getDetails());
            }
            else
            {
                uiManager.updateConsole("");
            }

            //Draw Console
            uiManager.DrawConsole();

            if (elementFocus.Count > 0)
            {
                uiManager.DrawCurrentFocusActionIcons(elementFocus[0], inputManager);
            }

            //Draw map
            //find water offset
            waterOffset.X += gameTime.ElapsedGameTime.Milliseconds * 0.01f;
            waterOffset.Y += gameTime.ElapsedGameTime.Milliseconds * 0.02f;
            //if (waterOffset.X > 256.0f) waterOffset.X -= 256.0f - (float)GlobalVariables.TILE_SIZE;
            //if (waterOffset.Y > 256.0f) waterOffset.Y -= 256.0f - (float)GlobalVariables.TILE_SIZE;
            currentMap.drawWater(renderer, waterOffset);
            currentMap.draw(renderer);
            currentMap.drawWaterLedge(renderer);

            //Drag drawing
            if (inputManager.DragStarted())
            {
                uiManager.DrawCurrentDrag(inputManager.GetMouseDragStartTile(), inputManager.GetCurrentMouseTile(currentMap));
            }
            else
            {
                //Heighlight mouse position
                if (inputManager.MouseOverMap())
                {
                    uiManager.DrawMouseFocus(inputManager.GetCurrentMouseTile(currentMap));
                }
            }

            //Heighlight focus
            if (elementFocus.Count > 0)
            {
                for (int i = 0; i < elementFocus.Count; i++)
                {
                    uiManager.DrawCurrentObjectFocus(elementFocus[i]);
                }
            }

            renderer.endDrawing();

            base.Draw(gameTime);
        }