//Super Segd World //Game.cpp //Main Program #include "DXHandle.h" #include "Background.h" #include "Player.h" #include "Enemy.h" #include "Controls.h" #include "Items.h" #include "HUD.h" #include "GameStates.h" #include "TitleScreen.h" //title of app const string APPTITLE = "Super Segd World"; //Game Initialisation bool Game_Init(HWND window) { //set random number seed srand(time(NULL)); //Initialise Direct 3D for use, return error message if something goes wrong if (!Direct3D_Init(window, SCREENW, SCREENH, false)) { MessageBox(0, "Error initialising Direct3D", "Error", 0); return false; } //Initialise Direct Input for use, return error message if something goes wrong if (!DirectInput_Init(window)) { MessageBox(0, "Error initialising DirectInput", "Error", 0); return false; } //Initialise Direct Sound for use, return error message if something goes wrong if (!Init_DirectSound(window)) { MessageBox(0, "Error initialising DirectSound", "Error", 0); return false; } //load sprite textures loadStartScreen(); //-----------------------------------------------------MARIO Mario_obj = LoadTexture("marioimage.png", bgcolour); errorWithLoad("marioimage.png", Mario_obj); //-----------------------------------------------------ITEMS ItemBlock_obj = LoadTexture("itemblock.png", bgcolour); errorWithLoad("itemblock.png", ItemBlock_obj); CoinBlock_obj = LoadTexture("coinblock.png", bgcolour); //also used for plain block errorWithLoad("coinblock.png", CoinBlock_obj); Items_obj = LoadTexture("items.png", bgcolour); errorWithLoad("items.png", Items_obj); Coins_obj = LoadTexture("coin.png", bgcolour); errorWithLoad("coin.png", Coins_obj); GoalPosts_obj = LoadTexture("goalposts.png", bgcolour); errorWithLoad("goalposts.png", GoalPosts_obj); GoalBar_obj = LoadTexture("goalbar.png", bgcolour); errorWithLoad("goalbar.png", GoalBar_obj); Fireball_obj = LoadTexture("fireball.png", bgcolour); errorWithLoad("fireball.png", Fireball_obj); //---------------------------------------------------ENEMIES RedShell_obj = LoadTexture("spinredshell.png", bgcolour); errorWithLoad("spinredshell.png", RedShell_obj); RedTurtle_obj = LoadTexture("redturtle.png", bgcolour); errorWithLoad("returtle.png", RedTurtle_obj); Thwomp_obj = LoadTexture("thwomp.png", bgcolour); errorWithLoad("thwomp.png", Thwomp_obj); BulletBill_obj = LoadTexture("bulletbill.png", bgcolour); errorWithLoad("bulletbill.png", BulletBill_obj); ReznorBackground_obj = LoadTexture("reznorbackground.png", bgcolour); errorWithLoad("reznorbackground.png", ReznorBackground_obj); ReznorPlatform_obj = LoadTexture("reznorplatform.png", bgcolour); errorWithLoad("reznorplatform.png", ReznorPlatform_obj); Reznor_obj = LoadTexture("reznor.png", bgcolour); errorWithLoad("reznor.png", Reznor_obj); ReznorFireball_obj = LoadTexture("reznorfireball.png", bgcolour); errorWithLoad("reznor.png", ReznorFireball_obj); //-------------------------------------------------------HUD HUD_obj = LoadTexture("huddisplay.png", bgcolour); errorWithLoad("huddisplay.png", HUD_obj); ItemBoxHUD_obj = LoadTexture("iteminbox_hud.png", bgcolour); errorWithLoad("iteminbox_hud.png", ItemBoxHUD_obj); //set properties for sprites //-----------------------------------------------------MARIO Mario.setValues(10, 465, 7, 16, 40, 60, 7, 15, 0, 2, 2, 1, 1, health1, 0); createMarioRect(); //-------------------------------------------------------HUD createHUDvalues(); //-----------------------------------------------------ITEMS createItemBlocks(); createItems(); createCoinBlocks(); createPlainBlocks(); createCoinsForCoinBlocks(); createCoinsForPlainBlocks(); createGoalPosts(); //---------------------------------------------------ENEMIES createRedShells(); createRedTurtles(); createThwomps(); createBulletBills(); createReznor(); //load background image buildBackground(); //music loadmusic(); //get the back buffer surface d3ddev->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer); return true; } //Game Update void Game_Run(HWND window) { //run gamestates startGame(); //display back buffer on the screen d3ddev->Present(NULL, NULL, NULL, NULL); //escape key exits if (Key_Down(DIK_ESCAPE)) gameover = true; //controller back button also exits if (controllers[0].wButtons & XINPUT_GAMEPAD_BACK) gameover = true; } //Game Shutdown void Game_End() { //free memory and shut down HUDShutdown(); enemyObjShutdown(); itemObjShutdown(); playerObjShutdown(); backgroundShutdown(); DirectInput_Shutdown(); Direct3D_Shutdown(); }
Super SEGD World Main Game Loop
Written primarily in C++ (utilising C elements) this is the main game loop of my Super Mario World Clone, created for the second assignment of 2D Games Programming.