protected override void Initialize() { Window.AllowUserResizing = true; IsMouseVisible = true; base.Initialize(); Input.SetWindow(Window); _offset = new Vector2(-DrawDistance * Chunk.Size * 8) / 2f; _chunkUpdates = new float[DrawDistance, DrawDistance]; _world = new World(World_ChunkRequest); _world.OnBuildOrder += (w, c, order) => { _chunkUpdates[c.Position.X, c.Position.Y] = ChunkUpdateDuration; }; _client = new NetGameClient(); _client.Open(); System.Threading.Tasks.Task.Run(() => { _client.Connect(IPAddress.Loopback, AppConstants.NetDefaultPort); Thread.Sleep(500); var grid = new byte[DrawDistance * Chunk.Size, DrawDistance * Chunk.Size]; while (true) { for (int i = 0; i < grid.GetLength(0); i++) { for (int j = 0; j < grid.GetLength(1); j++) { var tp = new TilePosition(i, j); if (_world.TryGetChunk(ChunkPosition.FromTile(tp), out var chunk)) { grid[i, j] = (byte)Math.Min((ushort)1, chunk.GetTile(tp.LocalX, tp.LocalY).ID); } } } var finder = new PathFinder(grid); _path = finder.FindPath(new TilePosition(80, 80), new TilePosition(100, 100)); Thread.Sleep(250); } }); }
public GameScene(CCWindow window) : base(window) { Id = ""; _backgroundLayer = new BackgroundLayer(); AddChild(_backgroundLayer); var cameraVisibleBounds = new CCSize(Settings.ScreenWidth, Settings.ScreenHeight); var camera = new CCCamera(CCCameraProjection.Projection3D, cameraVisibleBounds, new CCPoint3(Settings.ScreenWidth, Settings.ScreenHeight, 10)); GameLayer = new GameLayer { Tag = Tags.Client, Camera = camera, }; AddChild(GameLayer); _chatLayer = new ChatLayer(); AddChild(_chatLayer); _hudLayer = new HudLayer(); AddChild(_hudLayer); var keyListener = new CCEventListenerKeyboard {OnKeyPressed = OnKeyPressed, OnKeyReleased = OnKeyReleased}; AddEventListener(keyListener, this); var mouseListener = new CCEventListenerMouse { OnMouseDown = OnMouseDown, OnMouseUp = OnMouseUp, OnMouseMove = OnMouseScroll }; AddEventListener(mouseListener, this); var parser = new FileIniDataParser(); IniData data = parser.ReadFile("Config.ini"); string nickname = data["Client"]["nickname"]; _netGameClient = new NetGameClient(data["Server"]["ip"], this); _netGameClient.ConnectToServer(nickname); InitEvents(); Schedule(Update); Schedule(UpdateNetwork, Settings.NetworkFreqUpdate); }