public Client(RenderWindow window, ImageManager imageManager) : base(window, imageManager) { this.window = window; world = new RenderImage(800, 600); inputManager = new InputManager(this); ticker = new Ticker(); window.ShowMouseCursor (false); window.SetFramerateLimit (60); NetPeerConfiguration netConfiguration = new NetPeerConfiguration("2dThing"); client = new NetClient(netConfiguration); uMsgBuffer = new UserMessageBuffer(); otherClients = new Dictionary<int, NetworkClient>(); chat = new Chat(this); LoadRessources(); blockTypeDisplay = new Cube(blockType, imageManager); blockTypeDisplay.Position = new Vector2f(window.Width - 2*Cube.WIDTH, window.Height - 2* Cube.HEIGHT); layerDisplay = new LayerDisplay(imageManager); layerDisplay.Position = blockTypeDisplay.Position - new Vector2f(0, 50); mouse = new Sprite (imageManager.GetImage("mouse")); }
private static void Init() { watch.Start(); wnd = new RenderWindow(new VideoMode(1280, 720, 32), "2DCraft", Styles.Close); wnd.UseVerticalSync(false); wnd.SetFramerateLimit(120); wnd.Closed += new EventHandler(OnClose); wnd.KeyPressed += new EventHandler<KeyEventArgs>(KeyboardManager.OnKeyPress); wnd.KeyReleased += new EventHandler<KeyEventArgs>(KeyboardManager.OnKeyRelease); wnd.EnableKeyRepeat(false); wnd.ShowMouseCursor(true); FileSystem.Directory = Properties.GetProperty("Directory="); if (!FileSystem.LoadPlanets()) { System.Windows.Forms.MessageBox.Show("planets.txt was not found.\r\nCreated it.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } if (!FileSystem.LoadCraftables()) { System.Windows.Forms.MessageBox.Show("planets.txt was not found.\r\nCreated it.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } foreach (Planet planet in MapManager.PlanetList) // This MUST be done AFTER loading the planets! (because of how the loading of textures for the items work.) { foreach (Item item in planet.PlanetItems) { item.Init(); MapManager.ItemList.Add(item); } } Lua.Init(); GameManager.Init(); //Audio.PlayAudio("getout.ogg"); watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds + " ms taken to initialize!"); }
private static void Main(string[] args) { var form = new SettingsDialog(); Application.EnableVisualStyles(); Application.Run(form); videoMode = VideoMode.DesktopMode; RenderWindow window = new RenderWindow(videoMode, "Maze Crap", Styles.Fullscreen); window.EnableVerticalSync(Settings.Default.VerticalSync); window.ShowMouseCursor(false); window.Closed += (sender, e) => Application.Exit(); window.KeyPressed += (sender, e) => ((RenderWindow) sender).Close(); SetUpMaze(); target = new Image(VideoMode.DesktopMode.Width/10, VideoMode.DesktopMode.Height/10) {Smooth = false}; float accumulator = 0; float WaitTime = 0; var fps = (float) Settings.Default.Framerate; window.Show(true); bool hasrun = false; while (window.IsOpened()) { accumulator += window.GetFrameTime(); while (accumulator > fps) { if (FinishedGenerating && !Solving) { if (WaitTime < Settings.Default.WaitTime && hasrun) { WaitTime += window.GetFrameTime(); } else { WaitTime = 0; CurrentCell = StartCell*2; VisitedWalls[CurrentCell.X, CurrentCell.Y] = true; CellStack.Clear(); Solving = true; hasrun = true; } accumulator -= fps; continue; } if (Solving && FinishedSolving) { if (WaitTime < Settings.Default.WaitTime) WaitTime += window.GetFrameTime(); else { Solving = false; FinishedGenerating = false; FinishedSolving = false; SetUpMaze(); continue; } continue; } if (Solving && !FinishedSolving) { if (Settings.Default.ShowSolving) FinishedSolving = !SolveIterate(CellStack, Cells, Walls, StartCell, EndCell); else { while (SolveIterate(CellStack, Cells, Walls, StartCell, EndCell)) ; FinishedSolving = true; } accumulator -= fps; continue; } if (Settings.Default.ShowGeneration) { FinishedGenerating = !GenerateIterate(CellStack, Cells, Walls); hasrun = true; } else { while (GenerateIterate(CellStack, Cells, Walls)) ; FinishedGenerating = true; } accumulator -= fps; NeedsRedraw = true; } Render(window); window.Display(); window.DispatchEvents(); } }
/// <summary> /// Handles the <see cref="IGameContainer.RenderWindowChanged"/> event. /// </summary> /// <param name="oldValue">The old value.</param> /// <param name="newValue">The new value.</param> protected virtual void OnRenderWindowChanged(RenderWindow oldValue, RenderWindow newValue) { if (newValue == null) return; newValue.ShowMouseCursor(ShowMouseCursor); newValue.EnableVerticalSync(UseVerticalSync); newValue.SetActive(); newValue.Show(true); }