protected override void OnMouseMove(MouseMoveEventArgs e) { base.OnMouseMove(e); var mapX = (short)(e.X / _cellSize); var mapY = (short)(e.Y / _cellSize); if (mapX != _mouseCharacter.MapX || _mouseCharacter.MapY != mapY) { _mouseCharacter.MapX = mapX; _mouseCharacter.MapY = mapY; var distance = new OctileDistanceHeuristic(); var brushfire = _map.LoadBrushFire((_mouseCharacter.MapX, _mouseCharacter.MapY), distance); _brushFirePixels = brushfire.Grid.Values.Where(s => s?.Value != null).GroupBy(s => (int)s !.Value !) .ToDictionary(s => { var alpha = 255 - (s.Key * 10); if (alpha < 0) { alpha = 0; } return(Color.FromArgb((int)(alpha), 0, 255, 0)); }, s => s !.ToList().SelectMany(s => GenerateSquare(s !.Position.X, s.Position.Y)).ToArray()); foreach (var monster in _monsters.Where(s => distance.GetDistance((mapX, mapY), (s.PositionX, s.PositionY)) < 5)) { monster.TargetVisualId = 1; monster.TargetVisualType = VisualType.Player; } } }
private void DefinirCorQuadrado(Color cor) { segmentoRetaQuadradoCima.Cor = cor; segmentoRetaQuadradoBaixo.Cor = cor; segmentoRetaQuadradoDireita.Cor = cor; segmentoRetaQuadradoEsquerda.Cor = cor; }
protected override void OnKeyDown(OpenTK.Input.KeyboardKeyEventArgs e) { if (e.Key == Key.Escape) { this.Exit(); } else if (e.Key == Key.L) { ligaLuz = !ligaLuz; } else if (e.Key == Key.W) { cor = OpenTK.Color.White; } else if (e.Key == Key.R) { cor = OpenTK.Color.Red; } else if (e.Key == Key.G) { cor = OpenTK.Color.Green; } else if (e.Key == Key.B) { cor = OpenTK.Color.Blue; } }
private void DrawShapes(Vector2[] vector, Color color, PrimitiveType type) { var shapeSize = type == PrimitiveType.Quads ? 4 : type == PrimitiveType.LineLoop ? 36 : 36; var count = vector.Length / shapeSize; var counts = Enumerable.Repeat(shapeSize, count).ToArray(); var first = counts.Select((s, i) => s * i).ToArray(); GL.BindBuffer(BufferTarget.ArrayBuffer, _vertexBufferObject); GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(Vector2.SizeInBytes * vector.Length), vector, BufferUsageHint.StaticDraw); GL.VertexAttribPointer(0, 2, VertexAttribPointerType.Float, false, Vector2.SizeInBytes, 0); GL.Color4(color); //deprecated GL.MultiDrawArrays(type, first, counts, count); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); var segmentoRetaA = new SegReta("A", new Ponto4D(0, 20, 0), new Ponto4D(200, 20, 0), Color.Red, 3); var segmentoRetaB = new SegReta("B", new Ponto4D(20, 0, 0), new Ponto4D(20, 200, 0), Color.Green, 3); var angulosDesejados = new List <double>() { 45, 135, 225, 315 }; circuloMaior = new Circulo("C", raioCirculoMaior, Color.Black, angulosDesejados, 360, 200, 200, 1, 1); circuloMenor = new Circulo("C", 70, Color.Black, 360, 200, 200, 1, 1); objetosLista.Add(circuloMenor.segReta); Ponto4D ponto1 = circuloMaior.pontosDosAngulos[0]; Ponto4D ponto2 = circuloMaior.pontosDosAngulos[1]; Ponto4D ponto3 = circuloMaior.pontosDosAngulos[2]; Ponto4D ponto4 = circuloMaior.pontosDosAngulos[3]; corQuadrado = Color.Pink; segmentoRetaQuadradoCima = new SegReta("p", ponto1, ponto2, corQuadrado, 1); segmentoRetaQuadradoEsquerda = new SegReta("p", ponto2, ponto3, corQuadrado, 1); segmentoRetaQuadradoBaixo = new SegReta("p", ponto3, ponto4, corQuadrado, 1); segmentoRetaQuadradoDireita = new SegReta("p", ponto4, ponto1, corQuadrado, 1); circuloMenor.DefinirBoundBox(ponto1, ponto3); objetosLista.Add(segmentoRetaQuadradoCima); objetosLista.Add(segmentoRetaQuadradoDireita); objetosLista.Add(segmentoRetaQuadradoBaixo); objetosLista.Add(segmentoRetaQuadradoEsquerda); objetosLista.Add(segmentoRetaA); objetosLista.Add(segmentoRetaB); objetosLista.Add(circuloMenor); objetosLista.Add(circuloMaior); GL.ClearColor(Color.Gray); }
/// <summary> /// Sets the Fill Color of the sprite. /// </summary> /// <param name="color">Color.</param> public void SetColor(Color color) { Rect.FillColor = color; }