Пример #1
0
 public NumberBlit(BitmapData spriteSheet, Rectangle rect, int digits = 1, double step = 0.25, int dx = 0, int dy = 0, int spacing = 0, int stepY = 0) : base(spriteSheet, rect, dx, dy)
 {
     this.height = height;
     this.digits = digits;
     this.step   = step;
     if (stepY > 0)
     {
         this.stepY = stepY;
     }
     else
     {
         this.stepY = (int)rect.width;
     }
     if (spacing > 0)
     {
         this.spacing = spacing;
     }
     else
     {
         this.spacing = (int)rect.width;
     }
     sourceY   = (int)rect.y;
     drums     = new Array <double>(new double [digits]);
     this.rect = new Rectangle(rect.x, rect.y, spacing, spacing + 1);
 }
Пример #2
0
        public static UIManager confirmDialog(double x, double y, BlitRect panel, Action okayCallback, BlitRect okayBlit, BlitRect cancelBlit, Action cancelCallback = null, Action selectSoundCallback = null)
        {
            dialog = new UIManager();
            dialog.selectSoundCallback = selectSoundCallback;
            cancelCallback             = cancelCallback ?? closeDialog;
            int      i;
            Point    point;
            BlitRect blit;
            Action   f;
            var      buttonPoints = new Array <Point> {
                new Point(x, y), new Point(x + 3, y + 3), new Point(x + okayBlit.width + 4, y + 3)
            };
            var buttonBlits = new Array <BlitRect> {
                panel, okayBlit, cancelBlit
            };
            var buttonCallbacks = new Array <Action> {
                null, okayCallback, cancelCallback
            };

            for (i = 0; i < buttonPoints.length; i++)
            {
                point = buttonPoints[i];
                blit  = buttonBlits[i];
                f     = buttonCallbacks[i];
                dialog.addButton(point.x, point.y, blit, f, null, f != null);
            }
            return(dialog);
        }
Пример #3
0
        public TitleMenu()
        {
            uiManager = new UIManager();
            uiManager.selectSoundCallback = game.selectSound;
            levelButtonRect = new Rectangle(0, 0, renderer.numberButtonBlit.width - 1, renderer.numberButtonBlit.height - 1);

            mapCopyBuffer = Room.create2DArray(Level.ROOM_WIDTH, Level.ROOM_HEIGHT);

            // puzzle, adventure, editor
            puzzleButton    = uiManager.addButton(Game.WIDTH * 0.5 - renderer.puzzleButtonBlit.width * 2, Game.HEIGHT * 0.5 - renderer.puzzleButtonBlit.height * 0.5, renderer.puzzleButtonBlit, puzzlePressed);
            adventureButton = uiManager.addButton(Game.WIDTH * 0.5 - renderer.adventureButtonBlit.width * 0.5, Game.HEIGHT * 0.5 - renderer.adventureButtonBlit.height * 0.5, renderer.adventureButtonBlit, adventurePressed);
            editorButton    = uiManager.addButton(Game.WIDTH * 0.5 + renderer.editorButtonBlit.width, Game.HEIGHT * 0.5 - renderer.editorButtonBlit.height * 0.5, renderer.editorButtonBlit, puzzlePressed);

            // level button grid
            uiManager.addGroup();
            uiManager.changeGroup(1);
            levelButtons = new Array <BlitButton>();
            double     buttonX = Game.WIDTH * 0.5 - ((LEVEL_BUTTONS_WIDE - 1) * LEVEL_BUTTON_GAP + levelButtonRect.width * LEVEL_BUTTONS_WIDE) * 0.5;
            double     buttonY = Game.HEIGHT * 0.5 - ((LEVEL_BUTTONS_HIGH - 1) * LEVEL_BUTTON_GAP + levelButtonRect.height * LEVEL_BUTTONS_HIGH) * 0.5;
            BlitButton levelButton;

            for (r = 0; r < LEVEL_BUTTONS_HIGH; r++)
            {
                for (c = 0; c < LEVEL_BUTTONS_WIDE; c++)
                {
                    levelButton = uiManager.addButton(
                        buttonX + c * (levelButtonRect.width + LEVEL_BUTTON_GAP),
                        buttonY + r * (levelButtonRect.height + LEVEL_BUTTON_GAP),
                        renderer.numberButtonBlit, levelPressed, levelButtonRect
                        );
                    levelButton.releaseCallback = levelReleased;
                    levelButton.id       = c + r * LEVEL_BUTTONS_WIDE;
                    levelButton.targetId = 1;
                    levelButtons.push(levelButton);
                }
            }
            int border     = 2;
            var buttonRect = new Rectangle(0, 0, renderer.cancelButtonBlit.width, renderer.cancelButtonBlit.height);

            leftButton         = uiManager.addButton(Game.WIDTH * 0.5 - 3 * Game.SCALE + border, Game.HEIGHT - Game.SCALE * 2 + border, renderer.leftButtonBlit, directionPressed, buttonRect);
            leftButton.visible = false;
            backButton         = uiManager.addButton(Game.WIDTH * 0.5 - 1 * Game.SCALE + border, Game.HEIGHT - Game.SCALE * 2 + border, renderer.cancelButtonBlit, backPressed, buttonRect);
            rightButton        = uiManager.addButton(Game.WIDTH * 0.5 + 1 * Game.SCALE + border, Game.HEIGHT - Game.SCALE * 2 + border, renderer.rightButtonBlit, directionPressed, buttonRect);
            if (!Game.MOBILE)
            {
                loadFromDesktopButton = uiManager.addButton(Game.WIDTH * 0.5 - 5 * Game.SCALE + border, Game.HEIGHT - Game.SCALE * 2 + border, renderer.loadButtonBlit, loadFromDesktop, buttonRect);
                loadFromDesktopButton.feedCallbackToEvent = true;
                saveToDesktopButton = uiManager.addButton(Game.WIDTH * 0.5 + 3 * Game.SCALE + border, Game.HEIGHT - Game.SCALE * 2 + border, renderer.saveButtonBlit, saveToDesktop, buttonRect);
                saveToDesktopButton.feedCallbackToEvent = true;
            }
            scoreTextBox       = new TextBox(Game.WIDTH, 8, 0x0, 0x0);
            scoreTextBox.align = "center";
            if (UserData.settings.best != null)
            {
                setScore((int)UserData.settings.best);
            }
            uiManager.changeGroup(0);
        }
