/// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            //käsittelee näppäimistön tilan
            KeyboardState newKeyboardState = Keyboard.GetState();

            sankari.Update(gameTime);
            sankaritar.Update(gameTime);

            oldKeyboardState = newKeyboardState;   //tallenna vanha tila, jos tarpeen

            //muuta logiikkaa

            int kortti = rnd.Next(52);     // tilapäismuuttuja kortti saa arvon välillä 0 - 51

            base.Update(gameTime);
        }
Esempio n. 2
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            //käsittelee näppäimistön tilan
            KeyboardState newKeyboardState = Keyboard.GetState();

            collisionDetected = false;

            /*
             * //Non-Player Character AI
             * int princessX = 100;
             * int princessY = 100;
             * Random rnd; //satunnaisluku
             * int intPrincessNopeus = 1;
             * int princessSuunta    = 0;
             */

            bCollision = false;

            prinsessanHidastaja++;
            if (prinsessanHidastaja > prinsessanHidastajanraja)
            {
                prinsessanHidastaja = 0;
            }
            if (prinsessanHidastaja == 0)
            {
                intPrincessNopeus = rnd.Next(1, 4);
                int muutos = rnd.Next(1, 3);
                if (muutos == 1)
                {
                    princessSuunta++;
                }
                if (muutos == 2)
                {
                    princessSuunta--;
                }
                if (princessSuunta > 8)
                {
                    princessSuunta = 1;
                }
                if (princessSuunta < 1)
                {
                    princessSuunta = 8;
                }
            }


            if (princessSuunta == 1)
            { //KOILLINEN
                int bcx = princessX;
                int bcy = princessY;
                bcx += intPrincessNopeus;
                bcy -= intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX += intPrincessNopeus;
                    princessY -= intPrincessNopeus;
                }
            }
            if (princessSuunta == 2)
            //if (ita)
            { //ITÄ
                int bcx = princessX;
                int bcy = princessY;
                bcx += intPrincessNopeus;
                //bcy -= intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX += intPrincessNopeus;
                    //princessY--;
                }
            }
            if (princessSuunta == 3)
            //if (kaakko)
            { //KAAKKO
                int bcx = princessX;
                int bcy = princessY;
                bcx += intPrincessNopeus;
                bcy += intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX += intPrincessNopeus;
                    princessY += intPrincessNopeus;
                }
            }

            if (princessSuunta == 4)
            //if (etela)
            { //ETELÄ
                int bcx = princessX;
                int bcy = princessY;
                //bcx += intPrincessNopeus;
                bcy += intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    //princessX;
                    princessY += intPrincessNopeus;
                }
            }
            if (princessSuunta == 5)
            //if (lounas)
            { //LOUNAS
                int bcx = princessX;
                int bcy = princessY;
                bcx -= intPrincessNopeus;
                bcy += intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX -= intPrincessNopeus;
                    princessY += intPrincessNopeus;
                }
            }
            if (princessSuunta == 6)
            //if (lansi)
            { //LÄNSI
                int bcx = princessX;
                int bcy = princessY;
                bcx -= intPrincessNopeus;
                //bcy -= intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX -= intPrincessNopeus;
                    //princessY--;
                }
            }
            if (princessSuunta == 7)
            //if (luode)
            { //LUODE
                int bcx = princessX;
                int bcy = princessY;
                bcx -= intPrincessNopeus;
                bcy -= intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    princessX -= intPrincessNopeus;
                    princessY -= intPrincessNopeus;
                }
            }
            if (princessSuunta == 8)
            //if (pohjoinen)
            { //POHJOINEN
                int bcx = princessX;
                int bcy = princessY;
                //bcx += intPrincessNopeus;
                bcy -= intPrincessNopeus;
                if (bc.Check(naytonLeveys, naytonKorkeus, bcx, bcy))
                {
                    //princessX++;
                    princessY -= intPrincessNopeus;
                }
            }

            if (cc.Check(princessX, princessY, (int)paikka.X, (int)paikka.Y))
            {
                Console.WriteLine("Törmäys havaittu");
                bCollision = true;
            }

            //sankari.Update(gameTime);
            sankaritar.Update(gameTime);
            //if(Rectangle.Intersect(sankari.rect, sankaritar.rect) !Empty) ;
            //Rectangle.Empty
            Rectangle r = new Rectangle();

            //r = Rectangle.Intersect(sankari.rect, sankaritar.rect);
            //if (r != Rectangle.Empty) collisionDetected = true;
            //if (r != Rectangle.Empty) collisionDetected = true;

            /*
             * if (r.Width > 1 || r.Height > 1)
             * {
             *  collisionDetected = true;
             *  pixelCollision =  cs.Check(GraphicsDevice, ritari_anim, prinsessa, sankari.paikka, sankaritar.paikka, sankari.rect);
             *
             *  //Console.WriteLine("r.Width = " + r.Width);
             *  //Console.WriteLine("r.Height = " + r.Height);
             * }
             */
            ritarinHidastaja++;
            if (!peruutus)
            {
                if (ritarinHidastaja > ritarinHidastajaRaja)
                {
                    ritari_x -= 80;
                    if (ritari_x < 80)
                    {
                        ritari_x = 320;
                    }
                    ritarinHidastaja = 0;
                }
            }
            else
            ///*
            {
                if (ritarinHidastaja > ritarinHidastajaRaja)
                {
                    ritari_x += 80;
                    if (ritari_x > 320)
                    {
                        ritari_x = 80;
                    }
                    ritarinHidastaja = 0;
                }
            }

            //*/
            boolNappiaPainettu = false;
            curMouseState      = Mouse.GetState(); //haetaan hiiren tila
            if (curMouseState.LeftButton == ButtonState.Pressed)
            // && lastMouseState.LeftButton == ButtonState.Released)
            {
                Point mousePositionPoint = curMouseState.Position;
                mouseRect = new Rectangle(mousePositionPoint, new Point(300, 100));
                if (mouseRect.Intersects(button))
                {
                    boolNappiaPainettu = true; //tai false
                    Console.WriteLine("Nappia painettu!");
                }
            }
            if (newKeyboardState.IsKeyDown(Keys.Left))
            {
                //hahmo.LiikuVasemmalle
                liikkeella = true;
                if (!peruutus)
                {
                    paikka.X -= n; eteenpain = true;
                }
                if (peruutus)
                {
                    paikka.X -= n; eteenpain = false;
                }
            }
            else
            {
                liikkeella = false;
            }

            if (newKeyboardState.IsKeyDown(Keys.Up))
            {
                //hahmo.Liiku ylös
                liikkeella = true;
                if (!peruutus)
                {
                    paikka.Y -= n; eteenpain = true;
                }
                if (peruutus)
                {
                    paikka.Y -= n; eteenpain = false;
                }
            }
            else
            {
                liikkeella = false;
            }

            if (newKeyboardState.IsKeyDown(Keys.Down))
            {
                //hahmo.Liiku ylös
                liikkeella = true;
                if (!peruutus)
                {
                    paikka.Y += n; eteenpain = true;
                }
                if (peruutus)
                {
                    paikka.Y += n; eteenpain = false;
                }
            }
            else
            {
                liikkeella = false;
            }

            if (newKeyboardState.IsKeyDown(Keys.Right))
            {
                //hahmo.LiikuOikealle
                liikkeella = true;
                if (!peruutus)
                {
                    paikka.X += n; eteenpain = true;
                }
                if (peruutus)
                {
                    paikka.X += n; eteenpain = false;
                }
            }
            else
            {
                liikkeella = false;
            }

            if (newKeyboardState.IsKeyDown(Keys.B))
            {
                peruutus = true;
            }

            if (newKeyboardState.IsKeyDown(Keys.F))
            {
                peruutus = false;
            }

            //rotaationäppäimet
            if (newKeyboardState.IsKeyDown(Keys.X))
            {
                xpoint += 10f;
            }

            if (newKeyboardState.IsKeyDown(Keys.Z))
            {
                xpoint -= 10f;
            }

            if (newKeyboardState.IsKeyDown(Keys.Y))
            {
                ypoint += 10f;
            }

            if (newKeyboardState.IsKeyDown(Keys.T))
            {
                xpoint -= 10f;
            }

            if (newKeyboardState.IsKeyDown(Keys.R))
            {
                rot -= 30f; //degrees
            }

            if (newKeyboardState.IsKeyDown(Keys.E))
            {
                rot += 30f; //degrees
            }

            oldKeyboardState = newKeyboardState;   //tallenna vanha tila, jos tarpeen

            //muuta logiikkaa

            int kortti = rnd.Next(52);     // tilapäismuuttuja kortti saa arvon välillä 0 - 51

            //cs.Check(this.GraphicsDevice, ritari_anim, prinsessa, sankari.paikka, sankaritar.paikka, sankari.rect);

            base.Update(gameTime);
        }