2
0

FarseerPhysicsGame.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System;
  2. using Microsoft.Xna.Framework;
  3. namespace FarseerPhysics.SamplesFramework
  4. {
  5. /// <summary>
  6. /// This is the main type for your game
  7. /// </summary>
  8. public class FarseerPhysicsGame : Game
  9. {
  10. private GraphicsDeviceManager _graphics;
  11. public FarseerPhysicsGame()
  12. {
  13. Window.Title = "Farseer Samples Framework";
  14. _graphics = new GraphicsDeviceManager(this);
  15. _graphics.PreferMultiSampling = true;
  16. #if DESKTOP || XBOX
  17. _graphics.PreferredBackBufferWidth = 1280;
  18. _graphics.PreferredBackBufferHeight = 720;
  19. ConvertUnits.SetDisplayUnitToSimUnitRatio(24f);
  20. IsFixedTimeStep = true;
  21. #elif WINDOWS_PHONE
  22. _graphics.PreferredBackBufferWidth = 800;
  23. _graphics.PreferredBackBufferHeight = 480;
  24. ConvertUnits.SetDisplayUnitToSimUnitRatio(16f);
  25. IsFixedTimeStep = false;
  26. #endif
  27. #if DESKTOP
  28. _graphics.IsFullScreen = false;
  29. #elif XBOX || WINDOWS_PHONE
  30. _graphics.IsFullScreen = true;
  31. #endif
  32. Content.RootDirectory = "Content";
  33. //new-up components and add to Game.Components
  34. ScreenManager = new ScreenManager(this);
  35. Components.Add(ScreenManager);
  36. FrameRateCounter frameRateCounter = new FrameRateCounter(ScreenManager);
  37. frameRateCounter.DrawOrder = 101;
  38. Components.Add(frameRateCounter);
  39. }
  40. public ScreenManager ScreenManager { get; set; }
  41. /// <summary>
  42. /// Allows the game to perform any initialization it needs to before starting to run.
  43. /// This is where it can query for any required services and load any non-graphic
  44. /// related content. Calling base.Initialize will enumerate through any components
  45. /// and initialize them as well.
  46. /// </summary>
  47. protected override void Initialize()
  48. {
  49. base.Initialize();
  50. SimpleDemo1 simple1 = new SimpleDemo1();
  51. SimpleDemo2 simple2 = new SimpleDemo2();
  52. SimpleDemo3 simple3 = new SimpleDemo3();
  53. SimpleDemo4 simple4 = new SimpleDemo4();
  54. SimpleDemo5 simple5 = new SimpleDemo5();
  55. SimpleDemo6 simple6 = new SimpleDemo6();
  56. SimpleDemo7 simple7 = new SimpleDemo7();
  57. SimpleDemo8 simple8 = new SimpleDemo8();
  58. SimpleDemo9 simple9 = new SimpleDemo9();
  59. AdvancedDemo1 advanced1 = new AdvancedDemo1();
  60. AdvancedDemo2 advanced2 = new AdvancedDemo2();
  61. AdvancedDemo3 advanced3 = new AdvancedDemo3();
  62. AdvancedDemo4 advanced4 = new AdvancedDemo4();
  63. AdvancedDemo5 advanced5 = new AdvancedDemo5();
  64. GameDemo1 game1 = new GameDemo1();
  65. MenuScreen menuScreen = new MenuScreen("Farseer Samples");
  66. menuScreen.AddMenuItem("Simple Samples", EntryType.Separator, null);
  67. menuScreen.AddMenuItem(simple1.GetTitle(), EntryType.Screen, simple1);
  68. menuScreen.AddMenuItem(simple2.GetTitle(), EntryType.Screen, simple2);
  69. menuScreen.AddMenuItem(simple3.GetTitle(), EntryType.Screen, simple3);
  70. menuScreen.AddMenuItem(simple4.GetTitle(), EntryType.Screen, simple4);
  71. menuScreen.AddMenuItem(simple5.GetTitle(), EntryType.Screen, simple5);
  72. menuScreen.AddMenuItem(simple6.GetTitle(), EntryType.Screen, simple6);
  73. menuScreen.AddMenuItem(simple7.GetTitle(), EntryType.Screen, simple7);
  74. menuScreen.AddMenuItem(simple8.GetTitle(), EntryType.Screen, simple8);
  75. menuScreen.AddMenuItem(simple9.GetTitle(), EntryType.Screen, simple9);
  76. menuScreen.AddMenuItem("Advanced Samples", EntryType.Separator, null);
  77. menuScreen.AddMenuItem(advanced1.GetTitle(), EntryType.Screen, advanced1);
  78. menuScreen.AddMenuItem(advanced2.GetTitle(), EntryType.Screen, advanced2);
  79. menuScreen.AddMenuItem(advanced3.GetTitle(), EntryType.Screen, advanced3);
  80. menuScreen.AddMenuItem(advanced4.GetTitle(), EntryType.Screen, advanced4);
  81. menuScreen.AddMenuItem(advanced5.GetTitle(), EntryType.Screen, advanced5);
  82. menuScreen.AddMenuItem("Game Samples", EntryType.Separator, null);
  83. menuScreen.AddMenuItem(game1.GetTitle(), EntryType.Screen, game1);
  84. menuScreen.AddMenuItem("", EntryType.Separator, null);
  85. menuScreen.AddMenuItem("Exit", EntryType.ExitItem, null);
  86. ScreenManager.AddScreen(new BackgroundScreen());
  87. ScreenManager.AddScreen(menuScreen);
  88. ScreenManager.AddScreen(new LogoScreen(TimeSpan.FromSeconds(3.0)));
  89. }
  90. }
  91. }