예제 #1
0
        /// <summary>
        /// Create the GameWindow, and use a specific OpenGL version
        /// </summary>
        /// <param name="param">GameWindow creation parameters</param>
        public void CreateGameWindow(GameWindowParams param)
        {
            Trace.WriteDebugLine("[GameBase] CreateGameWindow()");

            // Close the previous game window first
            if (Window != null)
            {
                Trace.WriteDebugLine("[GameBase] CreateGameWindow() : Closing previous window");
                CloseGameWindow();
            }

            Window = new GameWindow(param);


            // Events
            Window.Activated   += new EventHandler(Window_Activated);
            Window.Deactivate  += new EventHandler(Window_Deactivate);
            Window.Resize      += new EventHandler(Window_Resize);
            Window.FormClosing += new FormClosingEventHandler(Window_FormClosing);
            Mouse.Init(Window);
            Gamepad.Init(Window);

            Window.Show();
            Window.Activate();
        }
예제 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        public GameWindow(GameWindowParams param)
        {
            Trace.WriteDebugLine("[GameWindow] Constructor()");

            if (param == null)
            {
                Trace.WriteDebugLine("[GameWindow] param == null !");
                throw new ArgumentNullException("param");
            }

            InitializeComponent();

            TK.GraphicsContextFlags compatible = param.Compatible ? TK.GraphicsContextFlags.Default : TK.GraphicsContextFlags.ForwardCompatible;

            // Adds the control to the form
            Trace.WriteDebugLine("[GameWindow] Requesting a {0}.{1} {2}Opengl context (Color: {3}, Depth: {4}, Stencil:{5}, Sample: {6})",
                                 param.Major, param.Minor, param.Compatible ? "compatible " : string.Empty, param.Color, param.Depth, param.Stencil, param.Samples);

            RenderControl = new OpenTK.GLControl(new TK.GraphicsMode(param.Color, param.Depth, param.Stencil, param.Samples),
                                                 param.Major, param.Minor, compatible);
            Trace.WriteDebugLine("[GameWindow] Got GraphicsMode {0}", RenderControl.GraphicsMode);
            RenderControl.Dock = DockStyle.Fill;
            Controls.Add(RenderControl);


            // Resize the window
            ClientSize = param.Size;

            VSync = true;
            if (param.FullScreen)
            {
                SetFullScreen(param.Size, param.Color);
            }
        }
예제 #3
0
        /// <summary>
        /// Create the GameWindow, with the highest compatible OpenGL version
        /// </summary>
        /// <param name="size">Size of the window</param>
        public void CreateGameWindow(Size size)
        {
            GameWindowParams p = new GameWindowParams();

            p.Size = size;
            CreateGameWindow(p);
        }
예제 #4
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Program()
        {
            ParticleCount = 2000;

            // Open the window
            GameWindowParams param = new GameWindowParams();

            param.Size  = new Size(1024, 768);
            param.Major = 3;
            param.Minor = 0;
            CreateGameWindow(param);
            Window.Text = "Fountain";


            // Create particles
            Particles = new Particle[ParticleCount * 2];
            for (int i = 0; i < Particles.Length; i++)
            {
                Particles[i] = new Particle();
            }

            // Colors for the particles
            Colors = new Color[]
            {
                Color.Red,
                Color.Blue,
                Color.Green,
                Color.Yellow
            };

            Watch = new Stopwatch();
        }
예제 #5
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Program()
        {
            GameWindowParams p = new GameWindowParams();

            p.Size  = new Size(1024, 768);
            p.Major = 3;
            p.Minor = 0;
            CreateGameWindow(p);
        }
예제 #6
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Program()
        {
            GameWindowParams p = new GameWindowParams();

            p.Size  = new Size(1024, 768);
            p.Major = 4;
            p.Minor = 1;
            CreateGameWindow(p);
            Window.Text = "Tunnel effect - Thanks to http://www.rozengain.com/blog/";
        }
예제 #7
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Program()
        {
            GameWindowParams param = new GameWindowParams();

            param.Size  = new Size(1024, 768);
            param.Major = 3;
            param.Minor = 0;
            CreateGameWindow(param);
            Window.Text = "Cell Shading example from http://prideout.net/blog/?p=22";
        }
