示例#1
0
        public static GameScreen CreateImportSongGameScreen(MyGameWindow gameWindow, string fileDirectory,
                                                            bool removeSingleBeats = false, bool removeHeldNotes = false, string levelName = "")
        {
            if (!System.IO.File.Exists(fileDirectory))
            {
                Console.WriteLine("FILE NOT FOUND");
                return(null);
            }

            SongElements songElements = AudioAnalyzer.GetSongElements(fileDirectory);

            if (removeSingleBeats)
            {
                songElements.SingleBeats.Clear();
            }
            if (removeHeldNotes)
            {
                songElements.HeldNotes.Clear();
            }

            Level level = LevelGenerator.GenerateLevel(songElements);

            level.Name = levelName;

            GameScreen gameScreen = new GameScreen(gameWindow, level, fileDirectory);

            return(gameScreen);
        }
示例#2
0
 private static void Run()
 {
     using (var gameWindow = new MyGameWindow())
     {
         gameWindow.Run();
     }
 }
示例#3
0
        public MainMenuScreen(MyGameWindow gameWindow) : base(gameWindow)
        {
            mainMenuDrawer = new MainMenuDrawer();

            AddKeyToSingleUserActionMapping(Key.Up, UserAction.GoUpInMenu);
            AddKeyToSingleUserActionMapping(Key.W, UserAction.GoUpInMenu);
            AddKeyToSingleUserActionMapping(Key.Down, UserAction.GoDownInMenu);
            AddKeyToSingleUserActionMapping(Key.S, UserAction.GoDownInMenu);
            AddKeyToSingleUserActionMapping(Key.Enter, UserAction.SelectCurrentMenuItem);
            AddKeyToSingleUserActionMapping(Key.Space, UserAction.SelectCurrentMenuItem);

            AddKeyToSingleUserActionMapping(Key.O, UserAction.DecreaseDifficulty);
            AddKeyToSingleUserActionMapping(Key.P, UserAction.IncreaseDifficulty);

            AddSingleUserActionToFunctionMapping(UserAction.GoUpInMenu, GoUpInMenu);
            AddSingleUserActionToFunctionMapping(UserAction.GoDownInMenu, GoDownInMenu);
            AddSingleUserActionToFunctionMapping(UserAction.SelectCurrentMenuItem, SelectCurrentMenuItem);
            AddSingleUserActionToFunctionMapping(UserAction.ImportSong, ImportSong);

            AddSingleUserActionToFunctionMapping(UserAction.DecreaseDifficulty, DecreaseDifficulty);
            AddSingleUserActionToFunctionMapping(UserAction.IncreaseDifficulty, IncreaseDifficulty);

            menuItemXPaddings = new int[numberOfMenuItems];

            menuItemXPaddings[0] = 1;

            for (int i = 1; i < numberOfMenuItems; i++)
            {
                menuItemXPaddings[i] = 0;
            }
        }
示例#4
0
        public static GameScreen CreateTestSongGameScreen(MyGameWindow gameWindow, int songNumber)
        {
            string fileDirectory = @"C:\ForVS\demoSong" + songNumber + ".mp3";

            if (!System.IO.Directory.Exists(@"C:\ForVS"))
            {
                fileDirectory = "demoSong" + songNumber + ".mp3";
            }

            return(CreateImportSongGameScreen(gameWindow, fileDirectory, songNumber == 2, songNumber == 1,
                                              "TestLevel" + songNumber));
        }
示例#5
0
    public MyGameWindow(
        int width, int height,
        GraphicsMode mode,
        string title,
        GameWindowFlags flags,
        DisplayDevice displayDevice,
        int major = 3, int minor = 0,
        GraphicsContextFlags contextFlags = GraphicsContextFlags.ForwardCompatible) :

        base(width, height, mode, title, flags, displayDevice, major, minor, contextFlags)
    {
        Debug.Log("OpenGL Version: " + GL.GetString(StringName.Version));
        if (main == null)
        {
            main = this;
        }
    }
示例#6
0
 public MyGameWindow() :
     this(
         1600,
         900,
         GraphicsMode.Default,
         "Test Window",
         GameWindowFlags.Default,
         DisplayDevice.Default,
         3,
         0,
         GraphicsContextFlags.Default)
 {
     if (main == null)
     {
         main = this;
     }
 }
