示例#1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Console.WriteLine(" --- Ajuda / Teclas: ");
            Console.WriteLine(" [  H     ] mostra teclas usadas. ");
            Utilitario.AjudaJogo();


            camera.Eye    = new Vector3(0, 12, 17);
            camera.At     = new Vector3(0, 0, 0);
            obj_Tabuleiro = new Tabuleiro(Utilitario.charProximo(), null, camera);
            objetosLista.Add(obj_Tabuleiro);
            objetoSelecionado = obj_Tabuleiro;

            // Ponto4D pto = obj_Tabuleiro.getPontoInicialPeca(Ambiente.MEIO, 0, 0.8f);
            // obj_Dado = new Dado(Utilitario.charProximo(), null, pto, 0.8f, new Cor(0, 0, 255, 255), new Cor(255, 0, 0, 255));
            // objetosLista.Add(obj_Dado);
            // objetoSelecionado = obj_Dado;


            // camera.Eye = new Vector3(2, 2, 2);
            // camera.At = new Vector3(0, 0, 0);
            // obj_Cubo = new Cubo(Utilitario.charProximo(), null);
            // objetosLista.Add(obj_Cubo);
            // objetoSelecionado = obj_Cubo;

#if CG_Privado  //FIXME: arrumar os outros objetos
            objetoId     = Utilitario.charProximo(objetoId);
            obj_Cilindro = new Cilindro(objetoId, null);
            obj_Cilindro.ObjetoCor.CorR = 177; obj_Cilindro.ObjetoCor.CorG = 166; obj_Cilindro.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Cilindro);
            obj_Cilindro.Translacao(2, 'x');

            objetoId   = Utilitario.charProximo(objetoId);
            obj_Esfera = new Esfera(objetoId, null);
            obj_Esfera.ObjetoCor.CorR = 177; obj_Esfera.ObjetoCor.CorG = 166; obj_Esfera.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Esfera);
            obj_Esfera.Translacao(4, 'x');

            objetoId = Utilitario.charProximo(objetoId);
            obj_Cone = new Cone(objetoId, null);
            obj_Cone.ObjetoCor.CorR = 177; obj_Cone.ObjetoCor.CorG = 166; obj_Cone.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Cone);
            obj_Cone.Translacao(6, 'x');
#endif

            GL.ClearColor(0.5f, 0.5f, 0.5f, 1.0f);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.CullFace);
        }
示例#2
0
        protected override void OnKeyDown(OpenTK.Input.KeyboardKeyEventArgs e)
        {
            // Console.Clear(); //TODO: não funciona.
            if (e.Key == Key.H)
            {
                Utilitario.AjudaTeclado();
            }
            else if (e.Key == Key.F1)
            {
                Utilitario.AjudaJogo();
            }
            else if (e.Key == Key.Escape)
            {
                Exit();
            }
            //--------------------------------------------------------------
            else if (e.Key == Key.Number9)
            {
                objetoSelecionado = null;             // desmacar objeto selecionado
            }
            else if (e.Key == Key.B)
            {
                bBoxDesenhar = !bBoxDesenhar; //FIXME: bBox não está sendo atualizada.
            }
            else if (e.Key == Key.Enter)
            {
                obj_Tabuleiro.enter();
            }
            else if (e.Key == Key.E)
            {
                Console.WriteLine("--- Objetos / Pontos: ");
                for (var i = 0; i < objetosLista.Count; i++)
                {
                    Console.WriteLine(objetosLista[i]);
                }
            }
            //--------------------------------------------------------------
            else if (e.Key == Key.X)
            {
                menuEixoSelecao = 'x';
            }
            else if (e.Key == Key.Y)
            {
                menuEixoSelecao = 'y';
            }
            else if (e.Key == Key.Z)
            {
                menuEixoSelecao = 'z';
            }
            else if (e.Key == Key.Minus)
            {
                deslocamento--;
            }
            else if (e.Key == Key.Plus)
            {
                deslocamento++;
            }
            else if (e.Key == Key.C)
            {
                menuSelecao = "[menu] C: Câmera";
            }
            else if (e.Key == Key.O)
            {
                menuSelecao = "[menu] O: Objeto";
            }

            // Menu: seleção
            else if (menuSelecao.Equals("[menu] C: Câmera"))
            {
                camera.MenuTecla(e.Key, menuEixoSelecao, deslocamento);
            }
            else if (menuSelecao.Equals("[menu] O: Objeto"))
            {
                if (objetoSelecionado != null)
                {
                    objetoSelecionado.MenuTecla(e.Key, menuEixoSelecao, deslocamento, bBoxDesenhar);
                }
                else
                {
                    Console.WriteLine(" ... Objeto NÃO selecionado.");
                }
            }

            else
            {
                Console.WriteLine(" __ Tecla não implementada.");
            }

            if (!(e.Key == Key.LShift)) //FIXME: não funciona.
            {
                Console.WriteLine("__ " + menuSelecao + "[" + deslocamento + "]");
            }
        }