public virtual void Draw(GameTime gameTime, SpriteBatch spriteBatch) { Rectangle mainFrame = new Rectangle(0, 0, CyberFuck.graphics.GraphicsDevice.Viewport.Width, CyberFuck.graphics.GraphicsDevice.Viewport.Height); spriteBatch.Begin(); spriteBatch.Draw(CyberFuck.GetTexture("menu-background"), mainFrame, Color.White); spriteBatch.End(); spriteBatch.Begin(); int count = 0; //while(offset + 70 * (choice % texts.Count - 1 - start) > CyberFuck.graphics.GraphicsDevice.Viewport.Height - 80) while (choice % texts.Count - start > 3 || offset + 70 * (choice % texts.Count - 1 - start) > CyberFuck.graphics.GraphicsDevice.Viewport.Height - 80) { start++; } if (choice % texts.Count < start) { start = choice % texts.Count; } for (int i = start; i < texts.Count; i++) { var value = texts[i]; string text = value; Vector2 position = new Vector2(CenterX(text), offset + count * 70); spriteBatch.DrawString(CyberFuck.font, text, position, i == choice % texts.Count ? Color.Red : Color.Black, 0, Vector2.Zero, 2, SpriteEffects.None, 0f); count++; } spriteBatch.End(); }
public override void Update(GameTime gameTime) { base.Update(gameTime); if (Input.KeyWentDown(Keys.Escape)) { Close(() => { CyberFuck.instance.Exit(); }); } if (Input.KeyWentDown(Keys.Enter)) { switch ((State)(choice % texts.Count)) { case State.Host: CyberFuck.Screen = new ChooseWorldScreen((string w) => { CyberFuck.Screen = new EnterNameScreen((n) => { CyberFuck.Host(w, n); }); }); break; case State.Join: CyberFuck.Screen = new EnterNameScreen((n) => { CyberFuck.Screen = new JoinScreen(n); }); break; case State.Single: CyberFuck.Screen = new ChooseWorldScreen((w) => { CyberFuck.Screen = new EnterNameScreen((n) => { CyberFuck.Start(w, n); }); }); break; case State.Quit: CyberFuck.instance.Exit(); break; default: break; } } }
public override void Update(GameTime gameTime) { base.Update(gameTime); if (Input.KeyWentDown(Keys.Escape)) { Close(() => { CyberFuck.Screen = new MainScreen(); }); } switch ((State)(choice % texts.Count)) { case State.IP: ip = Input.InputString(ip); ReloadTexts(); break; case State.Port: port = Input.InputString(port); ReloadTexts(); break; case State.Join: break; default: break; } if (Input.KeyWentDown(Keys.Enter)) { switch ((State)(choice % texts.Count)) { case State.IP: choice++; break; case State.Port: choice++; break; case State.Join: int portNum; if (int.TryParse(port, out portNum)) { try { CyberFuck.Join(ip, portNum, name); } catch (System.Net.Sockets.SocketException) { error = true; } } else { port = ""; } break; default: break; } } }