/// <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); }
/// <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); }