예제 #8
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Example()
        {
            GameWindowParams p = new GameWindowParams();

            p.Size       = new Size(1024, 768);
            p.Major      = 3;
            p.Minor      = 3;
            p.Compatible = true;
            CreateGameWindow(p);
            Window.Text = "Outlining demo";
        }
예제 #9
0
		/// <summary>
		/// Constructor
		/// </summary>
		public Program()
		{
			GameWindowParams p = new GameWindowParams();
			p.Size = new Size(1024, 768);
			p.Major = 4;
			p.Minor = 1;
			CreateGameWindow(p);
			Window.Text = "Blob Monster - Thanks to http://www.charliesgames.com/wordpress/?p=441";
			Cursor.Hide();

			Monster = new Monster(new Vector2(200.0f, 100.0f), 1.0f, 30);
		}
예제 #10
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Program()
        {
            // Create the game window
            GameWindowParams param = new GameWindowParams();

            param.Size  = new Size(1024, 768);
            param.Major = 3;
            param.Minor = 0;
            CreateGameWindow(param);

            // Change the window title
            Window.Text = "Per pixel perfect collision test";
        }
예제 #11
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// </summary>
        public override void LoadContent()
        {
            // Main storage bank
            Storage = new BankStorage("data/Game.bnk");
            ResourceManager.AddStorage(Storage);
            ResourceManager.RootDirectory = "data";


            GameWindowParams param = new GameWindowParams();

            param.Major      = 2;
            param.Minor      = 1;
            param.Compatible = false;
            param.Size       = new Size(640, 400);
            param.FullScreen = Settings.GetBool("FullScreen");
            CreateGameWindow(param);

            using (Stream icon = Storage.OpenFile("GameIcon.ico", FileAccess.Read))
                Window.Icon = new Icon(icon);
            Window.Text = "Dungeon Eye - http://www.dungeoneye.net";


            // Remove Multi sampling
            Display.RenderState.MultiSample = false;


            // Default texture parameters
            Texture2D.DefaultBorderColor = Color.Black;
            Texture2D.DefaultMagFilter   = TextureMagFilter.Nearest;
            Texture2D.DefaultMinFilter   = TextureMinFilter.Nearest;



            // Change the cursor
            Mouse.LoadTileSet(ResourceManager.CreateAsset <TileSet>("Cursor"));
            Mouse.SetTile(0);

            GSM.AddScreen(new MainMenu());
            //GSM.AddScreen(new GameScreen());
            //GSM.AddScreen(new IntroScreen());
            //GSM.AddScreen(new CharGen());
        }
예제 #12
0
		/// <summary>
		/// Allows the game to perform any initialization it needs to before starting to run.
		/// </summary>
		public override void LoadContent()
		{
			// Main storage bank
			Storage = new BankStorage("data/Game.bnk");
			ResourceManager.AddStorage(Storage);
			ResourceManager.RootDirectory = "data";


			GameWindowParams param = new GameWindowParams();
			param.Major = 2;
			param.Minor = 1;
			param.Compatible = false;
			param.Size = new Size(640,400);
			param.FullScreen = Settings.GetBool("FullScreen");
			CreateGameWindow(param);

			using (Stream icon = Storage.OpenFile("GameIcon.ico", FileAccess.Read))
				Window.Icon = new Icon(icon);
			Window.Text = "Dungeon Eye - http://www.dungeoneye.net";


			// Remove Multi sampling
			Display.RenderState.MultiSample = false;


			// Default texture parameters
			Texture2D.DefaultBorderColor = Color.Black;
			Texture2D.DefaultMagFilter = TextureMagFilter.Nearest;
			Texture2D.DefaultMinFilter = TextureMinFilter.Nearest;




			// Change the cursor
			Mouse.LoadTileSet(ResourceManager.CreateAsset<TileSet>("Cursor"));
			Mouse.SetTile(0);

			GSM.AddScreen(new MainMenu());
			//GSM.AddScreen(new GameScreen());
			//GSM.AddScreen(new IntroScreen());
			//GSM.AddScreen(new CharGen());
		}