Пример #4
0
 public UIManager(Boolean active = true)
 {
     this.active  = active;
     buttons      = new Array <BlitButton>();
     buttonsOver  = new Array <BlitButton>();
     buttonGroups = new Array <Array <BlitButton> > {
         buttons
     };
     currentGroup = 0;
 }
Пример #5
0
        /* Returns a list of x positions for given widths and gaps spread out from cx */
        public static Array <double> distributeRects(double cx, double width, double gap, int total)
        {
            var    list = new Array <double>();
            double x    = cx - (width * total + gap * (total - 1)) * 0.5;

            for (; total > 0; total--)
            {
                list.push(x);
                x += width + gap;
            }
            return(list);
        }
Пример #6
0
 /* Destroy all objects */
 public void clearAll()
 {
     while (canvas.numChildren > 0)
     {
         canvas.removeChildAt(0);
     }
     bitmap       = null;
     bitmapShadow = null;
     bitmapData.dispose();
     bitmapData = null;
     fx         = null;
     game       = null;
 }
Пример #7
0
    /* Play a sound at a volume based on the distance to the player */
    public void createDistSound(int mapX, int mapY, String name, Array <string> names = null, double volume = 1.0)
    {
        double dist = Math.Abs(level.data.player.x - mapX) + Math.Abs(level.data.player.y - mapY);

        if (dist < SOUND_DIST_MAX)
        {
            if (names != null)
            {
                soundQueue.addRandom(name, names, (SOUND_DIST_MAX - dist) * INV_SOUND_DIST_MAX * volume);
            }
            else if (name != null)
            {
                soundQueue.add(name, (SOUND_DIST_MAX - dist) * INV_SOUND_DIST_MAX * volume);
            }
        }
    }
Пример #8
0
        /* Prepares sprites and bitmaps for a game session */
        public void createRenderLayers(Sprite holder = null)
        {
            if (holder == null)
            {
                holder = game;
            }

            canvasPoint = new Point();
            canvas      = new Sprite();
            holder.addChild(canvas);

            backgroundShape      = new Shape();
            backgroundBitmapData = new BitmapData(16, 16, true, 0x0);

            //CONVERSION - simply made this a texture in the Content project
            //backgroundBitmapData.copyPixels(gameSpriteSheet, new Rectangle(0, 0, 16, 16), new Point());

            bitmapData       = new BitmapData((int)WIDTH, (int)HEIGHT, true, 0x0);
            bitmap           = new Shape();
            bitmapDataShadow = bitmapData.clone();
            bitmapShadow     = new Shape();
            guiBitmapData    = new BitmapData((int)WIDTH, (int)HEIGHT, true, 0x0);
            guiBitmap        = new Shape();

            canvas.addChild(backgroundShape);
            canvas.addChild(bitmapShadow);
            canvas.addChild(bitmap);
            game.addChild(guiBitmap);

            fx     = new Array <FX>();
            roomFx = new Array <FX>();

            camera = new CanvasCamera(canvasPoint, this);

            shakeOffset = new Point();
            shakeDirX   = 0;
            shakeDirY   = 0;
            slideX      = 0;
            slideY      = 0;
            sliding     = false;
            refresh     = true;

            //backgroundBitmapData.renderTarget = _backgroundRenderTarget;
            bitmapData.renderTarget       = _gameRenderTarget;
            bitmapDataShadow.renderTarget = _shadowRenderTarget;
            guiBitmapData.renderTarget    = _guiRenderTarget;
        }
Пример #9
0
        public static UIManager openDialog(Array <Point> buttonPoints, Array <BlitRect> buttonBlits, Array <Action> buttonCallbacks, Action selectSoundCallback)
        {
            dialog = new UIManager();
            dialog.selectSoundCallback = selectSoundCallback;
            int      i;
            Point    point;
            BlitRect blit;
            Action   f;

            for (i = 0; i < buttonPoints.length; i++)
            {
                point = buttonPoints[i];
                blit  = buttonBlits[i];
                f     = buttonCallbacks[i];
                dialog.addButton(point.x, point.y, blit, f, null, f != null);
            }

            return(dialog);
        }
Пример #10
0
        /* This must be called before any TextBox is created so sprites can be drawn */
        public static void init(Array <Rectangle> characterList, BitmapData _spriteSheet)
        {
            spriteSheet = _spriteSheet;
            characters  = new Dictionary <char, Rectangle>();
            char      characterName;
            Rectangle rect;

            for (int i = 0; i < characterList.length; i++)
            {
                if (characterList[i] != null)
                {
                    rect = characterList[i];
                }
                else
                {
                    rect = new Rectangle();
                }
                characterName             = characterNames[i];
                characters[characterName] = rect;
            }
        }
Пример #11
0
        public TextBox(double _width, double _height, uint backgroundCol = 0xFF111111, uint borderCol = 0xFF99999U)
        {
            this._width        = (int)_width;
            this._height       = (int)_height;
            this.backgroundCol = backgroundCol;
            this.borderCol     = borderCol;
            align            = "left";
            alignVert        = "top";
            _colorInt        = 0x00FFFFFF;
            wordWrap         = true;
            tracking         = 0;
            leading          = 1;
            whitespaceLength = 2;
            lineSpacing      = 8;
            _text            = "";

            lines = new Array <Array <Rectangle> >();

            borderRect = new Rectangle(0, 0, _width, _height);
            boundsRect = new Rectangle(0, 0, _width, _height);
            maskRect   = new Rectangle(0, 0, 1, 1);
            bitmapData = new BitmapData(Renderer.GameSpriteSheet, (int)_width, (int)_height, true, 0x0);
            drawBorder();
        }
