Beispiel #1
0
        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;
 }
Beispiel #3
0
 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;
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #6
0
 /// <summary>
 /// Sets the Fill Color of the sprite.
 /// </summary>
 /// <param name="color">Color.</param>
 public void SetColor(Color color)
 {
     Rect.FillColor = color;
 }