Exemple #1
0
        public override void Update(Game0 game)
        {
            base.Update(game);

            if (LoadingThread == null)
            {
                Progress = 0;

                LoadingThread = new Thread(() => { LoadLevel(LevelName, game); });
                LoadingThread.Start();
            }
            else if (LoadingThread.IsAlive)
            {
                Progress = (Progress + 1) % 100;
            }

            else
            {
                LoadingThread.Join();
                LoadingThread = null;

                // textures needs to be created on main thread
                SpriteCache.CreateTextures();

                // loading completed
                game.ChangeState(new Gameplay());

                Client.Instance.Send(new JoinGame {
                    Login = game.Player.Name
                });
            }
        }