private ButtonControl joinButton, helpButton, quitButton; // the buttons public MainMenu(Game game, GameStateManager gameStateManager, GuiManager gui, InputManager input) : base(gameStateManager) { // load textures // this can probably go in OnEntered() bg = game.Content.Load<Texture2D>("textures/menu/greentank"); // stays in constructor this.gameStateManager = gameStateManager; this.game = game; this.gui = gui; this.input = input; // the following code can probably go in OnEntered() as well graphicsDevice = game.GraphicsDevice; spriteBatch = new SpriteBatch(graphicsDevice); Viewport viewport = game.GraphicsDevice.Viewport; mainMenuScreen = new Screen(viewport.Width, viewport.Height); gui.Screen = mainMenuScreen; mainMenuScreen.Desktop.Bounds = new UniRectangle(new UniScalar(0.0f, 0.0f), new UniScalar(0.0f, 0.0f), new UniScalar(1.0f, 0.0f), new UniScalar(1.0f, 0.0f)); InitializeComponents(); joinButton.Pressed += new EventHandler(joinButton_Pressed); helpButton.Pressed += new EventHandler(helpButton_Pressed); quitButton.Pressed += new EventHandler(quitButton_Pressed); }
public RoomState(IGameState previousState, IGameStateService gameStateService, IGuiService guiService, IInputService inputService, GraphicsDeviceManager graphics, ContentManager content) { this.gameStateService = gameStateService; this.guiService = guiService; this.inputService = inputService; this.graphics = graphics; this.content = content; this.previousState = previousState; this.mouseMove = new MouseMoveDelegate(mouseMoved); this.teamA = new List<Peer>(); this.teamB = new List<Peer>(); playerIDLabels = new List<LabelControl>(); panelVisibility = new List<bool>(); roomScreen = new Screen(1184, 682); Game1.main_console.StartEvent += Start; spriteBatch = new SpriteBatch(graphics.GraphicsDevice); LoadContent(roomScreen, content); }
public LobbyState(IGameStateService gameStateService, IGuiService guiService, IInputService inputService, GraphicsDeviceManager graphics, ContentManager content, String username) { allRoom = Game1.main_console.ListRooms(); this.gameStateService = gameStateService; this.guiService = guiService; this.inputService = inputService; this.graphics = graphics; this.content = content; this.username = username; this.page = 0; roomIDLabels = new List<LabelControl>(); roomCapLabels = new List<LabelControl>(); joinButtons = new List<ButtonControl>(); panelVisibility = new List<bool>(); joinEventHandlers = new List<EventHandler>(); this.mouseMove = new MouseMoveDelegate(mouseMoved); lobbyScreen = new Screen(1194, 692); /*mainMenuScreen.Desktop.Bounds = new UniRectangle( new UniScalar(0.1f, 0.0f), new UniScalar(0.1f, 0.0f), // x and y = 10% new UniScalar(0.8f, 0.0f), new UniScalar(0.8f, 0.0f) // width and height = 80% );*/ spriteBatch = new SpriteBatch(graphics.GraphicsDevice); LoadContent(lobbyScreen, content); }
protected override void InitializeCore() { this.gui.Initialize(); Viewport viewport = this.game.GraphicsDevice.Viewport; Screen mainScreen = new Screen(viewport.Width, viewport.Height); this.gui.Screen = mainScreen; mainScreen.Desktop.Bounds = new UniRectangle( new UniScalar(0.0f, 0.0f), new UniScalar(0.0f, 0.0f), // x and y new UniScalar(1.0f, 0.0f), new UniScalar(1.0f, 0.0f) // width and height ); }
private void createDesktopControls(Screen mainScreen) { startButton = new ButtonControl(); creditButton = new ButtonControl(); instructionButton = new ButtonControl(); exitButton = new ButtonControl(); startButton.Text = "New Game"; // configure the start button startButton.Bounds = new UniRectangle( new UniScalar(-0.1f, 0.0f), new UniScalar(0.0f, 445.0f), 100, 32 ); startButton.Pressed += new EventHandler( delegate(object sender, EventArgs arguments){ _cont.start(); gui.Visible = false; }); mainScreen.Desktop.Children.Add(startButton); creditButton.Text = "Credits"; // configure the credit button creditButton.Bounds = new UniRectangle( new UniScalar(0.1f, 0.0f), new UniScalar(0.0f, 445.0f), 100, 32 ); creditButton.Pressed += new EventHandler( delegate(object sender, EventArgs arguments){ _cont.credits(); }); mainScreen.Desktop.Children.Add(creditButton); instructionButton.Text = "Instructions"; // configure the instruction button instructionButton.Bounds = new UniRectangle( new UniScalar(0.3f, 0.0f), new UniScalar(0.0f, 445.0f), 100, 32 ); instructionButton.Pressed += new EventHandler( delegate(object sender, EventArgs arguments){ _cont.instructions(); }); mainScreen.Desktop.Children.Add(instructionButton); exitButton.Text = "Exit"; // configure the exit button exitButton.Bounds = new UniRectangle( new UniScalar(0.5f, 0.0f), new UniScalar(0.0f, 445.0f), 100, 32 ); exitButton.Pressed += new EventHandler( delegate(object sender, EventArgs arguments) { Exit(); }); mainScreen.Desktop.Children.Add(exitButton); }
public MainMenuState(IGameStateService gameStateService, IGuiService guiService, IInputService inputService, GraphicsDeviceManager graphics, ContentManager content) { this.gameStateService = gameStateService; this.guiService = guiService; this.inputService = inputService; this.graphics = graphics; this.content = content; this.mouseMove = new MouseMoveDelegate(mouseMoved); this.keyHit = new KeyDelegate(keyboardEntered); mainMenuScreen = new Screen(349, 133); /*mainMenuScreen.Desktop.Bounds = new UniRectangle( new UniScalar(0.1f, 0.0f), new UniScalar(0.1f, 0.0f), // x and y = 10% new UniScalar(0.8f, 0.0f), new UniScalar(0.8f, 0.0f) // width and height = 80% );*/ spriteBatch = new SpriteBatch(graphics.GraphicsDevice); LoadContent(mainMenuScreen, content); }
public JoinMenu(Game game, GameStateManager gameStateManager, GuiManager gui, InputManager input) : base(gameStateManager) { this.game = game; this.gameStateManager = gameStateManager; this.gameService = new GameServiceContainer(); this.gui = gui; this.input = input; spriteBatch = new SpriteBatch(game.GraphicsDevice); bg = game.Content.Load<Texture2D>("textures/menu/ScoutTank"); Viewport viewport = game.GraphicsDevice.Viewport; joinScreen = new Screen(viewport.Width, viewport.Height); gui.Screen = joinScreen; joinScreen.Desktop.Bounds = new UniRectangle(new UniScalar(0.0f, 0.0f), new UniScalar(0.0f, 0.0f), new UniScalar(1.0f, 0.0f), new UniScalar(1.0f, 0.0f)); InitializeComponents(); joinButton.Pressed += new EventHandler(joinButton_Pressed); backButton.Pressed += new EventHandler(backButton_Pressed); }
public CreateRoomState(IGameStateService gameStateService, IGuiService guiService, IInputService inputService, GraphicsDeviceManager graphics, ContentManager content) { this.gameStateService = gameStateService; this.guiService = guiService; this.inputService = inputService; this.graphics = graphics; this.content = content; this.previousState = gameStateService.ActiveState; this.mouseMove = new MouseMoveDelegate(mouseMoved); createRoomScreen = new Screen(458, 274); /*mainMenuScreen.Desktop.Bounds = new UniRectangle( new UniScalar(0.1f, 0.0f), new UniScalar(0.1f, 0.0f), // x and y = 10% new UniScalar(0.8f, 0.0f), new UniScalar(0.8f, 0.0f) // width and height = 80% );*/ spriteBatch = new SpriteBatch(graphics.GraphicsDevice); LoadContent(createRoomScreen, content); }
protected override void Initialize() { graphics.PreferredBackBufferWidth = WIDTH; graphics.PreferredBackBufferHeight = HEIGHT; graphics.ApplyChanges(); IsMouseVisible = true; defaultTexture = new Texture2D(graphics.GraphicsDevice, 1, 1); defaultTexture.SetData(new[] { Color.White }); // Create a new screen. Screens manage the state of a GUI and its rendering // surface. If you have a GUI in your game window, you'd first create a screen // for that. If you have an in-game computer display where you want to use // a GUI, you can create another screen for that and thus cleanly separate // the state of the in-game computer from your game's main menu GUI :) Viewport viewport = GraphicsDevice.Viewport; Screen mainScreen = new Screen(viewport.Width, viewport.Height); this.gui.Screen = mainScreen; // Each screen has a 'desktop' control. This invisible control by default // stretches across the whole screen (all controls are positioned using both // a percentual position/size and absolute position/size). We change this to // prevent GUI or HUD elements from appearing outside the title-safe area. mainScreen.Desktop.Bounds = new UniRectangle( new UniScalar(0.1f, 0.0f), new UniScalar(0.0f, 0.0f), // x and y new UniScalar(0.8f, 0.0f), new UniScalar(0.8f, 0.0f) // width and height ); // Now let's do something funky: add buttons directly to the desktop. // This will also show the effect of the title-safe area. createDesktopControls(mainScreen); base.Initialize(); }
private void LoadContent(Screen mainScreen, ContentManager content) { background = content.Load<Texture2D>("Images\\Room\\background2"); headerTeam = content.Load<SpriteFont>("Images\\Room\\headerTeam"); int width = 315; int height = 591; Color[] data = new Color[width * height]; for (int i = 0; i < width; ++i) { data[i] = Color.Black; } for (int i = width; i < (width * (height - 1)); ++i) { if (((i % width) == 0) || ((i % width) == (width - 1))) { data[i] = Color.Black; } else { data[i] = Color.White; } } for (int i = (width * (height - 1)); i < (width * height); ++i) { data[i] = Color.Black; } teamPanel = new Texture2D(graphics.GraphicsDevice, width, height); teamPanel.SetData(data); width = 308; height = 123; data = new Color[width * height]; for (int i = 0; i < width; ++i) { data[i] = Color.Black; } for (int i = width; i < (width * (height - 1)); ++i) { if (((i % width) == 0) || ((i % width) == (width - 1))) { data[i] = Color.Black; } else { data[i] = Color.Aquamarine; } } for (int i = (width * (height - 1)); i < (width * height); ++i) { data[i] = Color.Black; } playerPanel = new Texture2D(graphics.GraphicsDevice, width, height); playerPanel.SetData(data); int j = 0; for (int i = 0; i < 8; i += 2) { LabelControl playerIDLeftLabel = new LabelControl("0.0.0.0"); playerIDLeftLabel.Bounds = new UniRectangle(21, 72 + 129 * j, 115, 18); playerIDLeftLabel.Name = "Label Player ID " + (i + 1); LabelControl playerIDRightLabel = new LabelControl("0.0.0.1"); playerIDRightLabel.Bounds = new UniRectangle(451, 72 + 129 * j, 115, 18); playerIDRightLabel.Name = "Label Player ID " + (i + 2); playerIDLabels.Add(playerIDLeftLabel); panelVisibility.Add(false); playerIDLabels.Add(playerIDRightLabel); panelVisibility.Add(false); /*mainScreen.Desktop.Children.Add(playerIDLeftLabel); mainScreen.Desktop.Children.Add(playerIDRightLabel);*/ j++; } ButtonControl leftTeamButton = new ButtonControl(); leftTeamButton.Bounds = new UniRectangle(335, 13, 40, 40); leftTeamButton.Name = "Left Team Button"; leftTeamButton.imageTexture = content.Load<Texture2D>("Images\\Room\\LeftTeam"); leftTeamButton.Pressed += new EventHandler(leftTeamPressed); ButtonControl rightTeamButton = new ButtonControl(); rightTeamButton.Bounds = new UniRectangle(397, 13, 40, 40); rightTeamButton.Name = "Right Team Button"; rightTeamButton.imageTexture = content.Load<Texture2D>("Images\\Room\\RightTeam"); rightTeamButton.Pressed += new EventHandler(rightTeamPressed); ButtonControl chooseVehicleButton = new ButtonControl(); chooseVehicleButton.Bounds = new UniRectangle(14, 612, 150, 60); chooseVehicleButton.Name = "Choose Vehicle Button"; chooseVehicleButton.imageTexture = content.Load<Texture2D>("Images\\Room\\ChooseVehicle"); chooseVehicleButton.imageHover = content.Load<Texture2D>("Images\\Room\\ChooseVehicleHover"); chooseVehicleButton.Pressed += new EventHandler(chooseVehiclePressed); ButtonControl readyButton = new ButtonControl(); readyButton.Bounds = new UniRectangle(443, 612, 150, 60); readyButton.Name = "Ready Button"; readyButton.imageTexture = content.Load<Texture2D>("Images\\Room\\ReadyButton"); readyButton.imageHover = content.Load<Texture2D>("Images\\Room\\ReadyButtonHover"); readyButton.Pressed += new EventHandler(readyPressed); ButtonControl startGameButton = new ButtonControl(); startGameButton.Bounds = new UniRectangle(608, 612, 150, 60); startGameButton.Name = "Start Game Button"; startGameButton.imageTexture = content.Load<Texture2D>("Images\\Room\\PlayButton"); startGameButton.imageHover = content.Load<Texture2D>("Images\\Room\\PlayButtonHover"); startGameButton.Pressed += new EventHandler(startGamePressed); ButtonControl backButton = new ButtonControl(); backButton.Bounds = new UniRectangle(1022, 612, 150, 60); backButton.Name = "Back Button"; backButton.imageTexture = content.Load<Texture2D>("Images\\Room\\BackButton"); backButton.imageHover = content.Load<Texture2D>("Images\\Room\\BackButtonHover"); backButton.Pressed += new EventHandler(backPressed); mainScreen.Desktop.Children.Add(leftTeamButton); mainScreen.Desktop.Children.Add(rightTeamButton); mainScreen.Desktop.Children.Add(chooseVehicleButton); mainScreen.Desktop.Children.Add(readyButton); mainScreen.Desktop.Children.Add(startGameButton); mainScreen.Desktop.Children.Add(backButton); }
public GameStart(IGameStateService gameStateService, IGuiService guiService, IInputService inputService, GraphicsDeviceManager graphics, ContentManager content, List<Peer> teamA, List<Peer> teamB) { this.gameStateService = gameStateService; this.guiService = guiService; this.inputService = inputService; this.graphics = graphics; this.Content = content; this.previousState = gameStateService.ActiveState; this.numberOfPlayers = Game1.main_console.Room.Members.Count(); gameStartScreen = new Screen(680, 680); spriteBatch = new SpriteBatch(graphics.GraphicsDevice); Game1.main_console.GameEvent += ProcessMessages; this.teamA = teamA; this.teamB = teamB; idxA = 0; idxB = 0; LoadContent(); }
public void TestInjectCharacter() { Screen screen = new Screen(100.0f, 100.0f); Controls.Desktop.InputControl control = new Controls.Desktop.InputControl(); screen.Desktop.Children.Add(control); screen.InjectCharacter('a'); Assert.AreEqual(string.Empty, control.Text); screen.FocusedControl = control; screen.InjectCharacter('a'); Assert.AreEqual("a", control.Text); }
public void Initialize() { //load in skin //Nuclex.UserInterface.Visuals.Flat.FlatGuiVisualizer.FromResource( //retrieve viewport viewport = game.GraphicsDevice.Viewport; gameScreen = new Screen(viewport.Width, viewport.Height); menuScreen = new Screen(viewport.Width, viewport.Height); createScreen = new Screen(viewport.Width, viewport.Height); startScreen = new Screen(viewport.Width, viewport.Height); speciesDialog = new SpeciesDialog(); //set clear button listener speciesDialog.clearButton.Pressed += new EventHandler(clearButton_Pressed); //DEBUG DIALOG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //gameScreen.Desktop.Children.Add(speciesDialog); //DEBUG DIALOG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //GameUI gameUI = new GameUI(gameScreen, baseGame.spriteSheet); gui.Screen = startScreen; //listeners mouse.MouseMoved += new Nuclex.Input.Devices.MouseMoveDelegate(mouse_MouseMoved); //mouse.MouseButtonPressed += new Nuclex.Input.Devices.MouseButtonDelegate(mouse_MouseButtonReleased); mouse.MouseButtonReleased += new Nuclex.Input.Devices.MouseButtonDelegate(mouse_MouseButtonReleased); mouse.MouseWheelRotated += new Nuclex.Input.Devices.MouseWheelDelegate(mouse_MouseWheelRotated); keyboard.KeyReleased += new Nuclex.Input.Devices.KeyDelegate(keyboard_KeyReleased); keyboard.KeyPressed += new Nuclex.Input.Devices.KeyDelegate(keyboard_KeyPressed); }
public void TestKeyPressWithFocusedControl() { Screen screen = new Screen(100.0f, 100.0f); KeyboardTestControl child1 = new KeyboardTestControl(); KeyboardTestControl child2 = new KeyboardTestControl(); screen.Desktop.Children.Add(child1); screen.Desktop.Children.Add(child2); screen.FocusedControl = child2; screen.InjectKeyPress(Keys.A); Assert.AreEqual(0, child1.HeldKeyCount); Assert.AreEqual(1, child2.HeldKeyCount); screen.InjectKeyRelease(Keys.A); Assert.AreEqual(0, child1.HeldKeyCount); Assert.AreEqual(0, child2.HeldKeyCount); }
public void TestAcceptAndCancelFromKeyboard() { Screen screen = new Screen(100.0f, 100.0f); CommandTestControl test = new CommandTestControl(); screen.Desktop.Children.Add(test); screen.FocusedControl = test; screen.InjectKeyPress(Keys.Escape); Assert.AreEqual(Command.Cancel, test.LastCommand); screen.InjectKeyPress(Keys.Enter); Assert.AreEqual(Command.Accept, test.LastCommand); }
public void TestClassicFocusSwitching() { Screen screen = new Screen(100.0f, 100.0f); screen.InjectCommand(Command.SelectPrevious); screen.InjectCommand(Command.SelectNext); // TODO: Implement classic focus switching and do some real testing here }
public void TestFocusSwitchingWithDisconnectedControl() { Screen screen = new Screen(100.0f, 100.0f); screen.FocusedControl = new Controls.Control(); screen.InjectCommand(Command.Down); // No exception means success }
public void TestNoFocusChangeOnHandledDirectionalCommand() { Screen screen = new Screen(100.0f, 100.0f); IInputReceiver mockedReceiver = mockReceiver(screen); DelegatingControl one = new DelegatingControl(mockedReceiver); one.Bounds = new UniRectangle(40, 10, 20, 20); Controls.Desktop.ButtonControl two = new Controls.Desktop.ButtonControl(); two.Bounds = new UniRectangle(40, 40, 20, 20); screen.Desktop.Children.Add(one); screen.Desktop.Children.Add(two); Expect.Once.On(mockedReceiver).Method("InjectCommand").WithAnyArguments(); screen.FocusedControl = one; screen.InjectCommand(Command.Down); Assert.AreSame(one, screen.FocusedControl); this.mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestFocusSwitchingWithUnfocusableControl() { Screen screen = new Screen(100.0f, 100.0f); Controls.Desktop.ButtonControl one = new Controls.Desktop.ButtonControl(); one.Bounds = new UniRectangle(40, 10, 20, 20); Controls.Control two = new Controls.Control(); two.Bounds = new UniRectangle(40, 40, 20, 20); Controls.Desktop.ButtonControl three = new Controls.Desktop.ButtonControl(); three.Bounds = new UniRectangle(40, 70, 20, 20); screen.Desktop.Children.Add(one); screen.Desktop.Children.Add(two); screen.Desktop.Children.Add(three); screen.FocusedControl = one; screen.InjectKeyPress(Keys.Down); screen.InjectKeyRelease(Keys.Down); Assert.AreSame(three, screen.FocusedControl); }
public void TestFocusSwitching() { Screen screen = new Screen(100.0f, 100.0f); Controls.Desktop.ButtonControl center = new Controls.Desktop.ButtonControl(); center.Bounds = new UniRectangle(40, 40, 20, 20); Controls.Desktop.ButtonControl left = new Controls.Desktop.ButtonControl(); left.Bounds = new UniRectangle(10, 51, 20, 20); Controls.Desktop.ButtonControl right = new Controls.Desktop.ButtonControl(); right.Bounds = new UniRectangle(70, 29, 20, 20); Controls.Desktop.ButtonControl up = new Controls.Desktop.ButtonControl(); up.Bounds = new UniRectangle(29, 10, 20, 20); Controls.Desktop.ButtonControl down = new Controls.Desktop.ButtonControl(); down.Bounds = new UniRectangle(51, 70, 20, 20); screen.Desktop.Children.Add(center); screen.Desktop.Children.Add(left); screen.Desktop.Children.Add(right); screen.Desktop.Children.Add(up); screen.Desktop.Children.Add(down); screen.FocusedControl = center; screen.InjectKeyPress(Keys.Down); Assert.AreSame(down, screen.FocusedControl); screen.FocusedControl = center; screen.InjectKeyPress(Keys.Up); Assert.AreSame(up, screen.FocusedControl); screen.FocusedControl = center; screen.InjectKeyPress(Keys.Left); Assert.AreSame(left, screen.FocusedControl); screen.FocusedControl = center; screen.InjectKeyPress(Keys.Right); Assert.AreSame(right, screen.FocusedControl); }
public void TestMousePressWithActivatedControl() { Screen screen = new Screen(100.0f, 100.0f); MouseTestControl child = new MouseTestControl(); child.Bounds = new UniRectangle(55.0f, 10.0f, 35.0f, 80.0f); screen.Desktop.Children.Add(child); screen.InjectKeyPress(Keys.A); screen.InjectMousePress(MouseButtons.Left); Assert.AreEqual(MouseButtons.Left, child.HeldMouseButtons); }
private void LoadContent(Screen mainScreen, ContentManager content) { background = content.Load<Texture2D>("Images\\CreateRoom\\background2"); header = content.Load<SpriteFont>("Images\\CreateRoom\\header"); LabelControl roomNameLabel = new LabelControl("Room Name"); roomNameLabel.Bounds = new UniRectangle(44, 91, 98, 20); roomNameLabel.Name = "Label Room Name"; roomNameInput = new InputControl(); roomNameInput.Bounds = new UniRectangle(217, 88, 213, 26); roomNameInput.Name = "Input Room Name"; LabelControl maxPlayerLabel = new LabelControl("Maimum Player"); maxPlayerLabel.Bounds = new UniRectangle(44, 155, 123, 20); maxPlayerLabel.Name = "Label Maximum Player"; twoChoice = new ChoiceControl(); twoChoice.Name = "Choice Two Player"; twoChoice.Text = "2"; twoChoice.Bounds = new UniRectangle(217, 155, 35, 20); twoChoice.Selected = true; fourChoice = new ChoiceControl(); fourChoice.Name = "Choice Four Player"; fourChoice.Text = "4"; fourChoice.Bounds = new UniRectangle(258, 155, 35, 20); sixChoice = new ChoiceControl(); sixChoice.Name = "Choice Six Player"; sixChoice.Text = "6"; sixChoice.Bounds = new UniRectangle(299, 155, 35, 20); eightChoice = new ChoiceControl(); eightChoice.Name = "Choice Eight Player"; eightChoice.Text = "8"; eightChoice.Bounds = new UniRectangle(340, 155, 35, 20); ButtonControl createRoomButton = new ButtonControl(); createRoomButton.Bounds = new UniRectangle(48, 208, 104, 46); createRoomButton.Name = "Create Room Button"; createRoomButton.Pressed += new EventHandler(createRoomPressed); createRoomButton.Text = "Create"; ButtonControl cancelButton = new ButtonControl(); cancelButton.Bounds = new UniRectangle(326, 208, 104, 46); cancelButton.Name = "Cancel Button"; cancelButton.Pressed += new EventHandler(cancelPressed); cancelButton.Text = "Cancel"; mainScreen.Desktop.Children.Add(roomNameLabel); mainScreen.Desktop.Children.Add(roomNameInput); mainScreen.Desktop.Children.Add(maxPlayerLabel); mainScreen.Desktop.Children.Add(twoChoice); mainScreen.Desktop.Children.Add(fourChoice); mainScreen.Desktop.Children.Add(sixChoice); mainScreen.Desktop.Children.Add(eightChoice); mainScreen.Desktop.Children.Add(createRoomButton); mainScreen.Desktop.Children.Add(cancelButton); }
/// <summary>Mocks a receiver for the input processing of a control</summary> /// <param name="screen">Screen to mock an input receiver on</param> /// <returns>The mocked input receiver</returns> private IInputReceiver mockReceiver(Screen screen) { IInputReceiver mockedReceiver = this.mockery.NewMock<IInputReceiver>(); DelegatingControl delegatingControl = new DelegatingControl(mockedReceiver); screen.Desktop.Children.Add(delegatingControl); screen.FocusedControl = delegatingControl; return mockedReceiver; }
private void LoadContent(Screen mainScreen, ContentManager content) { background = content.Load<Texture2D>("Images\\Lobby\\background1"); backgroundMusic = content.Load<Song>("Music\\03 Gunbound- Now Loading"); avatar = content.Load<Texture2D>("Images\\Lobby\\Gunbound_dragon"); int width = 869; int height = 519; Color[] data = new Color[width * height]; for (int i = 0; i < width; ++i) { data[i] = Color.Black; } for (int i = width; i < (width * (height - 1)); ++i) { if (((i % width) == 0) || ((i % width) == (width - 1))) { data[i] = Color.Black; } else { data[i] = Color.White; } } for (int i = (width * (height-1)); i < (width * height); ++i) { data[i] = Color.Black; } mainPanel = new Texture2D(graphics.GraphicsDevice, width, height); mainPanel.SetData(data); width = 282; height = 519; data = new Color[width * height]; for (int i = 0; i < width; ++i) { data[i] = Color.Black; } for (int i = width; i < (width * (height - 1)); ++i) { if (((i % width) == 0) || ((i % width) == (width - 1))) { data[i] = Color.Black; } else { data[i] = Color.White; } } for (int i = (width * (height - 1)); i < (width * height); ++i) { data[i] = Color.Black; } userPanel = new Texture2D(graphics.GraphicsDevice, width, height); userPanel.SetData(data); roomPanel = content.Load<Texture2D>("Images\\Lobby\\roombox"); width = roomPanel.Width; height = roomPanel.Height; data = new Color[width * height]; roomPanel.GetData(data); for (int i = 0; i < width; ++i) { data[i] = Color.Black; } for (int i = width; i < (width * (height - 1)); i += width) { data[i] = Color.Black; data[i + (width - 1)] = Color.Gray; } for (int i = (width * (height - 1)); i < (width * height); ++i) { data[i] = Color.Gray; } roomPanel.SetData(data); Texture2D buttonBackGround = content.Load<Texture2D>("Images\\Lobby\\buttes2"); int j = 0; for (int i = 0; i < 10; i+=2) { LabelControl roomIDLeftLabel = new LabelControl("Test dulu"); roomIDLeftLabel.Bounds = new UniRectangle(25, 32 + 102 * j, 55, 16); roomIDLeftLabel.Name = "Label Room ID " + (i + 1); LabelControl roomCapLeftLabel = new LabelControl("Sekian / sekian"); roomCapLeftLabel.Bounds = new UniRectangle(25, 50 + 102 * j, 55, 16); roomCapLeftLabel.Name = "Label Room Cap " + (i + 1); ButtonControl joinLeftButton = new ButtonControl(); joinLeftButton.Text = "JOIN"; joinLeftButton.Bounds = new UniRectangle(334, 67 + 102 * j, 101, 28); joinLeftButton.Name = "Join Button " + (i + 1); joinLeftButton.imageTexture = buttonBackGround; LabelControl roomIDRightLabel = new LabelControl("Test dulu"); roomIDRightLabel.Bounds = new UniRectangle(451, 32 + 102 * j, 55, 16); roomIDRightLabel.Name = "Label Room ID " + (i + 2); LabelControl roomCapRightLabel = new LabelControl("Sekian / sekian"); roomCapRightLabel.Bounds = new UniRectangle(451, 50 + 102 * j, 55, 16); roomCapRightLabel.Name = "Label Room Cap " + (i + 2); ButtonControl joinRightButton = new ButtonControl(); joinRightButton.Text = "JOIN"; joinRightButton.Bounds = new UniRectangle(760, 67 + 102 * j, 101, 28); joinRightButton.Name = "Join Button " + (i + 2); joinRightButton.imageTexture = buttonBackGround; roomIDLabels.Add(roomIDLeftLabel); roomCapLabels.Add(roomCapLeftLabel); joinButtons.Add(joinLeftButton); panelVisibility.Add(false); joinEventHandlers.Add(new EventHandler(joinRoomPressed)); roomIDLabels.Add(roomIDRightLabel); roomCapLabels.Add(roomCapRightLabel); joinButtons.Add(joinRightButton); panelVisibility.Add(false); joinEventHandlers.Add(new EventHandler(joinRoomPressed)); /*mainScreen.Desktop.Children.Add(roomIDLeftLabel); mainScreen.Desktop.Children.Add(roomCapLeftLabel); mainScreen.Desktop.Children.Add(joinLeftButton); mainScreen.Desktop.Children.Add(roomIDRightLabel); mainScreen.Desktop.Children.Add(roomCapRightLabel); mainScreen.Desktop.Children.Add(joinRightButton);*/ j++; } LabelControl usernameLabel = new LabelControl(username); usernameLabel.Bounds = new UniRectangle(938, 20, 157, 32); usernameLabel.Name = "Label Username"; ButtonControl createRoomButton = new ButtonControl(); createRoomButton.Bounds = new UniRectangle(15, 537, 151, 151); createRoomButton.Name = "Create Room Button"; createRoomButton.imageTexture = content.Load<Texture2D>("Images\\Lobby\\CreateRoom"); createRoomButton.imageHover = content.Load<Texture2D>("Images\\Lobby\\CreateRoomHover"); createRoomButton.Pressed += new EventHandler(createRoomPressed); ButtonControl refreshButton = new ButtonControl(); refreshButton.Bounds = new UniRectangle(200, 537, 151, 151); refreshButton.Name = "Refresh Button"; refreshButton.imageTexture = content.Load<Texture2D>("Images\\Lobby\\Refresh"); refreshButton.imageHover = content.Load<Texture2D>("Images\\Lobby\\RefreshHover"); refreshButton.Pressed += new EventHandler(refreshPressed); ButtonControl leftPageButton = new ButtonControl(); leftPageButton.Bounds = new UniRectangle(622, 537, 151, 151); leftPageButton.Name = "Left Page Button"; leftPageButton.imageTexture = content.Load<Texture2D>("Images\\Lobby\\LeftPage"); leftPageButton.imageHover = content.Load<Texture2D>("Images\\Lobby\\LeftPageHover"); leftPageButton.Pressed += new EventHandler(leftPagePressed); ButtonControl rightPageButton = new ButtonControl(); rightPageButton.Bounds = new UniRectangle(781, 537, 151, 151); rightPageButton.Name = "Right Page Button"; rightPageButton.imageTexture = content.Load<Texture2D>("Images\\Lobby\\RightPage"); rightPageButton.imageHover = content.Load<Texture2D>("Images\\Lobby\\RightPageHover"); rightPageButton.Pressed += new EventHandler(rightPagePressed); ButtonControl exitGameButton = new ButtonControl(); exitGameButton.Bounds = new UniRectangle(1026, 537, 151, 151); exitGameButton.Name = "Exit Button"; exitGameButton.imageTexture = content.Load<Texture2D>("Images\\Lobby\\Exit"); exitGameButton.imageHover = content.Load<Texture2D>("Images\\Lobby\\ExitHover"); exitGameButton.Pressed += new EventHandler(exitPressed); mainScreen.Desktop.Children.Add(usernameLabel); mainScreen.Desktop.Children.Add(createRoomButton); mainScreen.Desktop.Children.Add(refreshButton); mainScreen.Desktop.Children.Add(leftPageButton); mainScreen.Desktop.Children.Add(rightPageButton); mainScreen.Desktop.Children.Add(exitGameButton); }
public void TestKeyPressWithActivatedControl() { Screen screen = new Screen(100.0f, 100.0f); KeyboardTestControl child1 = new KeyboardTestControl(); KeyboardTestControl child2 = new KeyboardTestControl(); child2.Bounds = new UniRectangle(10.0f, 10.0f, 80.0f, 80.0f); screen.Desktop.Children.Add(child1); screen.Desktop.Children.Add(child2); // Click on child 2 screen.InjectMouseMove(50.0f, 50.0f); screen.InjectMousePress(MouseButtons.Left); // Now child 2 should be receiving the input instead of child 1 screen.InjectKeyPress(Keys.A); Assert.AreEqual(0, child1.HeldKeyCount); Assert.AreEqual(1, child2.HeldKeyCount); screen.InjectKeyRelease(Keys.A); Assert.AreEqual(0, child1.HeldKeyCount); Assert.AreEqual(0, child2.HeldKeyCount); }
public ChimeraGame(string firstLevel) { mFirstLevelName = firstLevel; this.Window.AllowUserResizing = true; this.Window.ClientSizeChanged += ResizedWindow; Game = this; Graphics = new GraphicsDeviceManager(this); Graphics.PreferredBackBufferWidth = 1280; Graphics.PreferredBackBufferHeight = 720; Graphics.PreferMultiSampling = true; //Graphics.ToggleFullScreen(); Content.RootDirectory = "Content"; forward = new KeyInputAction(PlayerIndex.One, InputAction.ButtonAction.Down, Microsoft.Xna.Framework.Input.Keys.W); celShading = new KeyInputAction(PlayerIndex.One, InputAction.ButtonAction.Pressed, Microsoft.Xna.Framework.Input.Keys.F2); // DEBUG mDebugScreen = new Nuclex.UserInterface.Screen(Graphics.PreferredBackBufferWidth, Graphics.PreferredBackBufferHeight); mDebugGUI = new GuiManager(Services); mDebugGUI.Screen = mDebugScreen; DebugConsole debugConsole = new DebugConsole(); mDebugScreen.Desktop.Children.Add(debugConsole); mDebugInput = new InputManager(Services, Window.Handle); Components.Add(mDebugInput); Components.Add(mDebugGUI); mDebugGUI.DrawOrder = 1000; mDebugScreen.FocusedControl = DebugConsole.ConsoleInput; DebugConsole.AddCommand("exit", new DebugConsole.ConsoleCommand(ExitConsoleCommand)); DebugConsole.AddCommand("enableAllParts", new DebugConsole.ConsoleCommand(EnableParts)); DebugConsole.AddCommand("partMenu", new DebugConsole.ConsoleCommand(PartMenuCommand)); DebugConsole.AddCommand("resizeShadowCascade", new DebugConsole.ConsoleCommand(ResizeShadowCascadesCommand)); DebugConsole.AddCommand("collisions", new DebugConsole.ConsoleCommand(CollisionMeshCommand)); DebugConsole.AddCommand("debug", new DebugConsole.ConsoleCommand(DebugConsoleCommand)); DebugConsole.AddCommand("visualizeCascades", new DebugConsole.ConsoleCommand(VisualizeCascadesCommand)); DebugConsole.AddCommand("celShading", new DebugConsole.ConsoleCommand(CelShadingCommand)); DebugConsole.AddCommand("outlining", new DebugConsole.ConsoleCommand(OutliningCommand)); DebugConsole.AddCommand("drawBoundingBoxes", new DebugConsole.ConsoleCommand(BoundingBoxCommand)); DebugConsole.AddCommand("BirdsEyeView", new DebugConsole.ConsoleCommand(BirdsEyeViewCommand)); DebugConsole.AddCommand("BEV", new DebugConsole.ConsoleCommand(BirdsEyeViewCommand)); DebugConsole.AddCommand("level", new DebugConsole.ConsoleCommand(LoadLevel)); DebugConsole.AddCommand("toggleShadows", new DebugConsole.ConsoleCommand(ToggleShadows)); DebugConsole.AddCommand("wireframe", new DebugConsole.ConsoleCommand(WireframeCommand)); DebugConsole.Hide(); // END CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, CollisionRules.DefaultDynamicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, CollisionRules.DefaultKinematicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, Projectile.ProjectileGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, Sensor.SensorGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, TerrainPhysics.TerrainPhysicsGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Sensor.SensorGroup, InvisibleWall.InvisibleWallGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, CollisionRules.DefaultDynamicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, CollisionRules.DefaultKinematicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, Projectile.ProjectileGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, Sensor.SensorGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, Projectile.SensorProjectileGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Projectile.SensorProjectileGroup, InvisibleWall.InvisibleWallGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, CollisionRules.DefaultDynamicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, CollisionRules.DefaultKinematicCollisionGroup), CollisionRule.NoSolver); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, Projectile.ProjectileGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, Wormhole.WormholeGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, TerrainPhysics.TerrainPhysicsGroup), CollisionRule.NoBroadPhase); CollisionRules.CollisionGroupRules.Add(new CollisionGroupPair(Wormhole.WormholeGroup, InvisibleWall.InvisibleWallGroup), CollisionRule.NoBroadPhase); }
public void TestMouseWheel() { Screen screen = new Screen(); MouseTestControl control = new MouseTestControl(); control.Bounds = new UniRectangle(10.0f, 10.0f, 80.0f, 80.0f); screen.Desktop.Children.Add(control); screen.InjectMouseMove(50.0f, 50.0f); screen.InjectMouseWheel(12.34f); Assert.AreEqual(12.34f, control.MouseWheelTicks); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { viewport = GraphicsDevice.Viewport; Screen defaultScreen = new Screen(viewport.Width, viewport.Height); gui.Screen = defaultScreen; gameStateManager = new GameStateManager(new GameServiceContainer()); gameStateManager.Push(new MainMenu(this, gameStateManager, gui, Input)); base.Initialize(); }
public void TestFocusChangeEvent() { Screen screen = new Screen(100.0f, 100.0f); IFocusChangeSubscriber mockedSubscriber = mockSubscriber(screen); Controls.Control child1 = new Controls.Control(); Controls.Control child2 = new Controls.Control(); screen.Desktop.Children.Add(child1); screen.Desktop.Children.Add(child2); Expect.Once.On(mockedSubscriber).Method("FocusChanged").WithAnyArguments(); screen.FocusedControl = child1; Expect.Once.On(mockedSubscriber).Method("FocusChanged").WithAnyArguments(); screen.FocusedControl = child2; this.mockery.VerifyAllExpectationsHaveBeenMet(); }
/// <summary>Mocks a subscriber to the screen's events</summary> /// <param name="screen">Screen to mock an event subcriber to</param> /// <returns>The mocked event subscriber</returns> private IFocusChangeSubscriber mockSubscriber(Screen screen) { IFocusChangeSubscriber mockedSubscriber = this.mockery.NewMock<IFocusChangeSubscriber>(); screen.FocusChanged += new EventHandler<Controls.ControlEventArgs>( mockedSubscriber.FocusChanged ); return mockedSubscriber; }
public void TestMouseWheelWithActivatedControl() { Screen screen = new Screen(100.0f, 100.0f); MouseTestControl control = new MouseTestControl(); control.Bounds = new UniRectangle(10.0f, 10.0f, 80.0f, 80.0f); screen.Desktop.Children.Add(control); screen.InjectKeyPress(Keys.A); screen.InjectMouseWheel(12.34f); Assert.AreEqual(12.34f, control.MouseWheelTicks); }