示例#7
0
        public GameScreen(MyGameWindow gameWindow, Level level, string fileDirectory = "") : base(gameWindow)
        {
            levelAttempt = new LevelAttempt(level);

            gameLogic   = new GameLogic(levelAttempt);
            levelDrawer = new LevelDrawer(levelAttempt.Level);

            AddKeyToSingleUserActionMapping(Key.W, UserAction.Jump);
            AddKeyToSingleUserActionMapping(Key.Space, UserAction.Jump);

            AddKeyToProlongedUserActionMapping(Key.D, UserAction.Defend);
            AddKeyToProlongedUserActionMapping(Key.S, UserAction.Duck);
            AddKeyToProlongedUserActionMapping(Key.ControlLeft, UserAction.Duck);

            AddKeyToSingleUserActionMapping(Key.H, UserAction.ToggleAlwaysDefending);

            AddKeyToSingleUserActionMapping(Key.P, UserAction.TogglePauseGame);
            AddKeyToSingleUserActionMapping(Key.Escape, UserAction.TogglePauseGame);
            AddKeyToSingleUserActionMapping(Key.F10, UserAction.ResetLevel);
            AddKeyToSingleUserActionMapping(Key.N, UserAction.JumpToNextLevel);
            AddKeyToSingleUserActionMapping(Key.X, UserAction.ReturnToMainMenu);

            AddSingleUserActionToFunctionMapping(UserAction.Jump, Jump);
            AddProlongedUserActionToFunctionMapping(UserAction.Duck, Duck);
            AddProlongedUserActionToFunctionMapping(UserAction.Defend, Defend);

            AddSingleUserActionToFunctionMapping(UserAction.ToggleAlwaysDefending, ToggleAlwaysDefending);

            AddSingleUserActionToFunctionMapping(UserAction.ResetLevel, ResetLevel);
            AddSingleUserActionToFunctionMapping(UserAction.TogglePauseGame, TogglePauseGame);
            AddSingleUserActionToFunctionMapping(UserAction.JumpToNextLevel, JumpToNextLevel);
            AddSingleUserActionToFunctionMapping(UserAction.ReturnToMainMenu, ReturnToMainMenu);

            if (fileDirectory.Length > 0)
            {
                musicPlayer = new MusicPlayer(fileDirectory);
                musicPlayer.InitAudio();
            }

            Utils.Logger.StartNewLog(levelAttempt.Level.Name);
        }
    private static void Main(string[] args)
    {
        Debug.Init();

#if DEBUG
        AllocConsole();
#endif

        var window = new MyGameWindow(
            1600,
            900,
            GraphicsMode.Default,
            "Test Application",
            GameWindowFlags.Default,
            DisplayDevice.Default);
        var context = new GraphicsContext(GraphicsMode.Default, window.WindowInfo);

        window.Run(60, 60);

        Console.WriteLine("Program Terminated...");
    }
示例#9
0
        public EngineMain()
        {
            gameWindow = new MyGameWindow(
                1400,
                900,
                new GraphicsMode(),
                "initializing",
                GameWindowFlags.Default,
                DisplayDevice.Default,
                4,
                3,
                GraphicsContextFlags.Default                /*| GraphicsContextFlags.Debug*/
                );

            Singletons.Start(this);
            Singletons.Log.Info("START");

            gameWindow.VSync = VSyncMode.Off;


            //System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.High;
            Thread.CurrentThread.Priority = ThreadPriority.Highest;
        }
示例#10
0
        public static GameScreen CreateTutorialGameScreen(MyGameWindow gameWindow, int tutorialNumber)
        {
            LevelGenerator levelGenerator = new LevelGenerator();

            Level level;

            if (tutorialNumber == 1)
            {
                level = levelGenerator.GenerateFirstTutorialLevel();
            }
            else if (tutorialNumber == 2)
            {
                level = levelGenerator.GenerateSecondTutorialLevel();
            }
            else
            {
                level = levelGenerator.GenerateThirdTutorialLevel();
            }

            GameScreen gameScreen = new GameScreen(gameWindow, level);

            return(gameScreen);
        }
示例#11
0
 public Screen(MyGameWindow gameWindow)
 {
     this.gameWindow = gameWindow;
 }