| AntiVi (1) | |
|
Hello World! (see what i did there?) I have been trying to make a model for a game main screen. (when you first open the game) I have a background (painted on screen as a bitmap) I have a button. I have a button picture (for when the mouse is not over the button) and I have an inverted button picture (for when the mouse hovers over the button) I have been looking around for an answer online but everything i find i don't understand at all. With the code beneath i expected the picture to be painted above the button and when i pressed the button it would change to the inverted image but i failed. Problem one: I can't get the button picture to cover the actual press-able button on the screen. Problem two: I don't know how to paint while my mouse is hovering over the button. Thank you for the help in advance and lets hope that i learn from this! Here is the code that i have now: // Datamembers Bitmap *m_BmpBackgroundPtr, *m_BmpButtonNewGamePtr, *m_BmpButtonNewGameInvertedPtr; Button *m_BtnNewgamePtr; In the cpp section MadThieves::MadThieves(): //Bitmaps m_BmpBackgroundPtr(nullptr), m_BmpButtonNewGamePtr(nullptr), m_BmpButtonNewGameInvertedPtr(nullptr), //Buttons m_BtnNewgamePtr(nullptr) { // nothing to create } void MadThieves::GameStart() { //Buttons m_BtnNewgamePtr = new Button("New Game"); m_BtnNewgamePtr->SetBounds(760, 400, 400, 50); m_BtnNewgamePtr->SetFont("verdana", true, true, false, 18); m_BtnNewgamePtr->AddActionListener(this); m_BtnNewgamePtr->Show(); //Bitmaps m_BmpBackgroundPtr = new Bitmap("Background.png"); m_BmpButtonNewGamePtr = new Bitmap("ButtonNewGame.png"); m_BmpButtonNewGameInvertedPtr = new Bitmap("ButtonNewGameInverted.png"); // Insert the code that needs to be executed at the start of the game } void MadThieves::GamePaint(RECT rect) { //Bitmaps GAME_ENGINE->DrawBitmap(m_BmpBackgroundPtr,0,0); GAME_ENGINE->DrawBitmap(m_BmpButtonNewGamePtr,0,0); // Insert the code that needs to be executed each time a new frame needs to be drawn to the screen // Technical note: engine uses double buffering when the gamecycle is running } void MadThieves::CallAction(Caller* callerPtr) { if(callerPtr == m_BtnNewgamePtr) { delete m_BmpButtonNewGamePtr; m_BmpButtonNewGameInvertedPtr = new Bitmap("ButtonNewGameInverted.png"); GAME_ENGINE->DrawBitmap(m_BmpButtonNewGameInvertedPtr,0,0); } // Insert the code that needs to be executed when a Caller has to perform an action } | |
|
|
|