public void Update(GameTime gameTime) { //if(Program.sPort.BytesToRead == 1 ) //{ // int data = (int)Program.sPort.ReadByte(); // //string trash = sPort.ReadExisting(); // if (data >= 128) // data -= 255; // kierunek = data; //}else // if (Program.sPort.BytesToRead > 1) //{ // string trash = Program.sPort.ReadExisting(); //} #region Ruchome krawędzie foreach (Krawedz k in listaKrawedzi) { Vector2 kr = new Vector2(0, k.prostokat.Y); if (k.ruchoma == true && k.kierunek == "prawo") { kr.X = 500 * (float)gameTime.ElapsedGameTime.TotalSeconds; k.prostokat.X += (int)kr.X; } if (k.ruchoma == true && k.kierunek == "lewo") { kr.X = 500 * (float)gameTime.ElapsedGameTime.TotalSeconds; k.prostokat.X -= (int)kr.X; } if (k.prostokat.X > MyStaticValues.WinSize.X - k.prostokat.Width) { k.kierunek = "lewo"; } if (k.prostokat.X < 0) { k.kierunek = "prawo"; } } #endregion if (position.Y < maxPosition.Y) { maxPosition = position; maxPosition.X = 0; } else if (maxPosition.Y + 700 < position.Y) { koniecGry = true; } totalWynik = (int)((maxPosition.Y - 2 * maxPosition.Y) / 100) + wynik; //string test; //sport.DataReceived() += test; positionBefore = position; keyState = Keyboard.GetState(); czas = gameTime.TotalGameTime.ToString(); #region Sterowanie if (keyState.IsKeyDown(Keys.Enter) || keyState.IsKeyDown(Keys.Space)) ScreenManager.Instance.AddScreen(new PlayScreen()); gracz.IsActive = true; if (opadanie) { gracz.CurrentFrame = new Vector2(gracz.CurrentFrame.X, 2); } else { gracz.CurrentFrame = new Vector2(gracz.CurrentFrame.X, 0); } if (kierunek > 0) { gracz.CurrentFrame = new Vector2(0, gracz.CurrentFrame.Y); position.X += moveSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds * kierunek/48; } else if (kierunek < 0) { gracz.CurrentFrame = new Vector2(1, gracz.CurrentFrame.Y); position.X += moveSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds * kierunek/48; } if (jump) { gracz.CurrentFrame = new Vector2(gracz.CurrentFrame.X, 1); velocity = Vector2.Zero; velocity.Y -= jumpSpeed * (float)gameTime.ElapsedGameTime.TotalSeconds; jump = false; } if (!jump) velocity.Y += gravity * (float)gameTime.ElapsedGameTime.TotalSeconds; else { velocity.Y = 100 * (float)gameTime.ElapsedGameTime.TotalSeconds; opadanie = false; } position += velocity; if (position.Y >= MyStaticValues.WinSize.Y - gracz.FrameHeight) { jump = true; } #endregion #region colision CheckBorders(); foreach (Krawedz k in listaKrawedzi) { if (playerRect.Intersects(k.prostokat) && opadanie) { gracz.CurrentFrame = new Vector2(gracz.CurrentFrame.X, 1); position.Y = k.prostokat.Y - gracz.FrameHeight; inter = true; jump = true; } else inter = false; } if (playerRect.Intersects(podloga)) { position.Y = podloga.Y - gracz.FrameHeight; inter = true; jump = true; } else inter = false; foreach (Coin c in listaCoinow) { if (playerRect.Intersects(c.prostokat)) { inter = true; wynik += 20; iloscCoinow++; listaCoinowDoUsuniecia.Add(c); } else inter = false; } #endregion #region Rysowanie bloków dlugoscListy = listaKrawedzi.Count; foreach (Krawedz k in listaKrawedziDoUsuniecia) { for (int i = 0; i < dlugoscListy - 1; i++) { badanaKrawedz = listaKrawedzi[i]; if (k == badanaKrawedz) { listaKrawedzi.Remove(k); } } } listaKrawedziDoUsuniecia.RemoveRange(0, listaKrawedziDoUsuniecia.Count); dlugoscListy = listaCoinow.Count; foreach (Coin c in listaCoinowDoUsuniecia) { for (int i = 0; i < dlugoscListy - 1; i++) { try { badanyCoin = listaCoinow[i]; } catch { return; } if (c == badanyCoin) { listaCoinow.Remove(c); } } } listaCoinowDoUsuniecia.RemoveRange(0, listaCoinowDoUsuniecia.Count); #endregion gracz.Position = position; gracz.Update(gameTime); playerRect = new Rectangle((int)position.X, (int)position.Y, gracz.FrameWidth, gracz.FrameHeight); gracz.IsActive = false; /* if (licznik == 30) { updateKierunek(); licznik = 0; } else licznik++;*/ }
public void Initialize() { for (int i = 0; i < 600; i++) { Krawedz k = new Krawedz(poprzednieX, poprzednieWidth); k.prostokat.Y += (i * -200) + (MyStaticValues.WinSize.Y - 50); listaKrawedzi.Add(k); poprzednieX = k.prostokat.X; poprzednieWidth = k.prostokat.Width; } for (int i = 0; i < 100; i++) { Coin c = new Coin(); listaCoinow.Add(c); } position = new Vector2(((MyStaticValues.WinSize.X - gracz.FrameWidth) / 2), (MyStaticValues.WinSize.Y - gracz.FrameHeight)); velocity = Vector2.Zero; coin = new Rectangle(100, 100, 16, 16); //watek.Start(); }