예제 #1
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            TextureManager.setDebug(true);

            spriteBatch = new SpriteBatch(GraphicsDevice);
            TextureManager.loadAllImages(Content);
            GlobalCamera = new LCamera(graphics.GraphicsDevice, spriteBatch, Settings.TargetRectangle, Settings.GP_P);
            Camera.setupCamera(Settings.GP_P);
            Camera.setupGenericTexture(GraphicsDevice);
            SafeImage.SetPlaceholder(new Image("phld"));
            ControllerDisplayHelper.Load();
            TemporaryPlayer.LOAD();
            Screen.Load(Content);
            Settings.Load();
            ScreenManager = new GameScreenManager();
            Screens.MinigameScreen.Load(Content);

            //Settings.DEBUG_CONTROLLERS = true;

            //DEBUGGING:

            Settings.UPDATE_GT = new GameTime(TimeSpan.Zero, TimeSpan.Zero);

            GameManager.Setup(new Player[] { new Player("TST P", Difficulty.NON_COMP, PlayerIndex.One),
                                             new Player("CMP E", Difficulty.Easy, PlayerIndex.Two),
                                             new Player("CMP M", Difficulty.Medium, PlayerIndex.Three),
                                             new Player("CMP H", Difficulty.Hard, PlayerIndex.Four) });
            GameManager.ChangeP1(GameManager.Players[2], 0);
            ScreenManager.ChangeScreen(new Screens.MinigameScreen(
                                           Screens.MinigameScreen.AllMinigames[2], // Minigame goes here
                                           GameManager.Players));

            // END DEBUGGING
        }
예제 #2
0
 public override void Load(ContentManager cm)
 {
     Bread   = SafeImage.Get("Minigames\\LunchBreak\\Bread");
     Goodies = new Image[] { SafeImage.Get("Minigames\\LunchBreak\\Lettuce"), SafeImage.Get("Minigames\\LunchBreak\\Meat"), SafeImage.Get("Minigames\\LunchBreak\\Cheese"), SafeImage.Get("Minigames\\LunchBreak\\Tomato") };
     Spider  = SafeImage.Get("Minigames\\LunchBreak\\Spider");
     font    = TextureManager.getFont("GenericMenu");
 }
예제 #3
0
    private static void OnSourceWithCustomRefererChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
    {
        SafeImage safeImage = o as SafeImage;

        safeImage.OnLoaded(null, null);
        //OnLoaded(null, null);
        if (e.NewValue == null)
        {
            return;
        }
    }
예제 #4
0
        public override void Load(ContentManager cm)
        {
            sheetSprite = new Image("Minigames\\HotBeat\\musicSheet");
            boxSprite   = SafeImage.Get("Minigames\\HotBeat\\box");

            buttonSprites = new Dictionary <ControllerButton, Image>();
            buttonSprites.Add(ControllerButton.A, new Image("ControllerImages\\A"));
            buttonSprites.Add(ControllerButton.B, new Image("ControllerImages\\B"));
            buttonSprites.Add(ControllerButton.X, new Image("ControllerImages\\X"));
            buttonSprites.Add(ControllerButton.Y, new Image("ControllerImages\\Y"));

            myFont = TextureManager.getFont("Minigames\\HotBeat\\myfont");
        }
예제 #5
0
파일: ImagePreview.cs 프로젝트: pSasa/c-
        /// <summary>
        /// запрос на получение одраза картинки
        /// текущая картинка грузится и отдается
        /// соседние кэшируются
        /// </summary>
        /// <param name="current">что нужно подгрузить</param>
        /// <param name="prev">имя соседней с текущей картинка</param>
        /// <param name="next">имя соседней с текущей картинка</param>
        /// <returns></returns>
        public Image LoadImage(string current, string prev, string next)
        {
            //новый массив картинок
            //не стал перетасовывать местами элементы в траром так как очень это геморно
            SafeImage[] newImageList = new SafeImage[3];
            //строим абсолютные пути
            if (current != null)
            {
                current = Path.Combine(folder, current);
            }
            else
            {
                //throw;
            }
            if (prev != null)
            {
                prev = Path.Combine(folder, prev);
            }
            if (next != null)
            {
                next = Path.Combine(folder, next);
            }
            //смотрим что закэшированно
            //критерий сравнения - абсолютный путь
            //критерий не очень честный но для занной задачи пойдет
            if (imageList != null)
            {
                for (int i = 0; i < 3; i++)
                {
                    if (current.CompareTo(imageList[i].name) == 0)
                    {
                        newImageList[1] = imageList[i];
                    }
                    else if (prev != null && prev.CompareTo(imageList[i].name) == 0)
                    {
                        newImageList[0] = imageList[i];
                    }
                    else if (next != null && next.CompareTo(imageList[i].name) == 0)
                    {
                        newImageList[2] = imageList[i];
                    }
                }
            }
            //загружаем выбранную картинку (если не кэширована)
            //и нитью запускаем загрузку предыдущей и следующей (если не кэшированы)
            SafeImage sim;
            if (newImageList[1] == null)
            {
                newImageList[1] = new SafeImage(current);
                newImageList[1].isReady = true;
                Bitmap b = new Bitmap(newImageList[1].name);
                Bitmap scaled = new Bitmap((Image)b, size);
                newImageList[1].image = scaled;
            }
            if (prev != null && newImageList[0] == null)
            {
                newImageList[0] = new SafeImage(prev);
                sim = newImageList[0];
                Debug.WriteLine("Pool Load " + sim.name);
                ThreadPool.QueueUserWorkItem(o => LoadImage(sim));

            }
            if (next != null && newImageList[2] == null)
            {
                newImageList[2] = new SafeImage(next);
                sim = newImageList[2];
                Debug.WriteLine("Pool Load " + sim.name);
                ThreadPool.QueueUserWorkItem(o => LoadImage(sim));
            }
            imageList = newImageList;
            Image im = null;
            //если текущая картинка кэширована но еща в процессе загрузки - ждем пока не загрузится
            //здесь не использую спинлок так как можно процу загрузить пока тудет с диска/сети читаться
            do
            {
                imageList[1].mutex.WaitOne();
                if (imageList[1].isReady)
                {
                    im = imageList[1].image;
                }
                imageList[1].mutex.ReleaseMutex();
            } while (!imageList[1].isReady);
            return im;
        }
예제 #6
0
파일: ImagePreview.cs 프로젝트: pSasa/c-
 /// <summary>
 /// Изменение размера картинки в отдельном потоке
 /// </summary>
 /// <param name="image">что нужно изменять</param>
 private void ResizeImage(SafeImage image)
 {
     image.mutex.WaitOne();
     try
     {
         image.image = (Image)new Bitmap((Image)image.image, size);
         Debug.WriteLine("Resize " + image.name);
     }
     finally
     {
         image.isReady = true;
         image.mutex.ReleaseMutex();
     }
 }
예제 #7
0
파일: ImagePreview.cs 프로젝트: pSasa/c-
 /// <summary>
 /// Загрузка картинки в отдельном потоке
 /// </summary>
 /// <param name="image">что нужно грузить</param>
 private void LoadImage(SafeImage image)
 {
     image.mutex.WaitOne();
     try
     {
         Bitmap b = new Bitmap(image.name);
         image.image = (Image)new Bitmap((Image)b, size);
         Debug.WriteLine("Load " + image.name);
     }
     catch (Exception)
     {
         //нет файла или он кривой кто должен ловить исключение?
         //наверное тот кто использует наш класс
         throw;
     }
     finally
     {
         //освобиться надо в любом случае
         image.isReady = true;
         image.mutex.ReleaseMutex();
     }
 }