Major changes
@ -43,7 +43,10 @@
|
||||
"name": "level3"
|
||||
},
|
||||
{
|
||||
"name": "level3"
|
||||
"name": "level4"
|
||||
},
|
||||
{
|
||||
"name": "level5"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -61,6 +64,15 @@
|
||||
},
|
||||
{
|
||||
"name": "level7"
|
||||
},
|
||||
{
|
||||
"name": "level3"
|
||||
},
|
||||
{
|
||||
"name": "level4"
|
||||
},
|
||||
{
|
||||
"name": "level5"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -6,11 +6,12 @@
|
||||
"width": "match_parent",
|
||||
"height": "match_parent",
|
||||
"visible" : 0,
|
||||
"touchTransparency": 0,
|
||||
"horizontalAlignment": "HA_CENTER",
|
||||
"verticalAlignment": "VA_CENTER",
|
||||
"children": [{
|
||||
"type": "VerticalScrollLayout",
|
||||
"name": "leftSidePanel",
|
||||
"name": "panel",
|
||||
"background": "#faf0ffFF",
|
||||
"borderType": "line",
|
||||
"borderColor": "#808080FF",
|
||||
@ -18,17 +19,16 @@
|
||||
"height": "match_parent",
|
||||
"touchTransparency": 0,
|
||||
"zLevel": 10,
|
||||
"marginTop" : 40,
|
||||
"marginBottom" : 40,
|
||||
"paddingTop": 60,
|
||||
"marginTop" : 0,
|
||||
"marginBottom" : 0,
|
||||
"paddingTop": 10,
|
||||
"paddingBottom": 10,
|
||||
"paddingLeft": 10,
|
||||
"paddingRight": 10,
|
||||
"itemSpacing": 20,
|
||||
"children" : [{
|
||||
"type": "HorizontalLinearLayout",
|
||||
"name": "embroiderySettings",
|
||||
"itemSpacing": 30,
|
||||
"name": "row1",
|
||||
"paddingBottom": 15,
|
||||
"paddingTop": 15,
|
||||
"paddingLeft": 15,
|
||||
@ -36,43 +36,43 @@
|
||||
"background": "#faf0ffFF",
|
||||
"borderType": "line",
|
||||
"borderColor": "#808080FF",
|
||||
"width": "wrap_content",
|
||||
"width": 454,
|
||||
"height": "wrap_content",
|
||||
"touchTransparency": 0,
|
||||
"itemSpacing": 20,
|
||||
"visible": 1,
|
||||
"children": [{
|
||||
"type": "Button",
|
||||
"name": "button6",
|
||||
"name": "button0",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level1_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button7",
|
||||
"name": "button1",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level2_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button8",
|
||||
"name": "button2",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level3_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"type": "HorizontalLinearLayout",
|
||||
"name": "embroiderySettings",
|
||||
"itemSpacing": 30,
|
||||
"name": "row2",
|
||||
"itemSpacing": 20,
|
||||
"paddingBottom": 15,
|
||||
"paddingTop": 15,
|
||||
"paddingLeft": 15,
|
||||
@ -80,42 +80,42 @@
|
||||
"background": "#faf0ffFF",
|
||||
"borderType": "line",
|
||||
"borderColor": "#808080FF",
|
||||
"width": "wrap_content",
|
||||
"width": 454,
|
||||
"height": "wrap_content",
|
||||
"touchTransparency": 0,
|
||||
"visible": 1,
|
||||
"children": [{
|
||||
"type": "Button",
|
||||
"name": "button6",
|
||||
"name": "button3",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level4_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button7",
|
||||
"name": "button4",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level5_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button8",
|
||||
"name": "button5",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level6_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"type": "HorizontalLinearLayout",
|
||||
"name": "embroiderySettings",
|
||||
"itemSpacing": 30,
|
||||
"name": "row3",
|
||||
"itemSpacing": 20,
|
||||
"paddingBottom": 15,
|
||||
"paddingTop": 15,
|
||||
"paddingLeft": 15,
|
||||
@ -123,7 +123,7 @@
|
||||
"background": "#faf0ffFF",
|
||||
"borderType": "line",
|
||||
"borderColor": "#808080FF",
|
||||
"width": "wrap_content",
|
||||
"width": 454,
|
||||
"height": "wrap_content",
|
||||
"touchTransparency": 1,
|
||||
"visible": 1,
|
||||
@ -132,7 +132,7 @@
|
||||
"name": "button6",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level7_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
@ -141,7 +141,7 @@
|
||||
"name": "button7",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level8_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
@ -150,15 +150,15 @@
|
||||
"name": "button8",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level9_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"type": "HorizontalLinearLayout",
|
||||
"name": "embroiderySettings",
|
||||
"itemSpacing": 30,
|
||||
"name": "row4",
|
||||
"itemSpacing": 20,
|
||||
"paddingBottom": 15,
|
||||
"paddingTop": 15,
|
||||
"paddingLeft": 15,
|
||||
@ -166,34 +166,34 @@
|
||||
"background": "#faf0ffFF",
|
||||
"borderType": "line",
|
||||
"borderColor": "#808080FF",
|
||||
"width": "wrap_content",
|
||||
"width": 454,
|
||||
"height": "wrap_content",
|
||||
"touchTransparency": 0,
|
||||
"visible": 1,
|
||||
"children": [{
|
||||
"type": "Button",
|
||||
"name": "button6",
|
||||
"name": "button9",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level10_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button7",
|
||||
"name": "button10",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level11_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
},
|
||||
{
|
||||
"type": "Button",
|
||||
"name": "button8",
|
||||
"name": "button11",
|
||||
"width": 128,
|
||||
"height": 80,
|
||||
"background": "level12_prerender",
|
||||
"background": "#00000000",
|
||||
"pressedDrawable": "#60606060",
|
||||
"hoverDrawable": "#60606060"
|
||||
}]
|
||||
|
@ -1,3 +1,4 @@
|
||||
022259762-alien-world.jpg
|
||||
0, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
255, 0, 0, 255
|
||||
@ -18,14 +19,14 @@ Colormap
|
||||
000000000000
|
||||
000000000000
|
||||
Brickmap
|
||||
111111111111
|
||||
111111111111
|
||||
111111111111
|
||||
000000000000
|
||||
111111111111
|
||||
111111111111
|
||||
000000000000
|
||||
111111111111
|
||||
000000000000
|
||||
000000000000
|
||||
000000000000
|
||||
000000000000
|
||||
000000000000
|
||||
000000000000
|
||||
111111111111
|
||||
000000000000
|
||||
000000000000
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock10.png
|
||||
0, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
255, 0, 190, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock11.png
|
||||
255, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
0, 237, 255, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock12.png
|
||||
255, 128, 128, 255
|
||||
0, 0, 0, 255
|
||||
159, 240, 255, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock2.png
|
||||
255, 0, 0, 255
|
||||
0, 0, 0, 255
|
||||
0, 255, 255, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock3.png
|
||||
0, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
0, 151, 113, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock4.png
|
||||
255, 0, 0, 255
|
||||
0, 0, 0, 255
|
||||
101, 97, 255, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock5.png
|
||||
255, 0, 255, 255
|
||||
0, 0, 0, 255
|
||||
163, 255, 198, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock6.png
|
||||
255, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
255, 200, 5, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock7.png
|
||||
255, 255, 0, 255
|
||||
0, 0, 0, 255
|
||||
230, 230, 230, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock8.png
|
||||
0, 255, 255, 255
|
||||
0, 0, 0, 255
|
||||
217, 56, 62, 255
|
||||
|
@ -1,3 +1,4 @@
|
||||
shutterstock9.png
|
||||
0, 255, 0, 255
|
||||
0, 0, 0, 255
|
||||
255, 221, 0, 255
|
||||
|
Before Width: | Height: | Size: 776 KiB After Width: | Height: | Size: 776 KiB |
Before Width: | Height: | Size: 818 KiB After Width: | Height: | Size: 818 KiB |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 4.2 MiB After Width: | Height: | Size: 4.2 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 754 KiB After Width: | Height: | Size: 754 KiB |
Before Width: | Height: | Size: 811 KiB After Width: | Height: | Size: 811 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 739 KiB After Width: | Height: | Size: 739 KiB |
Before Width: | Height: | Size: 725 KiB After Width: | Height: | Size: 725 KiB |
Before Width: | Height: | Size: 390 KiB After Width: | Height: | Size: 390 KiB |
Before Width: | Height: | Size: 840 KiB After Width: | Height: | Size: 840 KiB |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 2.0 MiB |
Before Width: | Height: | Size: 3.6 MiB After Width: | Height: | Size: 3.6 MiB |
Before Width: | Height: | Size: 5.5 MiB After Width: | Height: | Size: 5.5 MiB |
Before Width: | Height: | Size: 9.2 MiB After Width: | Height: | Size: 9.2 MiB |
Before Width: | Height: | Size: 480 KiB After Width: | Height: | Size: 480 KiB |
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 362 KiB |
Before Width: | Height: | Size: 433 KiB After Width: | Height: | Size: 433 KiB |
Before Width: | Height: | Size: 370 KiB After Width: | Height: | Size: 370 KiB |
Before Width: | Height: | Size: 464 KiB After Width: | Height: | Size: 464 KiB |
Before Width: | Height: | Size: 532 KiB After Width: | Height: | Size: 532 KiB |
Before Width: | Height: | Size: 611 KiB After Width: | Height: | Size: 611 KiB |
Before Width: | Height: | Size: 509 KiB After Width: | Height: | Size: 509 KiB |
Before Width: | Height: | Size: 503 KiB After Width: | Height: | Size: 503 KiB |
Before Width: | Height: | Size: 553 KiB After Width: | Height: | Size: 553 KiB |
Before Width: | Height: | Size: 597 KiB After Width: | Height: | Size: 597 KiB |
Before Width: | Height: | Size: 474 KiB After Width: | Height: | Size: 474 KiB |
19
assets/shaders/gui_transparent_blackandwhite.fragment
Executable file
@ -0,0 +1,19 @@
|
||||
precision highp float;
|
||||
|
||||
uniform sampler2D Texture;
|
||||
varying vec2 texCoord;
|
||||
varying vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 texColor = texture2D(Texture,texCoord).rgba;
|
||||
|
||||
|
||||
|
||||
vec4 resultColor = color * texColor.rgba;
|
||||
|
||||
float c = (resultColor.r * 0.3 + resultColor.g * 0.59 + resultColor.b * 0.11);
|
||||
|
||||
|
||||
gl_FragColor = vec4(c,c,c,resultColor.a);
|
||||
}
|
14
assets/shaders/gui_transparent_blackandwhite.vertex
Executable file
@ -0,0 +1,14 @@
|
||||
attribute vec3 vPosition;
|
||||
attribute vec2 vTexCoord;
|
||||
attribute vec4 vColor;
|
||||
varying vec2 texCoord;
|
||||
varying vec4 color;
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
void main()
|
||||
{
|
||||
//480x320
|
||||
gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
|
||||
texCoord = vTexCoord;
|
||||
color = vColor;
|
||||
}
|
@ -52,9 +52,8 @@ bool GalaxyMenu::InitGalaxyMenu(std::string config_json, float scale) {
|
||||
|
||||
std::string levelName = levels_pt.second.get<std::string>("name", "empty");
|
||||
|
||||
TGameLevel lvl;
|
||||
lvl.FillWithFile(ST::PathToResources + levelName + ".txt");
|
||||
lvl.setBackground("shutterstock" + std::to_string(levelIndex++));
|
||||
std::shared_ptr<TGameLevel> lvl = std::make_shared<TGameLevel>();
|
||||
lvl->FillWithFile(ST::PathToResources + levelName + ".txt");
|
||||
|
||||
star.selectionMenu.gameLevels.push_back(lvl);
|
||||
}
|
||||
@ -63,6 +62,7 @@ bool GalaxyMenu::InitGalaxyMenu(std::string config_json, float scale) {
|
||||
galaxies.push_back(galax);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (boost::property_tree::ptree_error) {
|
||||
@ -70,6 +70,9 @@ bool GalaxyMenu::InitGalaxyMenu(std::string config_json, float scale) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
|
||||
/*..Reset..*/
|
||||
galaxies_params.clear();
|
||||
@ -136,106 +139,6 @@ void GalaxyMenu::UpdateGalaxyMenu(float s_width, float s_height, size_t dt) {
|
||||
stars_params.push_back(star_params);
|
||||
}
|
||||
|
||||
/*..Level list geometry..*/
|
||||
for (int i = 0; i < galaxies.size(); i++) {
|
||||
for (int j = 0; j < galaxies[i].Stars.size(); j++) {
|
||||
float button_x_dim = ((1.f - (galaxies[i].Stars[j].selectionMenu.border_x_offset * 2 + (galaxies[i].Stars[j].selectionMenu.columns - 1)*galaxies[i].Stars[j].selectionMenu.buttons_offset)) / galaxies[i].Stars[j].selectionMenu.columns); // relative size
|
||||
int rows_count = (int)ceil((float)galaxies[i].Stars[j].selectionMenu.gameLevels.size() / (float)galaxies[i].Stars[j].selectionMenu.columns);
|
||||
galaxies[i].Stars[j].selectionMenu.params = std::make_pair(
|
||||
Eigen::Vector2f(
|
||||
gameScreenCenter(0) + (galaxies[i].Stars[j].selectionMenu.offset(0) * gameScreenWidth / 2),
|
||||
gameScreenCenter(1) + (galaxies[i].Stars[j].selectionMenu.offset(1) * gameScreenHeight / 2)
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
gameScreenWidth * galaxies[i].Stars[j].selectionMenu.dim(0),
|
||||
//gameScreenHeight * galaxies[i].Stars[j].selectionMenu.dim(1)
|
||||
//gameScreenHeight * galaxies[i].Stars[j].selectionMenu.dim(1) * (galaxies[i].Stars[j].selectionMenu.border_y_offset * 2 + (ceil(galaxies[i].Stars[j].selectionMenu.levels.size() / galaxies[i].Stars[j].selectionMenu.columns) - 1)*galaxies[i].Stars[j].selectionMenu.buttons_offset) + galaxies[i].Stars[j].selectionMenu.dim(0)*(ceil(galaxies[i].Stars[j].selectionMenu.levels.size() / galaxies[i].Stars[j].selectionMenu.columns)*(button_x_dim / galaxies[i].Stars[j].selectionMenu.buttons_ratio))
|
||||
gameScreenWidth * galaxies[i].Stars[j].selectionMenu.dim(0) * (galaxies[i].Stars[j].selectionMenu.border_y_offset * 2 + rows_count*(button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio) + (rows_count-1)*galaxies[i].Stars[j].selectionMenu.border_y_offset)
|
||||
)
|
||||
);
|
||||
/*..buttons plane..*/
|
||||
galaxies[i].Stars[j].selectionMenu.buttons_plane = std::make_pair(
|
||||
Eigen::Vector2f(
|
||||
galaxies[i].Stars[j].selectionMenu.params.first(0) + galaxies[i].Stars[j].selectionMenu.params.second(0) / 2 * galaxies[i].Stars[j].selectionMenu.plane_pos(0),
|
||||
galaxies[i].Stars[j].selectionMenu.params.first(1) + galaxies[i].Stars[j].selectionMenu.params.second(1) / 2 * galaxies[i].Stars[j].selectionMenu.plane_pos(1)
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
galaxies[i].Stars[j].selectionMenu.params.second(0) * galaxies[i].Stars[j].selectionMenu.plane_size(0),
|
||||
galaxies[i].Stars[j].selectionMenu.params.second(1) * galaxies[i].Stars[j].selectionMenu.plane_size(1)
|
||||
)
|
||||
);
|
||||
|
||||
// buttons
|
||||
std::vector<std::pair<Eigen::Vector2f, Eigen::Vector2f>> buttons_params;
|
||||
std::vector<std::vector<GameLevelInterior>> interior_params;
|
||||
int levelsCount = galaxies[i].Stars[j].selectionMenu.gameLevels.size();
|
||||
buttons_params.resize(levelsCount);
|
||||
interior_params.resize(levelsCount);
|
||||
for (int v = 0; v < interior_params.size(); v++) {
|
||||
interior_params[v].resize(CONST_BRICKMATRIX_HEIGHT*CONST_BRICKMATRIX_WIDTH);
|
||||
}
|
||||
for (int y = 0; y < levelsCount; y++) {
|
||||
GameLevelInterior levelInter;
|
||||
|
||||
float x_rpos = (galaxies[i].Stars[j].selectionMenu.border_x_offset + (y - floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns)*(float)galaxies[i].Stars[j].selectionMenu.columns)*(button_x_dim + galaxies[i].Stars[j].selectionMenu.buttons_offset) + button_x_dim/2);
|
||||
//float y_rpos = (/**/ galaxies[i].Stars[j].selectionMenu.border_y_offset + (floor((float)y / (float)galaxies[i].Stars[j].selectionMenu.columns))*(/*..*/ galaxies[i].Stars[j].selectionMenu.buttons_offset + button_x_dim / galaxies[i].Stars[j].selectionMenu.buttons_ratio /*..*/) + button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio/2 /**/);
|
||||
float y_rpos = (galaxies[i].Stars[j].selectionMenu.border_y_offset + ((int)floor(((float)y)/((float)galaxies[i].Stars[j].selectionMenu.columns)))*(button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio) + (((int)floor(((float)y) / ((float)galaxies[i].Stars[j].selectionMenu.columns)))) * galaxies[i].Stars[j].selectionMenu.border_y_offset + ((button_x_dim/galaxies[i].Stars[j].selectionMenu.buttons_ratio)/2.f));
|
||||
|
||||
buttons_params[y] = std::make_pair(
|
||||
Eigen::Vector2f(
|
||||
(galaxies[i].Stars[j].selectionMenu.buttons_plane.first(0) - galaxies[i].Stars[j].selectionMenu.buttons_plane.second(0)/2) + galaxies[i].Stars[j].selectionMenu.buttons_plane.second(0)*x_rpos,
|
||||
(galaxies[i].Stars[j].selectionMenu.buttons_plane.first(1) + galaxies[i].Stars[j].selectionMenu.buttons_plane.second(1)/2) - galaxies[i].Stars[j].selectionMenu.buttons_plane.second(0)*y_rpos
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
button_x_dim*galaxies[i].Stars[j].selectionMenu.buttons_plane.second(0),
|
||||
(button_x_dim / galaxies[i].Stars[j].selectionMenu.buttons_ratio)*galaxies[i].Stars[j].selectionMenu.buttons_plane.second(0)
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
/*..Interior params..*/
|
||||
/*.matrix init.*/
|
||||
int brickMatr[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT];
|
||||
for (int w = 0; w < CONST_BRICKMATRIX_WIDTH; w++)
|
||||
{
|
||||
for (int h = 0; h < CONST_BRICKMATRIX_HEIGHT; h++)
|
||||
{
|
||||
if (galaxies[i].Stars[j].selectionMenu.gameLevels[y].BlockMatrix[w][h].IsAppear()) {
|
||||
brickMatr[w][h] = 1;
|
||||
}
|
||||
else {
|
||||
brickMatr[w][h] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*.params init.*/
|
||||
float brick_w = 0.06f;
|
||||
float brick_ratio = 1.6f;
|
||||
float brick_h = brick_w / brick_ratio;
|
||||
float xb_offset = 0.01f; // x border offset * 0.5
|
||||
float yb_offset = 0.01f; // offset from top
|
||||
int loop_itr = 0;
|
||||
for (int w = 0; w < CONST_BRICKMATRIX_WIDTH; w++) {
|
||||
for (int h = 0; h < CONST_BRICKMATRIX_HEIGHT; h++) {
|
||||
levelInter.position = Eigen::Vector2f(
|
||||
(buttons_params[y].first(0) - buttons_params[y].second(0)*0.5f) + (xb_offset + brick_w * w + brick_w * 0.5f) * buttons_params[y].second(0),
|
||||
(buttons_params[y].first(1) + buttons_params[y].second(1)*0.5f) - (yb_offset + brick_h * h + brick_h * 0.5f)*buttons_params[y].second(1)
|
||||
);
|
||||
levelInter.dimensions = Eigen::Vector2f(
|
||||
buttons_params[y].second(0)*brick_w/* * brickMatr[w][h]*/, //drawable block coefficient - #NOW NEED TO BE FIXED AT (matrix init) sections#
|
||||
buttons_params[y].second(1)*brick_h/* * brickMatr[w][h]*/
|
||||
);
|
||||
//inited
|
||||
interior_params[y][loop_itr++] = levelInter;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
galaxies[i].Stars[j].selectionMenu.levelInterior = interior_params;
|
||||
galaxies[i].Stars[j].selectionMenu.buttons = buttons_params;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Eigen::Vector2f GalaxyMenu::textureSizeNormalize(Eigen::Vector2f texVec, int t_type) {
|
||||
@ -359,6 +262,7 @@ void GalaxyMenu::InteractWithGalaxy(size_t dt) {
|
||||
}
|
||||
|
||||
}
|
||||
/*
|
||||
else if (menuState == 1) { // zoomed galaxy
|
||||
|
||||
}
|
||||
@ -372,7 +276,7 @@ void GalaxyMenu::InteractWithGalaxy(size_t dt) {
|
||||
// OnTapDown->OnMove->
|
||||
//totalTapShift = Eigen::Vector2f(totalTapShift(0) + currentTapShift(0), totalTapShift(1) + currentTapShift(1));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
// \_/\_/\_/\_/ timer active \_/\_/\_/\_/
|
||||
}
|
||||
@ -385,22 +289,19 @@ void GalaxyMenu::InteractWithGalaxy(size_t dt) {
|
||||
|
||||
/*..level select menu open..*/
|
||||
starIndex = findPlanetByPos(lastTapPos);
|
||||
|
||||
|
||||
if (starIndex != -1) {
|
||||
planetHoverIndex = starIndex;
|
||||
menuState = 2;
|
||||
}
|
||||
else {
|
||||
planetHoverIndex = -1;
|
||||
}
|
||||
|
||||
if (starIndex != -1)
|
||||
{
|
||||
Application->SetupGalaxyUi(starIndex);
|
||||
ResourceManager->newGuiManager.findWidgetByName("modal_background")->setVisibility(true);
|
||||
}
|
||||
|
||||
timer_active = false;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}/*
|
||||
else if (menuState == 1) { // zoomed galaxy
|
||||
if (totalTapShift(0) == 0.f && totalTapShift(1) == 0.f) {
|
||||
// OnTapDown->OnTapUp
|
||||
@ -413,6 +314,8 @@ void GalaxyMenu::InteractWithGalaxy(size_t dt) {
|
||||
|
||||
}
|
||||
else if (menuState == 2) { // level select view
|
||||
|
||||
|
||||
if (totalTapShift(0) == 0.f && totalTapShift(1) == 0.f) {
|
||||
// OnTapDown->OnTapUp
|
||||
|
||||
@ -437,7 +340,7 @@ void GalaxyMenu::InteractWithGalaxy(size_t dt) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
// \_/\_/\_/\_/ timer inactive \_/\_/\_/\_/
|
||||
}
|
||||
@ -599,107 +502,6 @@ int GalaxyMenu::findPlanetByPos(Eigen::Vector2f pos) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
void GalaxyMenu::drawSelectionMenu(int index) {
|
||||
int i = index;
|
||||
if (i != -1) {
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList["matte_screen"]);
|
||||
SE::Renderer->DrawRect(
|
||||
Eigen::Vector2f(
|
||||
0.f,
|
||||
0.f
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
(float)SE::Renderer->GetScreenWidth(),
|
||||
(float)SE::Renderer->GetScreenHeight()
|
||||
)
|
||||
); // DrawRect
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList["red_square"]);
|
||||
SE::Renderer->DrawRect(
|
||||
Eigen::Vector2f(
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(0) - galaxies[0].Stars[i].selectionMenu.buttons_plane.second(0) / 2,
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(1) - galaxies[0].Stars[i].selectionMenu.buttons_plane.second(1) / 2
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(0) + galaxies[0].Stars[i].selectionMenu.buttons_plane.second(0) / 2,
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(1) + galaxies[0].Stars[i].selectionMenu.buttons_plane.second(1) / 2
|
||||
)
|
||||
); // DrawRect
|
||||
|
||||
/*..border..*/
|
||||
drawBorder(
|
||||
Eigen::Vector2f(
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(0) - galaxies[0].Stars[i].selectionMenu.buttons_plane.second(0) / 2,
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(1) - galaxies[0].Stars[i].selectionMenu.buttons_plane.second(1) / 2
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(0) + galaxies[0].Stars[i].selectionMenu.buttons_plane.second(0) / 2,
|
||||
galaxies[0].Stars[i].selectionMenu.buttons_plane.first(1) + galaxies[0].Stars[i].selectionMenu.buttons_plane.second(1) / 2
|
||||
),
|
||||
0.005f,
|
||||
"outer" /*..inner/outer/center..mode */
|
||||
);
|
||||
|
||||
// buttons
|
||||
int j = 0;
|
||||
for (auto &button : galaxies[0].Stars[i].selectionMenu.buttons)
|
||||
{
|
||||
|
||||
//std::string levelName = "shutterstock" + galaxies[0].Stars[i].selectionMenu.levels[j].substr(itr + 1);
|
||||
|
||||
//glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList[levelName]);
|
||||
|
||||
std::string &levelName = galaxies[0].Stars[i].selectionMenu.gameLevels[j].levelName;
|
||||
std::string levelPrerender = galaxies[0].Stars[i].selectionMenu.gameLevels[j].levelName + "_prerender";
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, SE::ResourceManager->TexList[levelPrerender]);
|
||||
|
||||
SE::Renderer->DrawRect(
|
||||
Eigen::Vector2f(
|
||||
button.first(0) - button.second(0) / 2,
|
||||
button.first(1) - button.second(1) / 2
|
||||
),
|
||||
Eigen::Vector2f(
|
||||
button.first(0) + button.second(0) / 2,
|
||||
button.first(1) + button.second(1) / 2
|
||||
)
|
||||
); // DrawRect
|
||||
|
||||
/*..draw level interior..*/
|
||||
//drawLevelInterior(i,j);
|
||||
|
||||
/*std::list<std::pair<PairColorTexture, TTriangleList>>::iterator colorBlockIterator;
|
||||
for (colorBlockIterator = galaxies[0].Stars[i].selectionMenu.levelInterior[j].BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != galaxies[0].Stars[i].selectionMenu.levelInterior[j].BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator)
|
||||
{
|
||||
RenderUniform4fv("BrickColor", colorBlockIterator->first.first.data());
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList[colorBlockIterator->first.second]);
|
||||
|
||||
Renderer->DrawTriangleList(colorBlockIterator->second);
|
||||
}*/
|
||||
|
||||
++j;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
TGameLevel* GalaxyMenu::findLevelByButtonPos(Eigen::Vector2f pos) {
|
||||
for (int i = 0; i < galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons.size(); i++) {
|
||||
float x_l = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].first(0) - galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].second(0)*0.5f;
|
||||
float x_r = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].first(0) + galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].second(0)*0.5f;
|
||||
float y_t = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].first(1) + galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].second(1)*0.5f;
|
||||
float y_b = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].first(1) - galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons[i].second(1)*0.5f;
|
||||
|
||||
if (pos(0) >= x_l && pos(0) <= x_r) {
|
||||
if (pos(1) >= y_b && pos(1) <= y_t) {
|
||||
return &galaxies[galaxyIndex].Stars[starIndex].selectionMenu.gameLevels[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool GalaxyMenu::checkMenuBound(Eigen::Vector2f pos) {
|
||||
float x_l = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons_plane.first(0) - galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons_plane.second(0)*0.5f;
|
||||
float x_r = galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons_plane.first(0) + galaxies[galaxyIndex].Stars[starIndex].selectionMenu.buttons_plane.second(0)*0.5f;
|
||||
|
@ -27,6 +27,8 @@ public:
|
||||
bool InitGalaxyMenu(std::string config_json, float scale = 1.f);
|
||||
void DrawGalaxyMenu();
|
||||
void UpdateGalaxyMenu(float s_width, float s_height, size_t dt);
|
||||
|
||||
|
||||
// ======== Main Methods ========
|
||||
|
||||
void InteractWithGalaxy(size_t dt); // Prototype for mouse/tap events
|
||||
@ -79,11 +81,10 @@ private:
|
||||
void takeInFocus(int g_index, int s_index = -1);
|
||||
int findGalaxyByPos(Eigen::Vector2f pos);
|
||||
int findPlanetByPos(Eigen::Vector2f pos);
|
||||
TGameLevel* findLevelByButtonPos(Eigen::Vector2f pos);
|
||||
|
||||
bool checkMenuBound(Eigen::Vector2f pos);
|
||||
|
||||
/*..draw methodes..*/
|
||||
void drawSelectionMenu(int index);
|
||||
void drawBorder(Eigen::Vector2f lb_, Eigen::Vector2f rt_, float scale, std::string mode);
|
||||
void drawLevelInterior(int star = -1, int button = -1);
|
||||
|
||||
|
@ -12,7 +12,7 @@ public:
|
||||
|
||||
/*..LEVELS..*/
|
||||
/*..levels interior info..*/
|
||||
std::vector<TGameLevel> gameLevels;
|
||||
std::vector<std::shared_ptr<TGameLevel>> gameLevels;
|
||||
std::vector<std::vector<GameLevelInterior>> levelInterior;
|
||||
|
||||
// #params
|
||||
|
@ -442,7 +442,7 @@ void TBall::Update(size_t dt)
|
||||
TGameLevel::TGameLevel()
|
||||
{
|
||||
|
||||
BkgTexture = "bkg";
|
||||
BkgTexture = "";
|
||||
|
||||
RenderBufferReady = false;
|
||||
PrevLevelStateIsStandby = false;
|
||||
@ -623,6 +623,18 @@ void TGameLevel::ReloadLevel()
|
||||
}
|
||||
|
||||
std::vector<std::string>::iterator rowIterator = rows.begin();
|
||||
|
||||
|
||||
if (BkgTexture != "")
|
||||
{
|
||||
ResourceManager->TexList.DeleteTexture(BkgTexture);
|
||||
}
|
||||
BkgTexture = *rowIterator;
|
||||
|
||||
ResourceManager->TexList.AddTexture("level_background/" + BkgTexture);
|
||||
|
||||
++rowIterator;
|
||||
|
||||
BallColor = ParseColor(*rowIterator);
|
||||
++rowIterator;
|
||||
|
||||
@ -668,11 +680,11 @@ void TGameLevel::ReloadLevel()
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
void TGameLevel::setBackground(const std::string& textureName)
|
||||
{
|
||||
BkgTexture = textureName;
|
||||
LevelScreenTexture = textureName;
|
||||
}
|
||||
}*/
|
||||
|
||||
void TGameLevel::FillWithFile(const std::string& filename)
|
||||
{
|
||||
@ -759,27 +771,33 @@ void TGameLevel::drawOutline(int screenWidth, int screenHeight) {
|
||||
);
|
||||
}
|
||||
|
||||
void TGameLevel::DrawSnapshot(const std::string& assignedSnapshotFrameBuffer)
|
||||
void TGameLevel::DrawSnapshot(const std::string& assignedSnapshotFrameBuffer, bool blackAndWhite)
|
||||
{
|
||||
InitLevel(768, 480);
|
||||
|
||||
int prevState = LevelState;
|
||||
LevelState = CONST_LEVELSTATE_SNAPSHOTTING;
|
||||
InnerDraw(768, 480, 768, 480);
|
||||
InnerDraw(768, 480, 768, 480, blackAndWhite);
|
||||
LevelState = prevState;
|
||||
|
||||
prerenderedImage =
|
||||
ResourceManager->FrameManager.GetFrameTextureCopy(assignedSnapshotFrameBuffer, levelName + "_prerender");
|
||||
std::string texName = levelName + "_prerender";
|
||||
|
||||
if (blackAndWhite)
|
||||
{
|
||||
texName += "_blackandwhite";
|
||||
}
|
||||
|
||||
prerenderedImage = ResourceManager->FrameManager.GetFrameTextureCopy(assignedSnapshotFrameBuffer, texName);
|
||||
}
|
||||
|
||||
|
||||
void TGameLevel::Draw()
|
||||
{
|
||||
InnerDraw(Renderer->GetScreenWidth(), Renderer->GetScreenHeight(), Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight());
|
||||
InnerDraw(Renderer->GetScreenWidth(), Renderer->GetScreenHeight(), Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight(), false);
|
||||
}
|
||||
|
||||
|
||||
void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight)
|
||||
void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight, bool blackAndWhite)
|
||||
{
|
||||
|
||||
// Scaling math
|
||||
@ -815,9 +833,9 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
Renderer->TranslateMatrix(Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
|
||||
Renderer->ScaleMatrix(scale);
|
||||
Renderer->TranslateMatrix(-Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[LevelScreenTexture]);
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[levelName + "_prerendered"]);
|
||||
Renderer->DrawRect(Vector2f(xlOffset, ylOffset), Vector2f(xlOffset+tSW, ylOffset+tSH), Vector2f (0.f,0.f), Vector2f(1.f,1.f)); // Game Screen Scale
|
||||
Renderer->PopMatrix();
|
||||
Renderer->PopMatrix();
|
||||
CheckGlError();
|
||||
return;
|
||||
}
|
||||
@ -830,7 +848,7 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
|
||||
bool renderBufferReady = RenderBufferReady;
|
||||
|
||||
/*
|
||||
|
||||
if (pause && renderBufferReady)
|
||||
{
|
||||
|
||||
@ -847,6 +865,8 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
}
|
||||
Renderer->PopMatrix();
|
||||
CheckGlError();
|
||||
|
||||
drawOutline(screenWidth, screenHeight);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -858,7 +878,7 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
|
||||
CheckGlError();
|
||||
}*/
|
||||
}
|
||||
|
||||
// Level background
|
||||
// :::::::::::
|
||||
@ -907,7 +927,16 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
std::list<std::pair<PairColorTexture, TTriangleList>>::iterator colorBlockIterator;
|
||||
for (colorBlockIterator = BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator)
|
||||
{
|
||||
RenderUniform4fv("BrickColor", colorBlockIterator->first.first.data());
|
||||
Vector4f color = colorBlockIterator->first.first;
|
||||
|
||||
if (blackAndWhite)
|
||||
{
|
||||
float c = (color(0) * 0.3 + color(1) * 0.59 + color(2) * 0.11);
|
||||
color(0) = c;
|
||||
color(1) = c;
|
||||
color(2) = c;
|
||||
}
|
||||
RenderUniform4fv("BrickColor", color.data());
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[colorBlockIterator->first.second]);
|
||||
|
||||
Renderer->DrawTriangleList(colorBlockIterator->second);
|
||||
@ -923,7 +952,9 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
|
||||
Application->EffectsDraw();
|
||||
|
||||
DrawBallInstancingList();
|
||||
|
||||
|
||||
DrawBallInstancingList(blackAndWhite);
|
||||
|
||||
Renderer->PopShader();
|
||||
|
||||
@ -962,7 +993,7 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
}
|
||||
|
||||
|
||||
/*/
|
||||
|
||||
if (!pause && LevelState != CONST_LEVELSTATE_SNAPSHOTTING)
|
||||
{
|
||||
RenderUniform1f("Transparency", 1.f);
|
||||
@ -972,19 +1003,21 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
const float const_backBtnHeight = CONST_BACK_BTN_HEIGHT * Application->GetGameLevelScreenHeight()/320.f;
|
||||
Renderer->DrawRect(Vector2f(-const_backBtnWidth*0.5f, -const_backBtnHeight*0.5f)+BackBtnPos, Vector2f(const_backBtnWidth*0.5f, const_backBtnHeight*0.5f)+BackBtnPos);
|
||||
}
|
||||
|
||||
drawOutline(screenWidth, screenHeight);
|
||||
|
||||
|
||||
if (pause && !renderBufferReady)
|
||||
{
|
||||
|
||||
|
||||
//ololo
|
||||
//See also above (same method)
|
||||
Renderer->SwitchToScreen();
|
||||
Renderer->SetFullScreenViewport();
|
||||
|
||||
Renderer->PushMatrix();
|
||||
//Renderer->LoadIdentity();
|
||||
Renderer->TranslateMatrix(Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
|
||||
//Renderer->TranslateMatrix(Vector3f(Application->GetGameLevelScreenWidth(), Application->GetGameLevelScreenHeight(), 0));
|
||||
Renderer->ScaleMatrix(OutScale);
|
||||
Renderer->TranslateMatrix(-Vector3f(matrixWidth * 0.5f, matrixHeight * 0.5f, 0));
|
||||
DrawBuffer();
|
||||
@ -995,12 +1028,11 @@ void TGameLevel::InnerDraw(int screenWidth, int screenHeight, int matrixWidth, i
|
||||
Renderer->PopMatrix();
|
||||
RenderBufferReady = true;
|
||||
CheckGlError();
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
drawOutline(screenWidth, screenHeight);
|
||||
|
||||
|
||||
|
||||
CheckGlError();
|
||||
}
|
||||
@ -1016,11 +1048,22 @@ void TGameLevel::DrawPauseButtons() //continue from
|
||||
|
||||
}
|
||||
|
||||
void TGameLevel::DrawBallInstancingList()
|
||||
void TGameLevel::DrawBallInstancingList(bool blackAndWhite)
|
||||
{
|
||||
|
||||
RenderUniform1f("Transparency", 1.f);
|
||||
RenderUniform4fv("BrickColor", BallColor.data());
|
||||
|
||||
Vector4f color = BallColor;
|
||||
|
||||
if (blackAndWhite)
|
||||
{
|
||||
float c = (color(0) * 0.3 + color(1) * 0.59 + color(2) * 0.11);
|
||||
color(0) = c;
|
||||
color(1) = c;
|
||||
color(2) = c;
|
||||
}
|
||||
|
||||
RenderUniform4fv("BrickColor", color.data());
|
||||
|
||||
if (BonusGothroughTimer > 0.f)
|
||||
{
|
||||
@ -1237,11 +1280,11 @@ void TGameLevel::Update(size_t dt)
|
||||
//Bonus floor pos
|
||||
if (BonusFloorTimer/CONST_BONUS_GOTHROUGH_TIME < 0.2f)
|
||||
{
|
||||
//Bonus must go down until 0.f
|
||||
if (BonusFloorPosY > 0.f)
|
||||
//Bonus must go down until - 20.f
|
||||
if (BonusFloorPosY > -20.f)
|
||||
{
|
||||
BonusFloorPosY -= CONST_BONUS_FLOOR_APPEAR_SPEED * dt / 1000.f;
|
||||
BonusFloorPosY = max_t(BonusFloorPosY, 0.f);
|
||||
BonusFloorPosY = max_t(BonusFloorPosY, -20.f);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ const float CONST_BONUS_CATCH_DISTANCE_X = 65.f;
|
||||
const float CONST_BONUS_CATCH_DISTANCE_Y = 20.f;
|
||||
|
||||
const float CONST_BONUS_FLOOR_TIME = 8000.f;
|
||||
const float CONST_BONUS_FLOOR_APPEAR_SPEED = 50.f;
|
||||
const float CONST_BONUS_FLOOR_APPEAR_SPEED = 80.f;
|
||||
|
||||
const int CONST_BONUS_TYPE_MULTIPLIER = 0;
|
||||
const int CONST_BONUS_TYPE_GOTHROUGH = 1;
|
||||
@ -127,7 +127,7 @@ protected:
|
||||
float lvlWidth;
|
||||
float lvlHeight;
|
||||
std::string BkgTexture;
|
||||
std::string LevelScreenTexture;
|
||||
//std::string LevelScreenTexture;
|
||||
std::string LevelFileName;
|
||||
|
||||
GLuint prerenderedImage;
|
||||
@ -152,7 +152,7 @@ protected:
|
||||
void DrawBuffer();
|
||||
void DrawPauseButtons();
|
||||
|
||||
void DrawBallInstancingList();
|
||||
void DrawBallInstancingList(bool blackAndWhite);
|
||||
|
||||
void drawOutline(int screenWidth, int screenHeight);
|
||||
|
||||
@ -194,7 +194,7 @@ public:
|
||||
~TGameLevel();
|
||||
|
||||
void FillWithFile(const std::string& filename);
|
||||
void setBackground(const std::string& assignedShutterstock);
|
||||
//void setBackground(const std::string& assignedShutterstock);
|
||||
|
||||
//void SetLevelScale();
|
||||
//Vector2f GetLevelScale();
|
||||
@ -204,8 +204,8 @@ public:
|
||||
bool IsLoaded();
|
||||
|
||||
virtual void Draw();
|
||||
void InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight);
|
||||
void DrawSnapshot(const std::string& assignedSnapshotFrameBuffer);
|
||||
void InnerDraw(int screenWidth, int screenHeight, int matrixWidth, int matrixHeight, bool blackAndWhite);
|
||||
void DrawSnapshot(const std::string& assignedSnapshotFrameBuffer, bool blackAndWhite);
|
||||
|
||||
void SetPause();
|
||||
bool IsPaused();
|
||||
|
@ -61,8 +61,8 @@ void TMyApplication::InnerInit()
|
||||
|
||||
#ifdef TARGET_WIN32
|
||||
#ifdef NDEBUG
|
||||
//ST::PathToResources = "resources/";
|
||||
ST::PathToResources = "../../../assets/";
|
||||
ST::PathToResources = "resources/";
|
||||
//ST::PathToResources = "../../../assets/";
|
||||
#else
|
||||
ST::PathToResources = "../../../assets/";
|
||||
#endif
|
||||
@ -93,6 +93,7 @@ void TMyApplication::InnerInit()
|
||||
|
||||
//ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/texture-shader.vertex", "shaders/texture-shader.fragment");
|
||||
ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/gui_transparent.vertex", "shaders/gui_transparent.fragment");
|
||||
ResourceManager->ShaderManager.AddShader("BlackAndWhiteShader", "shaders/gui_transparent_blackandwhite.vertex", "shaders/gui_transparent_blackandwhite.fragment");
|
||||
ResourceManager->ShaderManager.AddShader("ColorShader", "shaders/color-shader.vertex", "shaders/color-shader.fragment");
|
||||
ResourceManager->ShaderManager.AddShader("FrameShader", "shaders/frameshader_vertex.txt", "shaders/frameshader_fragment.txt");
|
||||
ResourceManager->ShaderManager.AddShader("BrickShader", "shaders/brickshader_vertex.txt", "shaders/brickshader_fragment.txt");
|
||||
@ -107,7 +108,7 @@ void TMyApplication::InnerInit()
|
||||
ResourceManager->TexList.AddTexture("white.bmp");
|
||||
|
||||
|
||||
ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512);
|
||||
ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 256, 256);
|
||||
|
||||
//OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
Inited = true;
|
||||
@ -125,7 +126,7 @@ void TMyApplication::InnerInit()
|
||||
ResourceManager->FontManager.PushFont("lucon12");
|
||||
//ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json");
|
||||
ResourceManager->newGuiManager.LoadFromConfig("gui_loading.json");
|
||||
//SetButtonsAction();
|
||||
|
||||
// ------- UI -------
|
||||
|
||||
// TESTS of menu
|
||||
@ -266,7 +267,7 @@ void TMyApplication::LoadResources()
|
||||
boost::property_tree::ptree Textures_pt = SE::ReadJsonFile(ST::PathToResources + "bg_textures_config.json");
|
||||
//boost::property_tree::json_parser::read_json(ST::PathToResources + "bg_textures_config.json", Textures_pt);
|
||||
|
||||
std::string bg_ext = ".jpeg";
|
||||
std::string bg_ext = ".jpg";
|
||||
|
||||
// :::::::::::::::::::::::::::::::::::::
|
||||
|
||||
@ -450,8 +451,8 @@ void TMyApplication::InnerUpdate(size_t dt)
|
||||
TextureNamesToLoad.erase(TextureNamesToLoad.begin());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
|
||||
Renderer->SwitchToFrameBuffer("LevelBuffer");
|
||||
|
||||
@ -461,23 +462,27 @@ void TMyApplication::InnerUpdate(size_t dt)
|
||||
|
||||
for (auto &star : Menu.GalaxMenu.galaxies[0].Stars)
|
||||
{
|
||||
for (auto &level : star.selectionMenu.gameLevels)
|
||||
for (auto level : star.selectionMenu.gameLevels)
|
||||
{
|
||||
level.DrawSnapshot("LevelBuffer");
|
||||
break;
|
||||
level->DrawSnapshot("LevelBuffer", false);
|
||||
|
||||
Renderer->PushShader("BlackAndWhiteShader");
|
||||
|
||||
level->DrawSnapshot("LevelBuffer", true);
|
||||
|
||||
Renderer->PopShader();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Renderer->SwitchToScreen();
|
||||
|
||||
Renderer->SetOrthoProjection();
|
||||
|
||||
GameState = CONST_GAMESTATE_MENU;
|
||||
ApplySignalsToMenu();
|
||||
ResourceManager->newGuiManager.Clear();
|
||||
ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json");
|
||||
//OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
GameState = CONST_GAMESTATE_MENU;
|
||||
ApplySignalsToMenu();
|
||||
|
||||
LoadGalaxyUi();
|
||||
|
||||
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
StateTimer = 0.f;
|
||||
Loaded = true;
|
||||
@ -540,7 +545,122 @@ void TMyApplication::InnerUpdate(size_t dt)
|
||||
}
|
||||
|
||||
|
||||
void TMyApplication::GoFromMenuToGame(TGameLevel* level)
|
||||
|
||||
void TMyApplication::LoadGalaxyUi()
|
||||
{
|
||||
ResourceManager->newGuiManager.Clear();
|
||||
ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json");
|
||||
|
||||
std::shared_ptr<WidgetAncestor> modal_background = ResourceManager->newGuiManager.findWidgetByName("modal_background");
|
||||
|
||||
modal_background->onMouseUpSignal.connect(
|
||||
[modal_background](Vector2f v, int i) {
|
||||
modal_background->visible = false;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TMyApplication::SetupGalaxyUi(size_t levelStar)
|
||||
{
|
||||
std::shared_ptr<WidgetAncestor> modal_background = ResourceManager->newGuiManager.findWidgetByName("modal_background");
|
||||
|
||||
|
||||
std::shared_ptr<WidgetAncestor> row2 = ResourceManager->newGuiManager.findWidgetByName("row2");
|
||||
std::shared_ptr<WidgetAncestor> row3 = ResourceManager->newGuiManager.findWidgetByName("row3");
|
||||
std::shared_ptr<WidgetAncestor> row4 = ResourceManager->newGuiManager.findWidgetByName("row4");
|
||||
|
||||
size_t levelCount = this->Menu.GalaxMenu.galaxies[0].Stars[levelStar].selectionMenu.gameLevels.size();
|
||||
|
||||
if (levelCount <= 3)
|
||||
{
|
||||
row2->setVisibility(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
row2->setVisibility(true);
|
||||
}
|
||||
|
||||
if (levelCount <= 6)
|
||||
{
|
||||
row3->setVisibility(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
row3->setVisibility(true);
|
||||
}
|
||||
|
||||
|
||||
if (levelCount <= 9)
|
||||
{
|
||||
row4->setVisibility(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
row4->setVisibility(true);
|
||||
}
|
||||
|
||||
|
||||
std::string levelStarString = boost::lexical_cast<std::string>(levelStar);
|
||||
|
||||
|
||||
for (size_t levelIndex = 0; levelIndex < 12; levelIndex++)
|
||||
{
|
||||
|
||||
std::string levelIndexString = boost::lexical_cast<std::string>(levelIndex);
|
||||
|
||||
std::shared_ptr<WidgetAncestor> currentLevelButton = ResourceManager->newGuiManager.findWidgetByName("button" + levelIndexString);
|
||||
|
||||
|
||||
currentLevelButton->onMouseUpSignal.disconnect_all_slots();
|
||||
|
||||
|
||||
|
||||
if (levelIndex < levelCount)
|
||||
{
|
||||
|
||||
std::string levelName = this->Menu.GalaxMenu.galaxies[0].Stars[levelStar].selectionMenu.gameLevels[levelIndex]->levelName;
|
||||
|
||||
|
||||
if (IsLevelOpened(levelStar, levelIndex))
|
||||
{
|
||||
|
||||
currentLevelButton->setVisibility(true);
|
||||
|
||||
currentLevelButton->setBackground(levelName + "_prerender");
|
||||
|
||||
currentLevelButton->onMouseUpSignal.connect(
|
||||
[this, modal_background, levelStar, levelIndex](Vector2f v, int i) {
|
||||
modal_background->visible = false;
|
||||
|
||||
std::shared_ptr<TGameLevel> lvl = this->Menu.GalaxMenu.galaxies[0].Stars[levelStar].selectionMenu.gameLevels[levelIndex];
|
||||
lvl->ReloadLevel();
|
||||
this->GoFromMenuToGame(lvl);
|
||||
});
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
currentLevelButton->setBackground(levelName + "_prerender_blackandwhite");
|
||||
}
|
||||
|
||||
//currentLevelButton->OnMouseUp(Vector2f(), 0);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
currentLevelButton->setVisibility(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TMyApplication::GoFromMenuToGame(std::shared_ptr<TGameLevel> level)
|
||||
{
|
||||
//#ifndef TARGET_IOS
|
||||
// ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg");
|
||||
@ -637,14 +757,7 @@ float TMyApplication::GetGameLevelScreenHeight()
|
||||
}
|
||||
|
||||
void TMyApplication::InnerOnMouseDown(TMouseState& mouseState) {
|
||||
/*
|
||||
if (mouseState.LeftButtonPressed) {
|
||||
if ((float)mouseState.X >= (Renderer->GetScreenWidth())*0.25f && (float)mouseState.X <= (Renderer->GetScreenWidth())*0.75f && (float)mouseState.Y >= (Renderer->GetScreenHeight())*0.25f && (float)mouseState.Y <= (Renderer->GetScreenHeight())*0.75f) {
|
||||
// some tmp code
|
||||
Application->GoFromMenuToGame(1);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
OnTapDownSignal(Vector2f(mouseState.X, ((Renderer->GetScreenHeight()) - mouseState.Y))); // Temp mouse down action for WIN32
|
||||
}
|
||||
|
||||
@ -652,6 +765,22 @@ void TMyApplication::InnerOnMouseMove(TMouseState& mouseState) {
|
||||
|
||||
}
|
||||
|
||||
bool TMyApplication::IsLevelOpened(int levelStar, int levelIndex)
|
||||
{
|
||||
if (levelStar == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (levelStar == 1 && levelIndex < 3)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void TMyApplication::EffectsInit() {
|
||||
|
||||
boost::property_tree::ptree JSONsource;
|
||||
@ -738,13 +867,3 @@ void TMyApplication::fireworkEffect() {
|
||||
lvlFirework.stopSpawn();
|
||||
lvlFirework.startSpawn();
|
||||
}
|
||||
|
||||
void TMyApplication::SetButtonsAction () {
|
||||
auto backBtn = ResourceManager->newGuiManager.findWidgetByName("backButton");
|
||||
if (backBtn) {
|
||||
backBtn->onMouseDownSignal.connect([this, backBtn](Vector2f pos, int touchNumber) {
|
||||
this->GameLevel->SetPause();
|
||||
this->GameLevel->PrevLevelStateIsStandby = true;
|
||||
});
|
||||
}
|
||||
}
|
@ -98,7 +98,7 @@ protected:
|
||||
ParticleEffect lvlFirework; // Level finished effect
|
||||
|
||||
TGameMenu Menu;
|
||||
TGameLevel* GameLevel;
|
||||
std::shared_ptr<TGameLevel> GameLevel;
|
||||
TGameCredits GameCredits;
|
||||
TGameLoading GameLoading;
|
||||
|
||||
@ -119,13 +119,20 @@ protected:
|
||||
void ApplySignalsToCredits();
|
||||
void DisapplySignalsToCredits();
|
||||
|
||||
|
||||
|
||||
void EffectsInit();
|
||||
|
||||
|
||||
|
||||
// Mouse new methods
|
||||
virtual void InnerOnMouseDown(TMouseState& mouseState);
|
||||
virtual void InnerOnMouseMove(TMouseState& mouseState);
|
||||
|
||||
bool IsLevelOpened(int levelStar, int levelIndex);
|
||||
|
||||
|
||||
|
||||
public:
|
||||
bool Loaded;
|
||||
|
||||
@ -139,7 +146,7 @@ public:
|
||||
|
||||
virtual void InnerUpdate(size_t dt);
|
||||
|
||||
void GoFromMenuToGame(TGameLevel* level);
|
||||
void GoFromMenuToGame(std::shared_ptr<TGameLevel> gameLevel);
|
||||
void GoFromGameToMenu();
|
||||
void GoFromMenuToCredits();
|
||||
void GoFromCreditsToMenu();
|
||||
@ -180,7 +187,9 @@ public:
|
||||
float GetGameLevelScreenHeight();
|
||||
void SetGameLevelScreenScale();
|
||||
|
||||
void SetButtonsAction();
|
||||
|
||||
void LoadGalaxyUi();
|
||||
void SetupGalaxyUi(size_t levelStar);
|
||||
};
|
||||
|
||||
|
||||
|