Root/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #region File Description //----------------------------------------------------------------------------- // IScreenFactory.cs // // Microsoft XNA Community Game Platform // Copyright (C) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- #endregion using System; namespace GameStateManagement { /// <summary> /// Defines an object that can create a screen when given its type. /// /// The ScreenManager attempts to handle tombstoning on Windows Phone by creating an XML /// document that has a list of the screens currently in the manager. When the game is /// reactivated, the ScreenManager needs to create instances of those screens. However /// since there is no restriction that a particular GameScreen subclass has a parameterless /// constructor, there is no way the ScreenManager alone could create those instances. /// /// IScreenFactory fills this gap by providing an interface the game should implement to /// act as a translation from type to instance. The ScreenManager locates the IScreenFactory /// from the Game.Services collection and passes each screen type to the factory, expecting /// to get the correct GameScreen out. /// /// If your game screens all have parameterless constructors, the minimal implementation of /// this interface would look like this: /// /// return Activator.CreateInstance(screenType) as GameScreen; /// /// If you have screens with constructors that take arguments, you will need to ensure that /// you can read these arguments from storage or generate new ones, then construct the screen /// based on the type. /// /// The ScreenFactory type in the sample game has the minimal implementation along with some /// extra comments showing a potentially more complex example of how to implement IScreenFactory. /// </summary> public interface IScreenFactory { /// <summary> /// Creates a GameScreen from the given type. /// </summary> /// <param name="screenType">The type of screen to create.</param> /// <returns>The newly created screen.</returns> GameScreen CreateScreen(Type screenType); } } |
Source at commit Version 1.0.1.7 created 12 years 8 days ago. By Nathan Adams, Adding MouseAimVector to AGS |
---|