Skip to content
Snippets Groups Projects
Commit cfcb8462 authored by Hamar János's avatar Hamar János
Browse files

gyalog beváltás

parent 31aa1168
No related branches found
No related tags found
No related merge requests found
...@@ -13,7 +13,7 @@ Dropdown::Dropdown(int x, int y, int extentx, int extenty, vector<string> option ...@@ -13,7 +13,7 @@ Dropdown::Dropdown(int x, int y, int extentx, int extenty, vector<string> option
_extentx = extentx; _extentx = extentx;
_extenty = extenty; _extenty = extenty;
_mod = 1; _mod = 1;
_number = 0; _number = -1;
_scroll = 0; _scroll = 0;
} }
...@@ -30,103 +30,103 @@ void Dropdown::image() ...@@ -30,103 +30,103 @@ void Dropdown::image()
void Dropdown::operate(event ev) void Dropdown::operate(event ev)
{ {
gout << move_to(_x, _y) << color(128, 128, 128) << box(_extentx, _extenty) << move_to(_x, _y + _extenty * 0.8) << color(255, 255, 255) << text(_options[_number]); bool run = true;
gout << move_to(_x + _extentx - _extenty + 3, _y + 3) << color(255, 255, 255) << box(_extenty - 6, _extenty - 6); while (gin >> ev && run)
if (ev.type == ev_key && ev.keycode == key_down) {
// Drawing dropdown items
for (int i = 0; i < 4; ++i) {
int y_offset = _y + (i * (_extenty + 5));
gout << move_to(_x, y_offset) << color(128, 128, 128) << box(_extentx, _extenty);
gout << move_to(_x, y_offset + _extenty * 0.8) << color(255, 255, 255) << text(_options[i]);
}
gout << refresh;
// Event handling
if (ev.type == ev_mouse && ev.button == btn_left)
{
cout << "Mouse clicked at: " << ev.pos_x << " , " << ev.pos_y << endl;
for (int i = 0; i < 4; ++i)
{ {
if(_scroll != _options.size()-_limit+1) int y_offset = _y + (i * (_extenty + 5));
if (ev.pos_x >= _x && ev.pos_x <= _x + _extentx &&
ev.pos_y >= y_offset && ev.pos_y <= y_offset + _extenty)
{ {
_scroll +=1; cout << "Option " << i << " clicked" << endl; // Debug print
_number = i;
run = false; // Set run to false to exit the loop
break; // Break the loop as we found the clicked option
} }
} }
if (ev.type == ev_key && ev.keycode == key_up) }
{ if(_number != -1)
if(_scroll > 0)
{ {
_scroll -=1; run = false;
break;
} }
} }
int szam = _scroll; /*
for (int i = _y + _extenty + 2; i < _y + _limit * (_extenty + 2); i += _extenty + 2) bool run = true;
while (gin >> ev and run)
{ {
gout << color(128, 128, 128); // Drawing dropdown items
if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx) for (int i = 0; i < 4; ++i) {
int y_offset = _y + (i * (_extenty + 5));
gout << move_to(_x, y_offset) << color(128, 128, 128) << box(_extentx, _extenty);
gout << move_to(_x, y_offset + _extenty * 0.8) << color(255, 255, 255) << text(_options[i]);
}
gout << refresh;
// Event handling
if (ev.type == ev_mouse && ev.button == btn_left)
{ {
if (ev.pos_y >= i and ev.pos_y <= i + _extenty) cout << "Mouse clicked at: " << ev.pos_x << " , " << ev.pos_y << endl;
for (int i = 0; i < 4; ++i)
{
int y_offset = _y + (i * (_extenty + 5));
if (ev.pos_x >= _x && ev.pos_x <= _x + _extentx &&
ev.pos_y >= y_offset && ev.pos_y <= y_offset + _extenty)
{ {
gout << color(50, 50, 50); _number = i;
run = false;
break;
} }
} }
gout << move_to(_x, i) << box(_extentx, _extenty);
gout << move_to(_x + 5, i + _extenty * 0.7) << color(255, 255, 255) << text(_options[szam]);
szam += 1;
} }
gout << refresh; }
*/
} }
void Dropdown::reset(event ev) void Dropdown::reset(event ev)
{ {
gout << move_to(_x, _y) << color(0, 0, 0) << box((_extentx), (_extenty + 3) * 5); gout << move_to(_x, _y) << color(0, 0, 0) << box((_extentx), (_extenty + 3) * 5);
image(); image();
cout << _number << "igazsag asd" <<endl;
if (_mod == 2) if (_mod == 2)
{ {
int szam = _scroll; int szam = _scroll;
for (int i = _y + _extenty + 2; i < _y + _limit * (_extenty + 2); i += _extenty + 2) for (int i = _y + _extenty + 2; i < _y + _limit * (_extenty + 2); i += _extenty + 2)
{
if(ev.type == ev_mouse && ev.button == btn_left)
{ {
if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx) if (ev.pos_x >= _x and ev.pos_x <= _x + _extentx)
{ {
if (ev.pos_y >= i and ev.pos_y <= i + _extenty) if (ev.pos_y >= i and ev.pos_y <= i + _extenty)
{ {
_number = szam; _number = szam;
cout << _number << "igazsag" <<endl;
break; break;
} }
} }
}
szam += 1; szam += 1;
} }
} }
image();
} }
bool Dropdown::is_chosen(int mx, int my, event ev) bool Dropdown::is_chosen(int mx, int my, event ev)
{ {
switch (_mod)
{
case 1:
if (mx >= (_x + _extentx - _extenty) and mx <= (_x + _extentx - 3))
{
if (my >= _y + 3 and my <= _y + _extenty - 3)
{
_mod = 2;
return true;
}
reset(ev);
return false;
}
reset(ev);
return false;
break;
case 2:
if (mx >= _x and mx <= _x + _extentx)
{
if (my >= _y + _extenty + 3 and my <= (_y + _extenty + 3) * 4)
{
reset(ev);
_mod = 1;
return false;
}
_mod = 1;
reset(ev);
return false;
}
_mod = 1;
reset(ev);
return false;
break;
default:
_mod = 1;
reset(ev);
return false; return false;
break;
}
} }
...@@ -23,8 +23,8 @@ public: ...@@ -23,8 +23,8 @@ public:
void init_pieces() void init_pieces()
{ {
// Fehér bábuk inicializálása // Fehér bábuk inicializálása
/*
r1_1 = new Rook(this, 0, 0, true); r1_1 = new Rook(this, 0, 0, true);
kn1_1 = new Knight(this, 80, 0, true); kn1_1 = new Knight(this, 80, 0, true);
b1_1 = new Bishop(this, 160, 0, true); b1_1 = new Bishop(this, 160, 0, true);
k1 = new King(this, 240, 0, true); k1 = new King(this, 240, 0, true);
...@@ -32,6 +32,7 @@ public: ...@@ -32,6 +32,7 @@ public:
b1_2 = new Bishop(this, 400, 0, true); b1_2 = new Bishop(this, 400, 0, true);
kn1_2 = new Knight(this, 480, 0, true); kn1_2 = new Knight(this, 480, 0, true);
r1_2 = new Rook(this, 560, 0, true); r1_2 = new Rook(this, 560, 0, true);
*/
p1_1 = new Pawn(this, 0, 80, true); p1_1 = new Pawn(this, 0, 80, true);
p1_2 = new Pawn(this, 80, 80, true); p1_2 = new Pawn(this, 80, 80, true);
p1_3 = new Pawn(this, 160, 80, true); p1_3 = new Pawn(this, 160, 80, true);
...@@ -40,9 +41,10 @@ public: ...@@ -40,9 +41,10 @@ public:
p1_6 = new Pawn(this, 400, 80, true); p1_6 = new Pawn(this, 400, 80, true);
p1_7 = new Pawn(this, 480, 80, true); p1_7 = new Pawn(this, 480, 80, true);
p1_8 = new Pawn(this, 560, 80, true); p1_8 = new Pawn(this, 560, 80, true);
p1_8 = new Pawn(this, 560, 150, true);
// Fekete bábuk inicializálása // Fekete bábuk inicializálása
/*
r2_1 = new Rook(this, 0, 560, false); r2_1 = new Rook(this, 0, 560, false);
kn2_1 = new Knight(this, 80, 560, false); kn2_1 = new Knight(this, 80, 560, false);
b2_1 = new Bishop(this, 160, 560, false); b2_1 = new Bishop(this, 160, 560, false);
...@@ -51,6 +53,7 @@ public: ...@@ -51,6 +53,7 @@ public:
b2_2 = new Bishop(this, 400, 560, false); b2_2 = new Bishop(this, 400, 560, false);
kn2_2 = new Knight(this, 480, 560, false); kn2_2 = new Knight(this, 480, 560, false);
r2_2 = new Rook(this, 560, 560, false); r2_2 = new Rook(this, 560, 560, false);
*/
p2_1 = new Pawn(this, 0, 480, false); p2_1 = new Pawn(this, 0, 480, false);
p2_2 = new Pawn(this, 80, 480, false); p2_2 = new Pawn(this, 80, 480, false);
p2_3 = new Pawn(this, 160, 480, false); p2_3 = new Pawn(this, 160, 480, false);
......
...@@ -427,18 +427,22 @@ ...@@ -427,18 +427,22 @@
} }
} }
} }
if ((_color && _y == 560) || (!_color && _y == 0)) { //mukodik de nem elég simán fut
cout << '1' << endl; if ((_color && _y == 560) || (!_color && _y == 0))
event ev1; {
vector<string> options = {"Queen", "Rook", "Bishop", "Knight"}; // A választható opciók listája vector<string> options = {"Queen", "Rook", "Bishop", "Knight"};
Dropdown Dropdown(100,100,100,30, options,4); // Létrehozzuk a Dropdown objektumot Dropdown Dropdown(100, 100, 100, 30, options, 5);
while (true) { // A ciklus addig fut, amíg valamilyen választás nem történik while (true)
{
event ev_dropdown; event ev_dropdown;
gin >> ev_dropdown; gin >> ev_dropdown;
Dropdown.operate(ev_dropdown); // Kezeljük az eseményeket a dropdown menüben Dropdown.operate(ev_dropdown);
if(ev_dropdown.type == ev_mouse && ev_dropdown.button == btn_left)
{
break;
}
} }
cout << Dropdown.ret() << " szam " <<endl; reset(run);
switch (Dropdown.ret()) switch (Dropdown.ret())
{ {
case 0: case 0:
...@@ -468,7 +472,6 @@ ...@@ -468,7 +472,6 @@
default: default:
break; break;
} }
} }
gout << refresh; gout << refresh;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment