public MenuWorld(ISkin skin, IWorldFactory worldFactory, IAssetManagerProvider assetManagerProvider, I2DRenderUtilities twodRenderUtilities) { this.m_2DRenderUtilities = twodRenderUtilities; this.m_LogoTexture = assetManagerProvider.GetAssetManager().Get<TextureAsset>("texture.Logo"); this.m_WorldFactory = worldFactory; this.Entities = new List<IEntity>(); var startServer = new Button(); startServer.Text = "Start Server"; startServer.Click += (sender, e) => { this.m_LastGameContext.SwitchWorld<IWorldFactory>( x => x.CreateLobbyWorld(false, IPAddress.Any)); }; var ipAddressTextBox = new TextBox(); var joinGame = new Button(); joinGame.Text = "Join Game"; joinGame.Click += (sender, e) => { this.m_LastGameContext.SwitchWorld<IWorldFactory>( x => x.CreateLobbyWorld(true, IPAddress.Parse(ipAddressTextBox.Text))); }; var exitGame = new Button(); exitGame.Text = "Exit Game"; exitGame.Click += (sender, e) => { this.m_LastGameContext.Game.Exit(); }; var vertical = new VerticalContainer(); vertical.AddChild(new EmptyContainer(), "*"); vertical.AddChild(new Label { Text = "Perspective" }, "25"); vertical.AddChild(new EmptyContainer(), "*"); vertical.AddChild(startServer, "25"); vertical.AddChild(new EmptyContainer(), "*"); vertical.AddChild(new Label { Text = "Server IP address:" }, "20"); vertical.AddChild(ipAddressTextBox, "20"); vertical.AddChild(joinGame, "25"); vertical.AddChild(new EmptyContainer(), "*"); vertical.AddChild(exitGame, "25"); vertical.AddChild(new EmptyContainer(), "*"); var horizontal = new HorizontalContainer(); horizontal.AddChild(new EmptyContainer(), "*"); horizontal.AddChild(vertical, "250"); horizontal.AddChild(new EmptyContainer(), "*"); var canvas = new Canvas(); canvas.SetChild(horizontal); this.Entities.Add(new CanvasEntity(skin, canvas)); }
public BoardRendererEntity( BoardAnalyzerEntity analyzerEntity, WebcamEntity webcamEntity, IGraphicsBlit graphicsBlit, IAssetManager assetManager, TextBox alphaTextBox) { _analyzerEntity = analyzerEntity; _webcamEntity = webcamEntity; _graphicsBlit = graphicsBlit; _alphaTextBox = alphaTextBox; _warpFromPolygonEffect = assetManager.Get<EffectAsset>("effect.WarpFromPolygon"); }
public WebcamEntity(ISensorEngine sensorEngine, ICameraSensor cameraSensor, TextBox deviceName) { _cameraSensor = cameraSensor; _deviceName = deviceName; _cameras = _cameraSensor.GetAvailableCameras(); _activeCameraIndex = 0; _cameraSensor.ActiveCamera = _cameras[_activeCameraIndex]; // Because sensors may engage hardware, you need to explicitly register // them with the sensor engine. sensorEngine.Register(_cameraSensor); }
public BoardAnalyzerEntity( DetectorEntity detectorEntity, TextBox pointThresholdTextBox, TextBox minNumberOfPointsTextBox, TextBox maxNumberOfPointsTextBox, I2DRenderUtilities renderUtilities, IAssetManager assetManager) { _detectorEntity = detectorEntity; _pointThresholdTextBox = pointThresholdTextBox; _minNumberOfPointsTextBox = minNumberOfPointsTextBox; _maxNumberOfPointsTextBox = maxNumberOfPointsTextBox; _renderUtilities = renderUtilities; _pointThresholdTextBox.Text = _pointThreshold.ToString(); _minNumberOfPointsTextBox.Text = _minNumberOfPoints.ToString(); _maxNumberOfPointsTextBox.Text = _maxNumberOfPoints.ToString(); _defaultFont = assetManager.Get<FontAsset>("font.Default"); _thread = new Thread(Run); _thread.IsBackground = true; _thread.Start(); }
/// <summary> /// The draw text box. /// </summary> /// <param name="context"> /// The context. /// </param> /// <param name="layout"> /// The layout. /// </param> /// <param name="textBox"> /// The text box. /// </param> public void DrawTextBox(IRenderContext context, Rectangle layout, TextBox textBox) { this.DrawSunken(context, layout); var textToRender = textBox.Text; if (textBox.Focused && (textBox.UpdateCounter / 15) % 2 == 0) { textToRender += "_"; } if (string.IsNullOrEmpty(textBox.Text) && !textBox.Focused) { this.m_RenderUtilities.RenderText( context, new Vector2(layout.X + 4, layout.Center.Y), textBox.Hint, this.m_AssetManager.Get<FontAsset>("font.Default"), textColor: Color.DimGray, verticalAlignment: VerticalAlignment.Center); } else { this.m_RenderUtilities.RenderText( context, new Vector2(layout.X + 4, layout.Center.Y), textToRender, this.m_AssetManager.Get<FontAsset>("font.Default"), verticalAlignment: VerticalAlignment.Center); } }
public void DrawTextBox(IRenderContext context, Rectangle layout, TextBox textBox) { this.m_BasicSkin.DrawTextBox(context, layout, textBox); }
public AugmentedBoardGameWorld( I2DRenderUtilities twoDRenderUtilities, IAssetManagerProvider assetManagerProvider, IEntityFactory entityFactory) { this.Entities = new List<IEntity>(); _renderUtilities = twoDRenderUtilities; _assetManager = assetManagerProvider.GetAssetManager(); _defaultFont = this._assetManager.Get<FontAsset>("font.Default"); var canvasEntity = entityFactory.CreateCanvasEntity(); var pointThresholdTextBox = new TextBox(); var minPoints = new TextBox(); var maxPoints = new TextBox(); var alpha = new TextBox(); var deviceWidth = new TextBox(); var deviceHeight = new TextBox(); var nextColor = new Button() {Text = "Show Next Color "}; var showDiagnostics = new Button() { Text = "Show Diagnostics" }; var showBoard = new Button() { Text = "Show Board" }; var nextDevice = new Button() { Text = "Next Device" }; var deviceName = new TextBox(); _fullscreen = new Button() { Text = "Fullscreen 1080" }; var camera640x480 = new Button() { Text = "Camera 640x480" }; camera640x480.Click += (sender, args) => { deviceWidth.Text = "640"; deviceHeight.Text = "480"; }; var camera720p = new Button() { Text = "Camera 720p" }; camera720p.Click += (sender, args) => { deviceWidth.Text = "1080"; deviceHeight.Text = "720"; }; var camera1080p = new Button() { Text = "Camera 1080p" }; camera1080p.Click += (sender, args) => { deviceWidth.Text = "1920"; deviceHeight.Text = "1080"; }; var pointThresholdEntry = new HorizontalContainer(); pointThresholdEntry.AddChild(new Label() { Text = "Point Threshold: "}, "100"); pointThresholdEntry.AddChild(pointThresholdTextBox, "*"); var minPointsEntry = new HorizontalContainer(); minPointsEntry.AddChild(new Label() { Text = "Min. Points: " }, "100"); minPointsEntry.AddChild(minPoints, "*"); var maxPointsEntry = new HorizontalContainer(); maxPointsEntry.AddChild(new Label() { Text = "Max. Points: " }, "100"); maxPointsEntry.AddChild(maxPoints, "*"); var renderAlphaEntry = new HorizontalContainer(); renderAlphaEntry.AddChild(new Label() { Text = "Render Alpha: " }, "100"); renderAlphaEntry.AddChild(alpha, "*"); var deviceWidthEntry = new HorizontalContainer(); deviceWidthEntry.AddChild(new Label() { Text = "Device Width: " }, "100"); deviceWidthEntry.AddChild(deviceWidth, "*"); var deviceHeightEntry = new HorizontalContainer(); deviceHeightEntry.AddChild(new Label() { Text = "Device Height: " }, "100"); deviceHeightEntry.AddChild(deviceHeight, "*"); var vert = new VerticalContainer(); vert.AddChild(pointThresholdEntry, "24"); vert.AddChild(minPointsEntry, "24"); vert.AddChild(maxPointsEntry, "24"); vert.AddChild(renderAlphaEntry, "24"); vert.AddChild(nextColor, "24"); vert.AddChild(showDiagnostics, "48"); vert.AddChild(showBoard, "48"); vert.AddChild(nextDevice, "48"); vert.AddChild(deviceName, "24"); vert.AddChild(deviceWidthEntry, "24"); vert.AddChild(deviceHeightEntry, "24"); vert.AddChild(_fullscreen, "48"); vert.AddChild(camera640x480, "48"); vert.AddChild(camera720p, "48"); vert.AddChild(camera1080p, "48"); var hor = new HorizontalContainer(); hor.AddChild(new EmptyContainer(), "*"); hor.AddChild(vert, "200"); var canvas = new Canvas(); canvas.SetChild(hor); canvasEntity.Canvas = canvas; var webcamEntity = entityFactory.CreateWebcamEntity(deviceName, deviceWidth, deviceHeight); var detectorEntity = entityFactory.CreateDetectorEntity(webcamEntity); detectorEntity.X = 0; detectorEntity.Y = 0; var boardAnalyzerEntity = entityFactory.CreateBoardAnalyzerEntity(detectorEntity, pointThresholdTextBox, minPoints, maxPoints); var boardRendererEntity = entityFactory.CreateBoardRendererEntity(boardAnalyzerEntity, webcamEntity, alpha); nextColor.Click += (sender, args) => { detectorEntity.NextColor(); }; showDiagnostics.Click += (sender, args) => { alpha.Text = "0"; }; showBoard.Click += (sender, args) => { alpha.Text = "1"; }; nextDevice.Click += (sender, args) => { webcamEntity.NextDevice(); }; _hasSetupFullscreenButton = false; this.Entities.Add(webcamEntity); this.Entities.Add(detectorEntity); this.Entities.Add(boardAnalyzerEntity); this.Entities.Add(canvasEntity); this.Entities.Add(boardRendererEntity); }