Пример #12
0
        /* Calculates an array of BitmapDatas needed to render the text */
        protected void updateText()
        {
            _stringLines.Clear();
            _stringLines.Add("");

            // we create an array called lines that holds references to all of the
            // bitmapDatas needed and structure it like the text

            // the lines property is public so it can be used to ticker text
            lines      = new Array <Array <Rectangle> >();
            lineWidths = new Array <double>();
            textLines  = new Array <Array <char?> >();

            var  currentLine        = new Array <Rectangle>();
            var  currentTextLine    = new Array <char?>();
            int  wordBeginning      = 0;
            int  currentLineWidth   = 0;
            int  completeWordsWidth = 0;
            int  wordWidth          = 0;
            var  newLine            = new Array <Rectangle>();
            var  newTextLine        = new Array <char?>();
            char c;

            if (_text == null)
            {
                _text = "";
            }

            String upperCaseText = _text.ToUpper();

            for (int i = 0; i < upperCaseText.Length; i++)
            {
                c = upperCaseText[i];

                // new line characters
                if (c == '\n' || c == '\r' || c == '|')
                {
                    lines.push(currentLine);
                    textLines.push(currentTextLine);
                    lineWidths.push(currentLineWidth);
                    currentLineWidth   = 0;
                    completeWordsWidth = 0;
                    wordBeginning      = 0;
                    wordWidth          = 0;
                    currentLine        = new Array <Rectangle>();
                    currentTextLine    = new Array <char?>();

                    _stringLines.Add("");
                    continue;
                }

                _stringLines[_stringLines.Count - 1] += c;

                // push a character into the array
                if (characters.ContainsKey(c))
                {
                    // check we're in the middle of a word - spaces are null
                    if (currentLine.length > 0 && currentLine[currentLine.length - 1] != null)
                    {
                        currentLineWidth += tracking;
                        wordWidth        += tracking;
                    }
                    wordWidth        += (int)characters[c].width;
                    currentLineWidth += (int)characters[c].width;
                    currentLine.push(characters[c]);
                    currentTextLine.push(c);

                    // the character is a SPACE or unrecognised and will be treated as a SPACE
                }
                else
                {
                    if (currentLine.length > 0 && currentLine[currentLine.length - 1] != null)
                    {
                        completeWordsWidth = currentLineWidth;
                    }
                    currentLineWidth += whitespaceLength;
                    currentLine.push(null);
                    currentTextLine.push(null);
                    wordBeginning = currentLine.length;
                    wordWidth     = 0;
                }

                // if the length of the current line exceeds the width, we splice it into the next line
                // effecting word wrap

                if (currentLineWidth > _width - (BORDER_ALLOWANCE * 2) && wordWrap)
                {
                    // in the case where the word is larger than the text field we take back the last character
                    // and jump to a new line with it
                    if (wordBeginning == 0 && currentLine[currentLine.length - 1] != null)
                    {
                        currentLineWidth -= tracking + (int)currentLine[currentLine.length - 1].width;
                        // now we take back the offending last character
                        var lastBitmapData = currentLine.pop();
                        var lastChar       = currentTextLine.pop();

                        lines.push(currentLine);
                        textLines.push(currentTextLine);
                        lineWidths.push(currentLineWidth);

                        currentLineWidth   = (int)lastBitmapData.width;
                        completeWordsWidth = 0;
                        wordBeginning      = 0;
                        wordWidth          = (int)lastBitmapData.width;
                        currentLine        = new Array <Rectangle>();
                        currentLine.push(lastBitmapData);
                        currentTextLine = new Array <char?>();
                        currentTextLine.push(lastChar);
                        continue;
                    }

                    newLine     = currentLine.splice(wordBeginning, (uint)(currentLine.length - wordBeginning));
                    newTextLine = currentTextLine.splice(wordBeginning, (uint)(currentTextLine.length - wordBeginning));
                    lines.push(currentLine);
                    textLines.push(currentTextLine);
                    lineWidths.push(completeWordsWidth);
                    completeWordsWidth = 0;
                    wordBeginning      = 0;
                    currentLine        = newLine;
                    currentTextLine    = newTextLine;
                    currentLineWidth   = wordWidth;
                }
            }
            // save the last line
            lines.push(currentLine);
            textLines.push(currentTextLine);
            lineWidths.push(currentLineWidth);
        }
Пример #13
0
        public RoomPalette(Level level)
        {
            uiManager = new UIManager();
            uiManager.selectSoundCallback = game.selectSound;

            // PALETTE
            paletteRight = UserData.settings.paletteLeft;
            back         = uiManager.addButton(0, Game.SCALE + ((int)(Game.HEIGHT * 0.5 - renderer.roomPaletteBlit.height * 0.5) >> 0), renderer.roomPaletteBlit, null, new Rectangle(0, 0, Game.SCALE * 4, Game.SCALE * 8));
            // properties
            propertyLegal = true;
            properties    = new Array <BlitButton>();
            int generator     = Room.GENERATOR | Room.TIMER_0;
            int allyCancel    = Room.INDESTRUCTIBLE | Room.ALLY | Room.ENEMY | Room.WALL | generator | Room.UP_DOWN_LEFT_RIGHT | Room.M_UP_DOWN_LEFT_RIGHT;
            int enemyCancel   = Room.INDESTRUCTIBLE | Room.ALLY | Room.SWAP | Room.ENEMY | Room.UP_DOWN_LEFT_RIGHT | Room.M_UP_DOWN_LEFT_RIGHT;
            int nonTrapCancel = Room.INDESTRUCTIBLE | Room.ALLY | Room.TURNER | Room.MOVER | Room.VIRUS;

            addPropertyButton(Game.SCALE * 0, Game.SCALE * 0, Room.INDESTRUCTIBLE | Room.WALL, -1, true);
            playerButton = addPropertyButton(Game.SCALE * 1, Game.SCALE * 0, Room.PLAYER | Room.ALLY, allyCancel | Room.BOMB, true);
            addPropertyButton(Game.SCALE * 2, Game.SCALE * 0, Room.ALLY | Room.SWAP, allyCancel, true);
            addPropertyButton(Game.SCALE * 3, Game.SCALE * 0, Room.WALL | Room.SWAP, allyCancel, true);
            addPropertyButton(Game.SCALE * 0, Game.SCALE * 1, Room.WALL, Room.ALLY | Room.SWAP | Room.WALL, true);
            addPropertyButton(Game.SCALE * 1, Game.SCALE * 1, Room.BOMB, Room.PLAYER | Room.INDESTRUCTIBLE | Room.BOMB, true);
            generatorButton = addPropertyButton(Game.SCALE * 2, Game.SCALE * 1, generator, Room.ALLY | Room.INDESTRUCTIBLE | generator | Room.SWAP, true);
            generatorButton.heldCallback = propertyHeldCallback;
            addPropertyButton(Game.SCALE * 3, Game.SCALE * 1, Room.ENEMY | Room.VIRUS, enemyCancel, true);
            turnerButton = addPropertyButton(Game.SCALE * 0, Game.SCALE * 2, Room.ENEMY | Room.TURNER | Room.UP, enemyCancel, true);
            turnerButton.heldCallback = propertyHeldCallback;
            addPropertyButton(Game.SCALE * 1, Game.SCALE * 2, Room.ENEMY | Room.MOVER | Room.M_LEFT | Room.M_RIGHT, enemyCancel, true);
            addPropertyButton(Game.SCALE * 2, Game.SCALE * 2, Room.ENEMY | Room.MOVER | Room.M_UP | Room.M_DOWN, enemyCancel, true);
            addPropertyButton(Game.SCALE * 3, Game.SCALE * 2, Room.ENEMY | Room.MOVER | Room.M_UP_DOWN_LEFT_RIGHT, enemyCancel, true);
            addPropertyButton(Game.SCALE * 0, Game.SCALE * 3, Room.ENEMY | Room.TRAP | Room.M_UP, nonTrapCancel | Room.M_UP, true);
            addPropertyButton(Game.SCALE * 1, Game.SCALE * 3, Room.ENEMY | Room.TRAP | Room.M_RIGHT, nonTrapCancel | Room.M_RIGHT, true);
            addPropertyButton(Game.SCALE * 2, Game.SCALE * 3, Room.ENEMY | Room.TRAP | Room.M_DOWN, nonTrapCancel | Room.M_DOWN, true);
            addPropertyButton(Game.SCALE * 3, Game.SCALE * 3, Room.ENEMY | Room.TRAP | Room.M_LEFT, nonTrapCancel | Room.M_LEFT, true);

            var buttonRect = new Rectangle(0, 0, renderer.propertyButtonBlit.width, renderer.propertyButtonBlit.height);
            var border     = 2;

            propertyButton = uiManager.addButton(2 * Game.SCALE + border, back.y + 4 * Game.SCALE + border, renderer.propertyButtonBlit, clearProperty, buttonRect);
            playButton     = uiManager.addButton(0 * Game.SCALE + border, back.y + 6 * Game.SCALE + border, renderer.playButtonBlit, playRoom, buttonRect);
            uiManager.addButton(2 * Game.SCALE + border, back.y + 6 * Game.SCALE + border, renderer.swapButtonBlit, togglePaletteSide, buttonRect);
            scrollButton        = uiManager.addButton(0 * Game.SCALE + border, back.y + 4 * Game.SCALE + border, renderer.scrollButtonBlit, toggleScroll, buttonRect);
            scrollButton.active = !renderer.camera.dragScroll;
            paletteButtons      = uiManager.buttons.slice();
            if (paletteRight)
            {
                togglePaletteSide(false);
            }

            optionsButton = uiManager.addButton(Game.WIDTH - renderer.settingsButtonBlit.width, 0, renderer.settingsButtonBlit, options);

            // OPTIONS
            uiManager.addGroup();
            uiManager.changeGroup(1);
            uiManager.addButton(Game.WIDTH - renderer.settingsButtonBlit.width, 0, renderer.settingsButtonBlit, cancel);
            var    buttonXs = UIManager.distributeRects(Game.WIDTH * 0.5, buttonRect.width, 4, 4);
            var    buttonYs = UIManager.distributeRects(Game.HEIGHT * 0.5, buttonRect.height, 4, 2);
            double buttonY;            // = Game.HEIGHT * 0.5 - Game.SCALE + border;

            buttonY = buttonYs[0];
            uiManager.addButton(buttonXs[0], buttonY, renderer.cancelButtonBlit, quit, buttonRect);
            uiManager.addButton(buttonXs[1], buttonY, renderer.loadButtonBlit, load, buttonRect);
            uiManager.addButton(buttonXs[2], buttonY, renderer.saveButtonBlit, save, buttonRect);
            checkButton        = uiManager.addButton(buttonXs[3], buttonY, renderer.checkButtonBlit, level.toggleCheckView, buttonRect);
            checkButton.active = level.checkView;

            // mobile buttons
            buttonY               = buttonYs[1];
            buttonXs              = UIManager.distributeRects(Game.WIDTH * 0.5, buttonRect.width, 4, 2);
            controlsButton        = uiManager.addButton(buttonXs[0], buttonY, renderer.controlsButtonBlit, level.toggleControls, buttonRect);
            controlsButton.active = level.tapControls;
            orientationButton     = uiManager.addButton(buttonXs[1], buttonY, renderer.orientationButtonBlit, game.toggleOrientation, buttonRect);
            // desktop buttons
            soundButton             = uiManager.addButton(buttonXs[0], buttonY, renderer.soundButtonBlit, level.toggleSound, buttonRect);
            soundButton.active      = level.soundButton.active;
            fullscreenButton        = uiManager.addButton(buttonXs[1], buttonY, renderer.fullscreenButtonBlit, level.toggleFullscreen, buttonRect);
            fullscreenButton.active = level.fullscreenButton.active;
            fullscreenButton.feedCallbackToEvent = true;
            if (!Game.MOBILE)
            {
                controlsButton.visible    = false;
                orientationButton.visible = false;
            }
            else
            {
                soundButton.visible      = false;
                fullscreenButton.visible = false;
            }
            uiManager.changeGroup(0);
        }
