Beispiel #1
0
        public void resetGame()
        {
            Cobra            = new Modelo();
            cobraLength      = 1;
            CobraFull        = new List <Modelo>();
            directionHistory = new List <int>();
            directionHistory.Add(1);

            direcaoCobra = 1;   //1: X+  2: Z+  3: X-  4: Z-

            LModelos   = new List <Modelo>();
            Comida     = new List <Modelo>();
            Obstaculos = new List <Modelo>();

            Cobra.LerFicheiro("..\\..\\loadModelos\\cubo.obj");

            Cobra.Translacao(0, 0.5f, 0);

            fieldSize = 100;

            currentPont = 0;

            Matriz               = new Dictionary <string, List <Modelo> >();
            Matriz["food"]       = new List <Modelo>();
            Matriz["obstaculos"] = new List <Modelo>();

            Invoke(new MethodInvoker(delegate()
            {
                pontLabel.Text    = string.Format("Pontuação: " + currentPont);
                maxPontLabel.Text = string.Format("Pontuação máxima: " + maxPont);
            }));
        }
Beispiel #2
0
        //Ler Modelos
        private void SharpGLForm_Load(object sender, EventArgs e)
        {
            Jogador = new Modelo();
            Jogador.LerFicheiro("..\\..\\..\\Modelos_OBJ\\esfera.obj");
            Jogador.Posicionar(0, 1, 0, 0);
            LModelos.Add(Jogador);

            ObstaculoObj = new Modelo();
            ObstaculoObj.LerFicheiro("..\\..\\..\\Modelos_OBJ\\sinalizador.obj");
        }
Beispiel #3
0
        public void aumentarCobra()
        {
            Modelo cobraPart = new Modelo();

            cobraPart.LerFicheiro("..\\..\\loadModelos\\snakeBody.obj");
            if (LModelos.Count > 0)
            {
                switch (directionHistory[directionHistory.Count - 1 - LModelos.Count - 1])
                {
                case 1:
                    cobraPart.Translacao(LModelos[LModelos.Count - 1].getX() - 1, LModelos[LModelos.Count - 1].getY(), LModelos[LModelos.Count - 1].getZ());
                    break;

                case 2:
                    cobraPart.Translacao(LModelos[LModelos.Count - 1].getX(), LModelos[LModelos.Count - 1].getY(), LModelos[LModelos.Count - 1].getZ() - 1);
                    break;

                case 3:
                    cobraPart.Translacao(LModelos[LModelos.Count - 1].getX() + 1, LModelos[LModelos.Count - 1].getY(), LModelos[LModelos.Count - 1].getZ());
                    break;

                case 4:
                    cobraPart.Translacao(LModelos[LModelos.Count - 1].getX(), LModelos[LModelos.Count - 1].getY(), LModelos[LModelos.Count - 1].getZ() + 1);
                    break;
                }
            }
            else
            {
                switch (directionHistory[directionHistory.Count - 1])
                {
                case 1:
                    cobraPart.Translacao(Cobra.getX() - 2, Cobra.getY(), Cobra.getZ());
                    break;

                case 2:
                    cobraPart.Translacao(Cobra.getX(), Cobra.getY(), Cobra.getZ() - 2);
                    break;

                case 3:
                    cobraPart.Translacao(Cobra.getX() + 2, Cobra.getY(), Cobra.getZ());
                    break;

                case 4:
                    cobraPart.Translacao(Cobra.getX(), Cobra.getY(), Cobra.getZ() + 2);
                    break;
                }
            }

            LModelos.Add(cobraPart);
            cobraLength++;

            removeFood(Cobra.getX(), Cobra.getZ());

            incrementPoints();
        }
Beispiel #4
0
        public void randomPosition(object source, ElapsedEventArgs e)
        {
            bool foodOcupado = true;
            bool obstOcupado = true;

            while (foodOcupado == true)
            {
                int newValueX = rndNumber.Next(1, fieldSize);
                int newValueY = rndNumber.Next(1, fieldSize);

                if (foodMatrix[newValueX, newValueY] != 1 && obstaclesMatrix[newValueX, newValueY] != 1)
                {
                    Modelo comida = new Modelo();
                    comida.LerFicheiro("..\\..\\loadModelos\\maça.obj");
                    comida.Translacao(newValueX, 0.5, newValueY);
                    foodMatrix[newValueX, newValueY] = 1;
                    Matriz["food"].Add(comida);
                    foodOcupado = false;
                }
            }

            while (obstOcupado == true)
            {
                int newValueX = rndNumber.Next(1, fieldSize);
                int newValueY = rndNumber.Next(1, fieldSize);

                if (obstaclesMatrix[newValueX, newValueY] != 1 && foodMatrix[newValueX, newValueY] != 1)
                {
                    Modelo obstaculo = new Modelo();
                    obstaculo.LerFicheiro("..\\..\\loadModelos\\cubo.obj");
                    obstaculo.Translacao(newValueX, 0.5, newValueY);
                    obstaclesMatrix[newValueX, newValueY] = 1;
                    Matriz["obstaculos"].Add(obstaculo);
                    obstOcupado = false;
                }
            }
        }
Beispiel #5
0
        public SharpGLForm()
        {
            InitializeComponent();

            TextArray = new Texture[5];

            gl = openGLControl.OpenGL;

            for (int i = 1; i <= 4; i++)
            {
                TextArray[i - 1] = new Texture();
                TextArray[i - 1].Create(gl, "..\\..\\Texturas\\Text" + i + ".bmp");
            }

            TextArray[4] = new Texture();
            TextArray[4].Create(gl, "..\\..\\Texturas\\Terrain.bmp");

            this.KeyDown += new KeyEventHandler(keyPress);

            TX                = 0;
            TY                = 0;
            TZ                = 0;
            Escala            = 1.0;
            Incremento_Escala = 0.1;
            Sentido           = 2;
            Em_Movimento      = true;

            Cobra            = new Modelo();
            cobraLength      = 1;
            CobraFull        = new List <Modelo>();
            directionHistory = new List <int>();
            directionHistory.Add(1);

            direcaoCobra = 1;   //1: X+  2: Z+  3: X-  4: Z-

            LModelos   = new List <Modelo>();
            Comida     = new List <Modelo>();
            Obstaculos = new List <Modelo>();

            Cobra.LerFicheiro("..\\..\\loadModelos\\cubo.obj");
            Cobra.Translacao(0, 0.5f, 0);

            fieldSize = 100;

            currentPont = 0;
            maxPont     = 0;

            pontLabel.TextChanged += new System.EventHandler(this.updateScreenPont);

            foodMatrix      = new int[fieldSize, fieldSize];
            obstaclesMatrix = new int[fieldSize, fieldSize];

            timer          = new System.Timers.Timer();
            timer.Elapsed += new ElapsedEventHandler(timerMovement);
            timer.Interval = 100;
            timer.Enabled  = true;

            extrasTimer           = new System.Timers.Timer();
            extrasTimer.Elapsed  += new ElapsedEventHandler(randomPosition);
            extrasTimer.Interval  = 6000;
            extrasTimer.Enabled   = true;
            extrasTimer.AutoReset = true;

            rotatetimer          = new System.Timers.Timer();
            rotatetimer.Elapsed += new ElapsedEventHandler(rotateFunction);
            rotatetimer.Interval = 100;
            rotatetimer.Enabled  = true;

            Matriz               = new Dictionary <string, List <Modelo> >();
            Matriz["food"]       = new List <Modelo>();
            Matriz["obstaculos"] = new List <Modelo>();

            rndNumber = new Random();
        }