Ist etwas schwer das ganze darzustellen aber ich versuche es mal.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "Game.h"
Game::Game(){
engine = new Engine();
engine->Init(S_GAMETITLE, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, B_FULLSCREEN);
//SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "1" );
}
Game::~Game(){
}
void Game::MainMenue(){
btn_Test = engine->guiEngine->AddButton();
btn_Test->SetCaption("Test");
btn_Test->GetRect()->w = 200;
btn_Test->GetRect()->h = 140;
btn_Test->GetRect()->x = (WINDOW_WIDTH / 2) - (btn_Test->GetRect()->w / 2);
btn_Test->GetRect()->y = (WINDOW_HEIGHT / 2) - (btn_Test->GetRect()->h / 2);
btn_Test->_GetFont()->SetSize(30);
btn_Test->_GetFont()->SetFontType(ftCalibri);
//Hier soll das Event gesetzt werden
btn_Test->SetOnClickEvent(click);
//Menue loop
while (engine->isRunning){
engine->EventHandler();
engine->Update();
engine->Draw();
//60 FPS
SDL_Delay(16);
}
delete engine;
}
//Hier soll das Event aufgerufen werden, wenn der Button geklickt wird
void Game::click(){
std::cout << "Button Test wurde geklickt" << std::endl;
}
|
Hier ist die Deklaration der Methode. Leider muss ich eine Klasse angeben und kann nicht frei wählen so wie in Delphi
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include "Sprite.h"
#include "Font.h"
#include <SDL.h>
#include <SDL_ttf.h>
#pragma once
class BasicComponent{
public:
//####################### Deklaration des Methodentypes #######################
typedef void(BasicComponent::*fcNotifyEvent)();
BasicComponent();
~BasicComponent();
virtual void Update();
void EventHandler(SDL_Event* event);
void _SetLayer(int value);
void _SetSprite(Sprite* sprite);
void _SetFont(Font* font);
int _GetLayer();
Sprite* _GetSprite();
Font* _GetFont();
void SetOnClickEvent(fcNotifyEvent* clickEvent);
fcNotifyEvent* GetOnClickEvent();
private:
Sprite* sprite = NULL;
Font* font = NULL;
int layer = 0;
fcNotifyEvent* OnClick = nullptr;
};
|
Es handelt sich hierbei nicht wirklich um eine Engine, sondern um ein versuch ein kleines Spiel zu entwickeln.
Wollte es dieses mal etwas strukturierter angehen als beim letztem Spiel.
Seit bitte nicht zu hart zu mir, ich komme aus der Delphi Welt