Пример #14
0
        /* ===============================================================================================================
         *
         *  INIT
         *
         * Initialisation is separated from the constructor to allow reference paths to be complete before all
         * of the graphics are generated - an object is null until its constructor has been exited
         *
         * ===============================================================================================================
         */
        public void init()
        {
            FX.renderer          = this;
            FoodClockFX.renderer = this;
            Level.renderer       = this;
            TitleMenu.renderer   = this;
            RoomPainter.renderer = this;
            RoomPalette.renderer = this;

            var gameSpriteSheetBitmap = GameSpriteSheet;
            var menuSpriteSheetBitmap = MenuSpriteSheet;

            //gameSpriteSheet = gameSpriteSheetBitmap.bitmapData;
            gameSpriteSheet       = new BitmapData(GameSpriteSheet, 0, 0);       //  menuSpriteSheetBitmap.bitmapData);
            menuSpriteSheet       = new BitmapData(MenuSpriteSheet, 0, 0);       //  menuSpriteSheetBitmap.bitmapData);
            backgroundSpriteSheet = new BitmapData(BackgroundSpriteSheet, 0, 0); //  menuSpriteSheetBitmap.bitmapData);

            sparkBlit              = new BlitRect(0, 0, 1, 1, 0xffffffff);
            debrisBlit             = new BlitRect(0, 0, 1, 1, 0xffffffff);
            wallDebrisBlit         = new BlitRect(0, 0, 1, 1, WALL_COL);
            wallBlit               = new BlitSprite(gameSpriteSheet, new Rectangle(24, 0, 8, 8));
            indestructibleWallBlit = new BlitSprite(gameSpriteSheet, new Rectangle(80, 0, 8, 8));
            enemyWallBlit          = new BlitSprite(gameSpriteSheet, new Rectangle(88, 0, 8, 8));
            trapBlit               = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 16, 8, 8),
                new Rectangle(8, 16, 8, 8),
                new Rectangle(16, 16, 8, 8),
                new Rectangle(24, 16, 8, 8),
                new Rectangle(32, 16, 8, 8),
                new Rectangle(40, 16, 8, 8),
                new Rectangle(48, 16, 8, 8),
                new Rectangle(56, 16, 8, 8),
                new Rectangle(64, 16, 8, 8),
                new Rectangle(72, 16, 8, 8),
                new Rectangle(80, 16, 8, 8),
                new Rectangle(88, 16, 8, 8),
                new Rectangle(96, 16, 8, 8),
                new Rectangle(104, 16, 8, 8),
                new Rectangle(0, 24, 8, 8)
            });
            generatorBlit        = new BlitSprite(gameSpriteSheet, new Rectangle(96, 0, 8, 8));
            generatorWarningBlit = new BlitRect(0, 0, 7, 7, 0xFFFFFFFF);
            playerBlit           = new BlitSprite(gameSpriteSheet, new Rectangle(16, 0, 8, 8));
            playerBuffer         = new BlitSprite(gameSpriteSheet, new Rectangle(96, 64, 8, 8));
            allyBlit             = new BlitSprite(gameSpriteSheet, new Rectangle(64, 0, 8, 8));
            moverBlit            = new BlitSprite(gameSpriteSheet, new Rectangle(48, 0, 8, 8));
            horizMoverBlit       = new BlitSprite(gameSpriteSheet, new Rectangle(40, 0, 8, 8));
            vertMoverBlit        = new BlitSprite(gameSpriteSheet, new Rectangle(32, 0, 8, 8));
            turnerBlit           = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(16, 8, 8, 8),
                new Rectangle(24, 8, 8, 8),
                new Rectangle(32, 8, 8, 8),
                new Rectangle(40, 8, 8, 8),
                new Rectangle(48, 8, 8, 8),
                new Rectangle(56, 8, 8, 8),
                new Rectangle(64, 8, 8, 8),
                new Rectangle(72, 8, 8, 8)
            });
            virusBlit        = new BlitSprite(gameSpriteSheet, new Rectangle(56, 0, 8, 8));
            errorBlit        = new BlitRect(3, 3, 3, 3, 0xFFFF0000);
            swapBlit         = new BlitSprite(gameSpriteSheet, new Rectangle(72, 0, 8, 8));
            numberBlit       = new NumberBlit(gameSpriteSheet, new Rectangle(112, 0, 8, 80), 2, 0.25, -1, -1, 6);
            notCompletedBlit = new BlitRect(-1, -1, 3, 3, UI_COL_BORDER);
            timerCountBlit   = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(112, 0, 8, 8),
                new Rectangle(112, 8, 8, 8),
                new Rectangle(112, 16, 8, 8),
                new Rectangle(112, 24, 8, 8)
            });
            checkMarkBlit = new BlitSprite(gameSpriteSheet, new Rectangle(56, 32, 8, 8));
            voidBlit      = new BlitRect(0, 0, (int)SCALE, (int)SCALE, 0xFF000000);
            doorBlit      = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(8, 24, 8, 8),
                new Rectangle(16, 24, 8, 8),
                new Rectangle(24, 24, 8, 8),
                new Rectangle(32, 24, 8, 8),
                new Rectangle(40, 24, 8, 8),
                new Rectangle(48, 24, 8, 8),
                new Rectangle(56, 24, 8, 8),
                new Rectangle(64, 24, 8, 8),
                new Rectangle(72, 24, 8, 8),
                new Rectangle(80, 24, 8, 8)
            });
            bombBlit      = new BlitSprite(gameSpriteSheet, new Rectangle(104, 0, 8, 8));
            explosionBlit = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(80, 8, 8, 8),
                new Rectangle(80, 8, 8, 8),
                new Rectangle(88, 8, 8, 8),
                new Rectangle(88, 8, 8, 8),
                new Rectangle(96, 8, 8, 8),
                new Rectangle(96, 8, 8, 8),
                new Rectangle(104, 8, 8, 8),
                new Rectangle(104, 8, 8, 8)
            });
            whiteBlit     = new BlitSprite(gameSpriteSheet, new Rectangle(88, 64, 8, 8));
            errorBlit     = new BlitRect(1, 1, 5, 5, 0xFFFF0000);
            incrementBlit = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(88, 24, 8, 8),
                new Rectangle(88, 24, 8, 8),
                new Rectangle(96, 24, 8, 8),
                new Rectangle(96, 24, 8, 8),
                new Rectangle(104, 24, 8, 8),
                new Rectangle(104, 24, 8, 8),
                new Rectangle(0, 32, 8, 8),
                new Rectangle(0, 32, 8, 8),
                new Rectangle(8, 32, 8, 8),
                new Rectangle(8, 32, 8, 8),
                new Rectangle(16, 32, 8, 8),
                new Rectangle(16, 32, 8, 8),
                new Rectangle(24, 32, 8, 8),
                new Rectangle(24, 32, 8, 8),
                new Rectangle(32, 32, 8, 8),
                new Rectangle(32, 32, 8, 8),
                new Rectangle(40, 32, 8, 8),
                new Rectangle(40, 32, 8, 8),
                new Rectangle(48, 32, 8, 8),
                new Rectangle(48, 32, 8, 8),
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null
            });
            endingDistBlit = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 56, 8, 8),
                new Rectangle(8, 56, 8, 8),
                new Rectangle(16, 56, 8, 8),
                new Rectangle(24, 56, 8, 8),
                new Rectangle(32, 56, 8, 8),
                new Rectangle(40, 56, 8, 8),
                new Rectangle(48, 56, 8, 8),
                new Rectangle(56, 56, 8, 8),
                new Rectangle(64, 56, 8, 8),
                new Rectangle(72, 56, 8, 8)
            });
            settingsButtonBlit = new BlitClip(gameSpriteSheet, new Array <Rectangle> {
                new Rectangle(64, 32, 8, 8),
                new Rectangle(72, 32, 8, 8)
            });
            turnsBlit            = new BlitSprite(menuSpriteSheet, new Rectangle(48, 60, 16, 10));
            propertySelectedBlit = new BlitSprite(menuSpriteSheet, new Rectangle(79, 88, 9, 9), -1, -1);
            roomPaletteBlit      = new BlitSprite(menuSpriteSheet, new Rectangle(44, 72, 35, 67), -1, -1);

            puzzleButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 72, 22, 22),
                new Rectangle(22, 72, 22, 22)
            });
            adventureButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 94, 22, 22),
                new Rectangle(22, 94, 22, 22)
            });
            editorButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 116, 22, 22),
                new Rectangle(22, 116, 22, 22)
            });
            checkButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(48, 12, 12, 12),
                new Rectangle(60, 12, 12, 12),
                new Rectangle(72, 12, 12, 12),
                new Rectangle(84, 12, 12, 12)
            });
            playButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(48, 48, 12, 12),
                new Rectangle(60, 48, 12, 12)
            });
            propertyButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(72, 48, 12, 12),
                new Rectangle(84, 48, 12, 12)
            });
            scrollButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(24, 60, 12, 12),
                new Rectangle(36, 60, 12, 12),
                new Rectangle(79, 106, 12, 12),
                new Rectangle(79, 118, 12, 12)
            });
            loadButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 36, 12, 12),
                new Rectangle(12, 36, 12, 12)
            });
            saveButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(72, 24, 12, 12),
                new Rectangle(84, 24, 12, 12)
            });
            cancelButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 0, 12, 12),
                new Rectangle(12, 0, 12, 12)
            });
            confirmButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(24, 0, 12, 12),
                new Rectangle(36, 0, 12, 12)
            });
            resetButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 12, 12, 12),
                new Rectangle(12, 12, 12, 12)
            });
            controlsButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 48, 12, 12),
                new Rectangle(12, 48, 12, 12),
                new Rectangle(24, 48, 12, 12),
                new Rectangle(36, 48, 12, 12)
            });
            orientationButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(24, 12, 12, 12),
                new Rectangle(36, 12, 12, 12)
            });
            soundButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(24, 36, 12, 12),
                new Rectangle(36, 36, 12, 12),
                new Rectangle(48, 36, 12, 12),
                new Rectangle(36, 36, 12, 12)
            });
            fullscreenButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(84, 36, 12, 12),
                new Rectangle(72, 36, 12, 12),
                new Rectangle(60, 36, 12, 12),
                new Rectangle(72, 36, 12, 12)
            });
            editButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 60, 12, 12),
                new Rectangle(12, 60, 12, 12)
            });
            numberButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(48, 60, 16, 10),
                new Rectangle(64, 60, 16, 10)
            });
            leftButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(48, 0, 12, 12),
                new Rectangle(60, 0, 12, 12)
            });
            rightButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(72, 0, 12, 12),
                new Rectangle(84, 0, 12, 12)
            });
            swapButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(48, 24, 12, 12),
                new Rectangle(60, 24, 12, 12)
            });
            insertBeforeButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(0, 24, 12, 12),
                new Rectangle(12, 24, 12, 12)
            });
            insertAfterButtonBlit = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(24, 24, 12, 12),
                new Rectangle(36, 24, 12, 12)
            });
            confirmPanelBlit      = new BlitSprite(menuSpriteSheet, new Rectangle(0, 157, 31, 19));
            levelMovePanelBlit    = new BlitSprite(menuSpriteSheet, new Rectangle(0, 139, 70, 18));
            levelPreviewPanelBlit = new BlitSprite(menuSpriteSheet, new Rectangle(79, 72, 16, 16));
            paintBlit             = new BlitClip(menuSpriteSheet, new Array <Rectangle> {
                new Rectangle(79, 97, 9, 9),
                new Rectangle(80, 60, 9, 9)
            }, -1, -1);
            lockedBlit = new BlitSprite(menuSpriteSheet, new Rectangle(89, 60, 7, 7));

            int fade_delay = 10;

            mapFadeBlits = new Array <FadingBlitRect> {
                new FadingBlitRect(0, 0, (int)(Level.MAP_WIDTH * SCALE), (int)((Level.ROOM_HEIGHT - 1) * SCALE), fade_delay),
                new FadingBlitRect((int)(Level.ROOM_WIDTH * SCALE), 0, (int)((Level.ROOM_WIDTH - 1) * SCALE), (int)(Level.MAP_HEIGHT * SCALE), fade_delay),
                new FadingBlitRect(0, (int)(Level.ROOM_HEIGHT * SCALE), (int)(Level.MAP_WIDTH * SCALE), (int)((Level.ROOM_HEIGHT - 1) * SCALE), fade_delay),
                new FadingBlitRect(0, 0, (int)((Level.ROOM_WIDTH - 1) * SCALE), (int)(Level.MAP_HEIGHT * SCALE), fade_delay),
            };
            darkBitmapData = new BitmapData((int)Game.WIDTH, (int)Game.HEIGHT, true, 0x88000000);

            glitchMap = new GlitchMap();

            slideFade = new BlitSprite(new BitmapData((int)Game.WIDTH, (int)Game.HEIGHT, true, 0x08000000), new Rectangle(0, 0, Game.WIDTH, Game.HEIGHT));

            TextBox.init(new Array <Rectangle> {
                new Rectangle(1, 40, 6, 7),     // a
                new Rectangle(9, 40, 6, 7),     // b
                new Rectangle(17, 40, 6, 7),    // c
                new Rectangle(25, 40, 6, 7),    // d
                new Rectangle(33, 40, 6, 7),    // e
                new Rectangle(41, 40, 6, 7),    // f
                new Rectangle(49, 40, 6, 7),    // g
                new Rectangle(57, 40, 6, 7),    // h
                new Rectangle(65, 40, 6, 7),    // i
                new Rectangle(73, 40, 6, 7),    // j
                new Rectangle(81, 40, 6, 7),    // k
                new Rectangle(89, 40, 6, 7),    // l
                new Rectangle(97, 40, 6, 7),    // m
                new Rectangle(105, 40, 6, 7),   // n
                new Rectangle(1, 48, 6, 7),     // o
                new Rectangle(9, 48, 6, 7),     // p
                new Rectangle(17, 48, 6, 7),    // q
                new Rectangle(25, 48, 6, 7),    // r
                new Rectangle(33, 48, 6, 7),    // s
                new Rectangle(41, 48, 6, 7),    // t
                new Rectangle(49, 48, 6, 7),    // u
                new Rectangle(57, 48, 6, 7),    // v
                new Rectangle(65, 48, 6, 7),    // w
                new Rectangle(73, 48, 6, 7),    // x
                new Rectangle(81, 48, 6, 7),    // y
                new Rectangle(89, 48, 6, 7),    // z
                new Rectangle(1, 56, 6, 7),     // 0
                new Rectangle(9, 56, 6, 7),     // 1
                new Rectangle(17, 56, 6, 7),    // 2
                new Rectangle(25, 56, 6, 7),    // 3
                new Rectangle(33, 56, 6, 7),    // 4
                new Rectangle(41, 56, 6, 7),    // 5
                new Rectangle(49, 56, 6, 7),    // 6
                new Rectangle(57, 56, 6, 7),    // 7
                new Rectangle(65, 56, 6, 7),    // 8
                new Rectangle(73, 56, 6, 7),    // 9
                new Rectangle(19, 64, 2, 4),    // '
                new Rectangle(33, 64, 6, 7),    // backslash
                new Rectangle(),                // :
                new Rectangle(3, 64, 2, 8),     // ,
                new Rectangle(73, 64, 6, 7),    // =
                new Rectangle(99, 56, 2, 7),    // !
                new Rectangle(81, 64, 6, 7),    // /
                new Rectangle(41, 64, 6, 7),    // -
                new Rectangle(58, 64, 3, 8),    // (
                new Rectangle(49, 64, 6, 7),    // +
                new Rectangle(89, 56, 6, 7),    // ?
                new Rectangle(66, 64, 3, 8),    // )
                new Rectangle(),                // ;
                new Rectangle(107, 56, 2, 7),   // .
                new Rectangle(8, 64, 8, 7),     // @
                new Rectangle(),                // _
                new Rectangle(81, 56, 6, 7),    // %
                new Rectangle(),                // *
                new Rectangle(26, 64, 4, 4)     // "
            }, gameSpriteSheet);

            fxFilterCallBack = (FX item, int index, Array <FX> list) => {
                item.main();
                return(item.active);
            };
        }
