c# uruchamianie formy w nowym wątku 3690 1

O temacie

Autor RafalBudzis

Zaczęty 11.01.2013 roku

Wyświetleń 3690

Odpowiedzi 1

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Próbuje zrobić splash screena do gry w XNA postanowiłem ze będzie nim zwykła forma z 2 PictureBox`ami. Uruchamiając normalnie.

       static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new SpashScreen());

            using (Game1 game = new Game1())
            {
                 game.Run();
            }

Program czeka na zamkniecie formy przez użytkownika i dopiero potem uruchamia grę. Zrobiłem to 2 innymi sposobami lecz nie działają do końca dobrze :/
       internal static SpashScreen splash_screen;

        static void Main(string[] args)
        {

            splash_screen = new SpashScreen();
            splash_screen.Show();

                using (Game1 game = new Game1())
                {
                    game.Run();
                }
Ten sposób działa jak na razie najlepiej uruchamia sie i pozwala na uruchomienie ładowania gry i na końcu metody LoadContent wywołanie Program.splash_screen.Close(); skutkuje wyłączeniem po ładowaniu więc super :)  ale forma nie wyświetla swoich PictureBox`ów :/

Oraz ostatnia próba

       internal static SpashScreen splash_screen;
        internal static Thread sf;

        static void show_splash()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(splash_screen);
        }

        static void Main(string[] args)
        {

            splash_screen = new SpashScreen();
            sf= new Thread(new ThreadStart(show_splash));
            sf.Start();


                using (Game1 game = new Game1())
                {
                    game.Run();
                }

tu juz wyświetla elementy formy ok ale wywołanie Program.sf.Abort(); na końcu metody loadContent skutkuje chwilową zwiechą (czeka za najadę myszka na splash screena) następnie wyłączeniem formy i schowaniem okna gry na dalszy plan

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
A jak wygląda twoja klasa SpashScreen?


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry