Cleanups to button and the main scene.

This commit is contained in:
Relintai 2021-04-15 00:39:57 +02:00
parent d825deb190
commit 894687ed06
4 changed files with 1 additions and 42 deletions

View File

@ -40,10 +40,6 @@ void Button::event(const SDL_Event &ev) {
if (on_click) {
on_click();
}
if (on_click_member) {
on_click_member(cls);
}
} else {
state = BUTTON_STATE_UP;
}

View File

@ -22,15 +22,8 @@ public:
void update(float delta);
void render();
//ver a: (Csak statikus fv állítható be rá)
std::function<void(void)> on_click;
//ver b: (Képes osztályok függvényeit is meghívni)
//Meg lehet oldani sokféleképp, egyik sem annyira szép sajnos
//mindneképp érdemes lenne setter mögé rejteni ezeket
void* cls;
std::function<void(void*)> on_click_member;
Button();
virtual ~Button();

View File

@ -25,24 +25,9 @@ void MainScene::render() {
b2->render();
b3->render();
//_s->draw();
//_s2->draw();
_ts->draw();
}
void MainScene::on_first_button_clicked() {
printf("Click!\n");
}
void MainScene::on_first_button_clicked_member(void* cls) {
if (cls) {
reinterpret_cast<MainScene*>(cls)->member_print();
}
}
void MainScene::member_print() {
printf("Click Member!\n");
}
MainScene::MainScene() {
_camera = new Camera();
_image = new Image("ti.bmp");
@ -64,14 +49,8 @@ MainScene::MainScene() {
b1->up = new Sprite(_texture);
b1->down = new Sprite(_texture, Color(100, 100, 100));
b1->hover = new Sprite(_texture, Color(200, 200, 200));
//b1->on_click = MainScene::on_first_button_clicked;
//a verzió lambda 1 (this-nélkül):
//b1->on_click = []() -> void { printf("Click lambda!"); };
//a verzió lambda 2 (this-el):
b1->on_click = [this]() -> void { this->member_print(); };
//b1->on_click = [this]() -> void { this->member_print(); };
b2 = new Button();
b2->transform = Rect2(0, 110, 100, 100);
@ -83,8 +62,6 @@ MainScene::MainScene() {
b3->up = new Sprite(_texture);
b3->down = new Sprite(_texture, Color(100, 100, 100));
b3->hover = new Sprite(_texture, Color(200, 200, 200));
b3->cls = this;
b3->on_click_member = MainScene::on_first_button_clicked_member;
}
MainScene::~MainScene() {

View File

@ -18,13 +18,6 @@ public:
void update(float delta);
void render();
//ver a
static void on_first_button_clicked();
//ver b
static void on_first_button_clicked_member(void* cls);
void member_print();
MainScene();
~MainScene();