Пример #15
0
        internal void main(RenderTarget2D sceneRenderTarget)
        {
            // clear bitmapDatas - refresh can be set to false for glitchy trails
            //if(refresh) bitmapData.fillRect(bitmapData.rect, 0x0);
            //bitmapDataShadow.fillRect(bitmapDataShadow.rect, 0x0);
            //guiBitmapData.fillRect(guiBitmapData.rect, 0x0);

            XnaGame.Instance.FlashRenderer.RenderTarget = _defaultRenderTarget;
            XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);

            if (game.state == Game.MENU)
            {
                guiBitmapData.fillRect(guiBitmapData.rect, 0xFF1A1E26);
                game.titleMenu.render();
                canvasPoint.x -= 0.5;
            }
            else if (game.state == Game.GAME)
            {
                updateShaker();

                Level level;
                level = game.level;

                if (trackPlayer)
                {
                    camera.setTarget(
                        (level.data.player.x + 0.5) * SCALE,
                        (level.data.player.y + 0.5) * SCALE
                        );
                }
                else if (sliding)
                {
                    camera.targetPos.x += slideX;
                    camera.targetPos.y += slideY;
                    slideFade.render(bitmapData);
                }

                camera.main();

                updateCheckers();

                // black border around small levels
                if (canvasPoint.x > camera.mapRect.x)
                {
                    bitmapDataShadow.fillRect(new Rectangle(0, 0, canvasPoint.x, Game.HEIGHT), 0xFF000000);
                }
                if (canvasPoint.x + camera.mapRect.x + camera.mapRect.width < Game.WIDTH)
                {
                    bitmapDataShadow.fillRect(new Rectangle(canvasPoint.x + camera.mapRect.x + camera.mapRect.width, 0, Game.WIDTH - (canvasPoint.x + camera.mapRect.x + camera.mapRect.width), Game.HEIGHT), 0xFF000000);
                }
                if (canvasPoint.y > 0)
                {
                    bitmapDataShadow.fillRect(new Rectangle(0, 0, Game.WIDTH, canvasPoint.y), 0xFF000000);
                }
                if (canvasPoint.y + camera.mapRect.height < Game.HEIGHT)
                {
                    bitmapDataShadow.fillRect(new Rectangle(0, canvasPoint.y + camera.mapRect.height, Game.WIDTH, Game.HEIGHT - (canvasPoint.y + camera.mapRect.height)), 0xFF000000);
                }

                if (game.roomPainter.active)
                {
                    game.roomPainter.render();
                }
                level.render();
                if (game.roomPainter.active)
                {
                    game.roomPainter.palette.render();
                }

                if (fx.length > 0)
                {
                    fx = fx.filter(fxFilterCallBack);
                }

                glitchMap.apply(bitmapData, (int)canvasPoint.x, (int)canvasPoint.y);
                glitchMap.update();

                //CONVERSION - handled below
                //bitmapDataShadow.copyPixels(bitmapData, bitmapData.rect, new Point(1, 1), null, null, true);
                //bitmapDataShadow.colorTransform(bitmapDataShadow.rect, new ColorTransform(0, 0, 0));

                if (roomFx.length > 0)
                {
                    roomFx = roomFx.filter(fxFilterCallBack);
                }
            }

            // update shapes
            //CONVERION
            var blendState = BlendState.AlphaBlend;

            // Now draw the deferred scene object applying whatever effects are required to mimic the orignal game
            XnaGame.Instance.GraphicsDevice.SetRenderTarget(_shadowRenderTarget);
            if (refresh)
            {
                XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            }
            //XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            XnaGame.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred, blendState, SamplerState.PointClamp, null, null);
            XnaGame.Instance.FlashRenderer.Flush(XnaGame.Instance.SpriteBatch, _shadowRenderTarget);
            XnaGame.Instance.FlashRenderer.Draw(XnaGame.Instance.SpriteBatch, _gameRenderTarget, Vector2.One, Color.Black);
            XnaGame.Instance.SpriteBatch.End();

            XnaGame.Instance.GraphicsDevice.SetRenderTarget(_gameRenderTarget);
            if (refresh)
            {
                XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            }
            XnaGame.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred, blendState, SamplerState.PointClamp, null, null);
            XnaGame.Instance.FlashRenderer.Flush(XnaGame.Instance.SpriteBatch, _gameRenderTarget);
            XnaGame.Instance.SpriteBatch.End();

            XnaGame.Instance.GraphicsDevice.SetRenderTarget(_guiRenderTarget);
            XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            XnaGame.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred, blendState, SamplerState.PointClamp, null, null);
            XnaGame.Instance.FlashRenderer.Flush(XnaGame.Instance.SpriteBatch, _guiRenderTarget);
            XnaGame.Instance.SpriteBatch.End();

            XnaGame.Instance.GraphicsDevice.SetRenderTarget(_defaultRenderTarget);
            XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            XnaGame.Instance.SpriteBatch.Begin(SpriteSortMode.Deferred, blendState, SamplerState.PointClamp, null, null);
            XnaGame.Instance.FlashRenderer.Flush(XnaGame.Instance.SpriteBatch, null);
            XnaGame.Instance.SpriteBatch.End();

            //Draw final composite image - we'll draw to another render target first - the XNA wrapper will blit this final render target
            //to the screen later respecting title safe viewport.
            //Note - it could all be done here if you wanted but the game wrapper was already set up to do it.
            XnaGame.Instance.GraphicsDevice.SetRenderTarget(sceneRenderTarget);
            XnaGame.Instance.GraphicsDevice.Clear(Color.Transparent);
            XnaGame.Instance.SpriteBatch.Begin(SpriteSortMode.Immediate, blendState, SamplerState.PointClamp, null, null);
            //XnaGame.Instance.SpriteBatch.Draw(_backgroundRenderTarget, Vector2.Zero, null, Color.White,0, Vector2.Zero, XnaGame.Instance.Scale, SpriteEffects.None, 0);
            //XnaGame.Instance.SpriteBatch.Draw(_shadowRenderTarget, Vector2.Zero, null, Color.White,0, Vector2.Zero, XnaGame.Instance.Scale, SpriteEffects.None, 0);
            //XnaGame.Instance.SpriteBatch.Draw(_gameRenderTarget, Vector2.Zero, null, Color.White,0, Vector2.Zero, XnaGame.Instance.Scale, SpriteEffects.None, 0);
            //XnaGame.Instance.SpriteBatch.Draw(_guiRenderTarget, Vector2.Zero, null, Color.White,0, Vector2.Zero, XnaGame.Instance.Scale, SpriteEffects.None, 0);
            //XnaGame.Instance.SpriteBatch.Draw(_defaultRenderTarget, Vector2.Zero, null, Color.White,0, Vector2.Zero, XnaGame.Instance.Scale, SpriteEffects.None, 0);

            XnaGame.Instance.SpriteBatch.Draw(_backgroundRenderTarget, Vector2.Zero, Color.White);
            XnaGame.Instance.SpriteBatch.Draw(_shadowRenderTarget, Vector2.Zero, Color.White);
            XnaGame.Instance.SpriteBatch.Draw(_gameRenderTarget, Vector2.Zero, Color.White);
            XnaGame.Instance.SpriteBatch.Draw(_guiRenderTarget, Vector2.Zero, Color.White);
            XnaGame.Instance.SpriteBatch.Draw(_defaultRenderTarget, Vector2.Zero, Color.White);
            XnaGame.Instance.SpriteBatch.End();
        }
Пример #16
0
 public void changeGroup(int n)
 {
     currentGroup = n;
     buttons      = buttonGroups[currentGroup];
     mouseLock    = true;
 }