diff --git a/assets/back_btn.png b/assets/back_btn.png deleted file mode 100755 index 4176c8b..0000000 Binary files a/assets/back_btn.png and /dev/null differ diff --git a/assets/ball.png b/assets/ball.png deleted file mode 100755 index 4a2cfc5..0000000 Binary files a/assets/ball.png and /dev/null differ diff --git a/assets/ball_glow.png b/assets/ball_glow.png deleted file mode 100755 index 5fc1138..0000000 Binary files a/assets/ball_glow.png and /dev/null differ diff --git a/assets/block1.png b/assets/block1.png deleted file mode 100755 index 8cd98ae..0000000 Binary files a/assets/block1.png and /dev/null differ diff --git a/assets/block2.png b/assets/block2.png deleted file mode 100755 index d38c770..0000000 Binary files a/assets/block2.png and /dev/null differ diff --git a/assets/block3.png b/assets/block3.png deleted file mode 100755 index 2faf8e7..0000000 Binary files a/assets/block3.png and /dev/null differ diff --git a/assets/bonus_floor.png b/assets/bonus_floor.png deleted file mode 100755 index 58648e9..0000000 Binary files a/assets/bonus_floor.png and /dev/null differ diff --git a/assets/bonus_gothrough.png b/assets/bonus_gothrough.png deleted file mode 100755 index a7eb20c..0000000 Binary files a/assets/bonus_gothrough.png and /dev/null differ diff --git a/assets/bonus_multiplier.png b/assets/bonus_multiplier.png deleted file mode 100755 index 4efbc80..0000000 Binary files a/assets/bonus_multiplier.png and /dev/null differ diff --git a/assets/brickshader_fragment.txt b/assets/brickshader_fragment.txt deleted file mode 100755 index ab2ef56..0000000 --- a/assets/brickshader_fragment.txt +++ /dev/null @@ -1,15 +0,0 @@ -precision mediump float; -uniform sampler2D Texture; -uniform float Transparency; -uniform vec4 BrickColor; -varying vec2 texCoord; - -void main() -{ - vec4 color = BrickColor * texture2D(Texture,texCoord).rgba; - - gl_FragColor = vec4(color.rgb, color.a * Transparency); - - - -} \ No newline at end of file diff --git a/assets/brickshader_vertex.txt b/assets/brickshader_vertex.txt deleted file mode 100755 index 72d9f46..0000000 --- a/assets/brickshader_vertex.txt +++ /dev/null @@ -1,12 +0,0 @@ -attribute vec3 vPosition; -attribute vec2 vTexCoord; -varying vec2 texCoord; - -uniform mat4 ProjectionMatrix; - -void main() -{ - //480x320 - gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0); - texCoord = vTexCoord; -} \ No newline at end of file diff --git a/assets/console_bkg.bmp b/assets/console_bkg.bmp deleted file mode 100755 index d32ee4c..0000000 Binary files a/assets/console_bkg.bmp and /dev/null differ diff --git a/assets/credits.png b/assets/credits.png deleted file mode 100755 index 6debee7..0000000 Binary files a/assets/credits.png and /dev/null differ diff --git a/assets/frameshader_fragment.txt b/assets/frameshader_fragment.txt deleted file mode 100755 index 2781075..0000000 --- a/assets/frameshader_fragment.txt +++ /dev/null @@ -1,12 +0,0 @@ -precision mediump float; -uniform sampler2D Texture; -uniform float Brightness; -varying vec2 texCoord; - -void main() -{ - vec3 color = texture2D(Texture,texCoord).rgb; - - gl_FragColor = vec4(color * Brightness, 1.0); - -} \ No newline at end of file diff --git a/assets/frameshader_vertex.txt b/assets/frameshader_vertex.txt deleted file mode 100755 index 72d9f46..0000000 --- a/assets/frameshader_vertex.txt +++ /dev/null @@ -1,12 +0,0 @@ -attribute vec3 vPosition; -attribute vec2 vTexCoord; -varying vec2 texCoord; - -uniform mat4 ProjectionMatrix; - -void main() -{ - //480x320 - gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0); - texCoord = vTexCoord; -} \ No newline at end of file diff --git a/assets/game_end.png b/assets/game_end.png deleted file mode 100755 index e7fb288..0000000 Binary files a/assets/game_end.png and /dev/null differ diff --git a/assets/level1.txt b/assets/level1.txt deleted file mode 100755 index 1cfbdae..0000000 --- a/assets/level1.txt +++ /dev/null @@ -1,33 +0,0 @@ -0, 255, 255, 255 -0, 0, 0, 255 -255, 0, 0, 255 -255, 40, 40, 255 -255, 128, 128, 255 -Colormap -111111111111 -111111111111 -111111111111 -222222222222 -222222222222 -222222222222 -222222222222 -333333333333 -333333333333 -333333333333 -000000000000 -000000000000 -000000000000 -Brickmap -111111111111 -111111111111 -111111111111 -000000000000 -111111111111 -111111111111 -000000000000 -111111111111 -111111111111 -000000000000 -000000000000 -000000000000 -000000000000 \ No newline at end of file diff --git a/assets/level10.txt b/assets/level10.txt deleted file mode 100755 index 85caa92..0000000 --- a/assets/level10.txt +++ /dev/null @@ -1,32 +0,0 @@ -0, 255, 255, 255 -0, 0, 0, 255 -255, 0, 190, 255 -255, 0, 255, 255 -Colormap -002222222200 -002222222200 -000222222000 -000022220000 -111002200111 -111100001111 -011110011110 -001111111100 -000111111000 -000011110000 -000001100000 -000000000000 -000000000000 -Brickmap -002111111200 -002211112200 -000221122000 -000022220000 -111002200111 -221100001122 -022110011220 -002211112200 -000221122000 -000022220000 -000002200000 -000000000000 -000000000000 diff --git a/assets/level11.txt b/assets/level11.txt deleted file mode 100755 index e9570db..0000000 --- a/assets/level11.txt +++ /dev/null @@ -1,33 +0,0 @@ -255, 255, 255, 255 -0, 0, 0, 255 -0, 237, 255, 255 -0, 144, 255, 255 -0, 59, 255, 255 -Colormap -333333333333 -333333333333 -333333333333 -000000000000 -222220022222 -222220022222 -222220022222 -000000000000 -111110011111 -111110011111 -111110011111 -000000000000 -000000000000 -Brickmap -111111111111 -111111111111 -222222222222 -000000000000 -111110011111 -111110011111 -222220022222 -000000000000 -111110011111 -111110011111 -333330033333 -000000000000 -000000000000 diff --git a/assets/level12.txt b/assets/level12.txt deleted file mode 100755 index 3284830..0000000 --- a/assets/level12.txt +++ /dev/null @@ -1,32 +0,0 @@ -255, 128, 128, 255 -0, 0, 0, 255 -159, 240, 255, 255 -0, 148, 255, 255 -Colormap -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -Brickmap -000311113000 -000311113000 -333311113333 -111111111111 -111111111111 -222221122222 -333321123333 -000321123000 -000321123000 -000322223000 -000333333000 -000000000000 -000000000000 diff --git a/assets/level1ogg.ogg b/assets/level1ogg.ogg deleted file mode 100755 index ce86d31..0000000 Binary files a/assets/level1ogg.ogg and /dev/null differ diff --git a/assets/level2.txt b/assets/level2.txt deleted file mode 100755 index c1bd395..0000000 --- a/assets/level2.txt +++ /dev/null @@ -1,32 +0,0 @@ -255, 0, 0, 255 -0, 0, 0, 255 -0, 255, 255, 255 -7, 255, 189, 255 -Colormap -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -111111111111 -222222222222 -000000000000 -Brickmap -111011110111 -111011110111 -222022220222 -000000000000 -111011110111 -222022220222 -000000000000 -111000000111 -222000000222 -000000000000 -222222222222 -000000000000 -000000000000 diff --git a/assets/level3.txt b/assets/level3.txt deleted file mode 100755 index 8a9521e..0000000 --- a/assets/level3.txt +++ /dev/null @@ -1,33 +0,0 @@ -0, 255, 255, 255 -0, 0, 0, 255 -0, 151, 113, 255 -7, 255, 189, 255 -128, 143, 128, 255 -Colormap -000000000000 -033333333330 -031111111130 -031111111130 -033333333330 -000000000000 -033330033330 -032230032230 -032230032230 -033330033330 -000000000000 -000000000000 -000000000000 -Brickmap -000000000000 -022222222220 -021111111120 -021111111120 -022222222220 -000000000000 -022220022220 -021120021120 -021120021120 -022220022220 -000000000000 -000000000000 -000000000000 diff --git a/assets/level4.txt b/assets/level4.txt deleted file mode 100755 index 7c83fc1..0000000 --- a/assets/level4.txt +++ /dev/null @@ -1,33 +0,0 @@ -255, 0, 0, 255 -0, 0, 0, 255 -101, 97, 255, 255 -5, 186, 255, 255 -105, 201, 255, 255 -Colormap -000000333333 -000003333333 -000033311111 -333333133333 -333331333333 -333313333333 -111133311111 -333333100000 -333331000000 -333310000000 -111100000000 -000000000000 -000000000000 -Brickmap -000000111111 -000001111111 -000011133333 -111111311111 -111113111111 -111131111111 -333311133333 -111111300000 -111113000000 -111130000000 -333300000000 -000000000000 -000000000000 diff --git a/assets/level5.txt b/assets/level5.txt deleted file mode 100755 index 1a5d7c4..0000000 --- a/assets/level5.txt +++ /dev/null @@ -1,32 +0,0 @@ -255, 0, 255, 255 -0, 0, 0, 255 -163, 255, 198, 255 -0, 255, 182, 255 -Colormap -000022220000 -000222222000 -000022220000 -111000000111 -111100001111 -111110011111 -111111111111 -111111111111 -111111111111 -111111111111 -000000000000 -000000000000 -000000000000 -Brickmap -000033330000 -000311113000 -000033330000 -111000000111 -111100001111 -111110011111 -111111111111 -111111111111 -111111111111 -222222222222 -000000000000 -000000000000 -000000000000 diff --git a/assets/level6.txt b/assets/level6.txt deleted file mode 100755 index cf32e5e..0000000 --- a/assets/level6.txt +++ /dev/null @@ -1,33 +0,0 @@ -255, 255, 255, 255 -0, 0, 0, 255 -255, 200, 5, 255 -255, 153, 0, 255 -255, 97, 0, 255 -Colormap -000000000000 -000333000333 -000333000333 -000333000333 -222000222000 -222000222000 -222000222000 -000111000111 -000111000111 -000111000111 -000000000000 -000000000000 -000000000000 -Brickmap -000000000000 -000222000222 -000212000212 -000222000222 -222000222000 -212000212000 -222000222000 -000222000222 -000212000212 -000222000222 -000000000000 -000000000000 -000000000000 diff --git a/assets/level7.txt b/assets/level7.txt deleted file mode 100755 index 5a11037..0000000 --- a/assets/level7.txt +++ /dev/null @@ -1,33 +0,0 @@ -255, 255, 0, 255 -0, 0, 0, 255 -230, 230, 230, 255 -195, 195, 195, 255 -150, 150, 150, 255 -Colormap -333333333333 -030030030030 -030030030030 -030030030030 -222222222222 -020020020020 -020020020020 -010010010010 -010010010010 -020020020020 -000000000000 -000000000000 -000000000000 -Brickmap -111111111111 -010010010010 -010010010010 -010010010010 -222222222222 -010010010010 -010010010010 -010010010010 -010010010010 -020020020020 -000000000000 -000000000000 -000000000000 diff --git a/assets/level8.txt b/assets/level8.txt deleted file mode 100755 index 8e97e38..0000000 --- a/assets/level8.txt +++ /dev/null @@ -1,32 +0,0 @@ -0, 255, 255, 255 -0, 0, 0, 255 -217, 56, 62, 255 -132, 56, 62, 255 -Colormap -111111111111 -111111111111 -222211112222 -000211112000 -000211112000 -022211112220 -021111111120 -021111111120 -021111111120 -022222222220 -000000000000 -000000000000 -000000000000 -Brickmap -111111111111 -111111111111 -222211112222 -000211112000 -000211112000 -022211112220 -021111111120 -021111111120 -021111111120 -033333333330 -000000000000 -000000000000 -000000000000 diff --git a/assets/level9.txt b/assets/level9.txt deleted file mode 100755 index e698b59..0000000 --- a/assets/level9.txt +++ /dev/null @@ -1,32 +0,0 @@ -0, 255, 0, 255 -0, 0, 0, 255 -255, 221, 0, 255 -255, 0, 0, 255 -Colormap -222220022222 -222220022222 -222220022222 -222220022222 -000000000000 -111111111111 -111111111111 -000000000000 -111111111111 -111111111111 -000000000000 -000000000000 -000000000000 -Brickmap -111110011111 -111110011111 -111110011111 -222220022222 -000000000000 -111111111111 -333333333333 -000000000000 -111111111111 -222222222222 -000000000000 -000000000000 -000000000000 diff --git a/assets/levelshot1.png b/assets/levelshot1.png deleted file mode 100755 index 48471ef..0000000 Binary files a/assets/levelshot1.png and /dev/null differ diff --git a/assets/levelshot10.png b/assets/levelshot10.png deleted file mode 100755 index de464ec..0000000 Binary files a/assets/levelshot10.png and /dev/null differ diff --git a/assets/levelshot11.png b/assets/levelshot11.png deleted file mode 100755 index 96bf193..0000000 Binary files a/assets/levelshot11.png and /dev/null differ diff --git a/assets/levelshot12.png b/assets/levelshot12.png deleted file mode 100755 index 4696264..0000000 Binary files a/assets/levelshot12.png and /dev/null differ diff --git a/assets/levelshot2.png b/assets/levelshot2.png deleted file mode 100755 index a9872d8..0000000 Binary files a/assets/levelshot2.png and /dev/null differ diff --git a/assets/levelshot3.png b/assets/levelshot3.png deleted file mode 100755 index 02e5a20..0000000 Binary files a/assets/levelshot3.png and /dev/null differ diff --git a/assets/levelshot4.png b/assets/levelshot4.png deleted file mode 100755 index f17800d..0000000 Binary files a/assets/levelshot4.png and /dev/null differ diff --git a/assets/levelshot5.png b/assets/levelshot5.png deleted file mode 100755 index a80ca69..0000000 Binary files a/assets/levelshot5.png and /dev/null differ diff --git a/assets/levelshot6.png b/assets/levelshot6.png deleted file mode 100755 index a21edcc..0000000 Binary files a/assets/levelshot6.png and /dev/null differ diff --git a/assets/levelshot7.png b/assets/levelshot7.png deleted file mode 100755 index 3875a7a..0000000 Binary files a/assets/levelshot7.png and /dev/null differ diff --git a/assets/levelshot8.png b/assets/levelshot8.png deleted file mode 100755 index 6f99af8..0000000 Binary files a/assets/levelshot8.png and /dev/null differ diff --git a/assets/levelshot9.png b/assets/levelshot9.png deleted file mode 100755 index 4fd00ec..0000000 Binary files a/assets/levelshot9.png and /dev/null differ diff --git a/assets/loading.png b/assets/loading.png deleted file mode 100755 index 482d602..0000000 Binary files a/assets/loading.png and /dev/null differ diff --git a/assets/loading_background_black.png b/assets/loading_background_black.png deleted file mode 100755 index 22296a1..0000000 Binary files a/assets/loading_background_black.png and /dev/null differ diff --git a/assets/logo_small.png b/assets/logo_small.png deleted file mode 100755 index 4596028..0000000 Binary files a/assets/logo_small.png and /dev/null differ diff --git a/assets/main_menu_bkg_left.png b/assets/main_menu_bkg_left.png deleted file mode 100755 index afd94ec..0000000 Binary files a/assets/main_menu_bkg_left.png and /dev/null differ diff --git a/assets/main_menu_bkg_right.png b/assets/main_menu_bkg_right.png deleted file mode 100755 index 066d439..0000000 Binary files a/assets/main_menu_bkg_right.png and /dev/null differ diff --git a/assets/reflector.png b/assets/reflector.png deleted file mode 100755 index 6d3bcd2..0000000 Binary files a/assets/reflector.png and /dev/null differ diff --git a/assets/select_level.png b/assets/select_level.png deleted file mode 100755 index 9e2ee25..0000000 Binary files a/assets/select_level.png and /dev/null differ diff --git a/assets/shader1fragment.txt b/assets/shader1fragment.txt deleted file mode 100755 index 523790e..0000000 --- a/assets/shader1fragment.txt +++ /dev/null @@ -1,14 +0,0 @@ -precision mediump float; -uniform sampler2D Texture; -uniform float Transparency; -varying vec2 texCoord; - -void main() -{ - vec4 color = texture2D(Texture,texCoord).rgba; - - gl_FragColor = vec4(color.rgb, color.a * Transparency); - - - -} \ No newline at end of file diff --git a/assets/shutterstock1.png b/assets/shutterstock1.png deleted file mode 100755 index a9f949a..0000000 Binary files a/assets/shutterstock1.png and /dev/null differ diff --git a/assets/shutterstock10.png b/assets/shutterstock10.png deleted file mode 100755 index e028dd6..0000000 Binary files a/assets/shutterstock10.png and /dev/null differ diff --git a/assets/shutterstock11.png b/assets/shutterstock11.png deleted file mode 100755 index 51f626e..0000000 Binary files a/assets/shutterstock11.png and /dev/null differ diff --git a/assets/shutterstock12.png b/assets/shutterstock12.png deleted file mode 100755 index badbbe0..0000000 Binary files a/assets/shutterstock12.png and /dev/null differ diff --git a/assets/shutterstock2.png b/assets/shutterstock2.png deleted file mode 100755 index c6ffbb5..0000000 Binary files a/assets/shutterstock2.png and /dev/null differ diff --git a/assets/shutterstock3.png b/assets/shutterstock3.png deleted file mode 100755 index 22b11ba..0000000 Binary files a/assets/shutterstock3.png and /dev/null differ diff --git a/assets/shutterstock4.png b/assets/shutterstock4.png deleted file mode 100755 index 5756d84..0000000 Binary files a/assets/shutterstock4.png and /dev/null differ diff --git a/assets/shutterstock5.png b/assets/shutterstock5.png deleted file mode 100755 index fcb63f7..0000000 Binary files a/assets/shutterstock5.png and /dev/null differ diff --git a/assets/shutterstock6.png b/assets/shutterstock6.png deleted file mode 100755 index 40b1b3a..0000000 Binary files a/assets/shutterstock6.png and /dev/null differ diff --git a/assets/shutterstock7.png b/assets/shutterstock7.png deleted file mode 100755 index 12e82a6..0000000 Binary files a/assets/shutterstock7.png and /dev/null differ diff --git a/assets/shutterstock8.png b/assets/shutterstock8.png deleted file mode 100755 index dba9cbe..0000000 Binary files a/assets/shutterstock8.png and /dev/null differ diff --git a/assets/shutterstock9.png b/assets/shutterstock9.png deleted file mode 100755 index 33ce46f..0000000 Binary files a/assets/shutterstock9.png and /dev/null differ diff --git a/assets/slide_up_btn.png b/assets/slide_up_btn.png deleted file mode 100755 index fb26969..0000000 Binary files a/assets/slide_up_btn.png and /dev/null differ diff --git a/assets/tap_to_continue_btn.png b/assets/tap_to_continue_btn.png deleted file mode 100755 index b9b51c1..0000000 Binary files a/assets/tap_to_continue_btn.png and /dev/null differ diff --git a/assets/texture-shader.fragment b/assets/texture-shader.fragment new file mode 100755 index 0000000..5dc7ac8 --- /dev/null +++ b/assets/texture-shader.fragment @@ -0,0 +1,10 @@ +precision mediump float; + +varying vec2 texCoord; + +uniform sampler2D Texture; + +void main() +{ + gl_FragColor = texture2D(Texture,texCoord).rgba +} \ No newline at end of file diff --git a/assets/shader1vertex.txt b/assets/texture-shader.vertex similarity index 54% rename from assets/shader1vertex.txt rename to assets/texture-shader.vertex index 72d9f46..d927440 100755 --- a/assets/shader1vertex.txt +++ b/assets/texture-shader.vertex @@ -1,12 +1,13 @@ attribute vec3 vPosition; attribute vec2 vTexCoord; + varying vec2 texCoord; uniform mat4 ProjectionMatrix; +uniform mat4 ModelViewMatrix; void main() { - //480x320 - gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0); + gl_Position = ProjectionMatrix * ModelViewMatrix * vec4(vPosition.xyz, 1.0); texCoord = vTexCoord; } \ No newline at end of file diff --git a/assets/wall_bonus.png b/assets/wall_bonus.png deleted file mode 100755 index 7f94f41..0000000 Binary files a/assets/wall_bonus.png and /dev/null differ diff --git a/assets/wall_left.png b/assets/wall_left.png deleted file mode 100755 index 9baad70..0000000 Binary files a/assets/wall_left.png and /dev/null differ diff --git a/assets/wall_right.png b/assets/wall_right.png deleted file mode 100755 index ab50ea3..0000000 Binary files a/assets/wall_right.png and /dev/null differ diff --git a/assets/wall_up.png b/assets/wall_up.png deleted file mode 100755 index c14e614..0000000 Binary files a/assets/wall_up.png and /dev/null differ diff --git a/game/creditscode.cpp b/game/creditscode.cpp deleted file mode 100644 index b5e1383..0000000 --- a/game/creditscode.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "creditscode.h" -#include "include/Engine.h" - -#include "main_code.h" - -const int TGameCredits::CONST_STATE_APPEARING = 0; -const int TGameCredits::CONST_STATE_APPEARED = 1; -const int TGameCredits::CONST_STATE_DISAPPEARING = 2; -const int TGameCredits::CONST_STATE_DISAPPEARED = 3; - -const float TGameCredits::CONST_APPEAR_TIME = 150.f; - -TGameCredits::TGameCredits() - : TGameAreaAncestor() - , StateTimer(0) - , State(CONST_STATE_DISAPPEARED) -{ -} - -void TGameCredits::Draw() -{ - //*SE::Console << "TGameCredits::Draw"; - float transparency = StateTimer/CONST_APPEAR_TIME; - - - RenderUniform1f("Transparency", transparency); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList["main_menu_bkg_left"]); - Renderer->DrawRect(Vector2f(0, 0.f), Vector2f(480.f, 320.f)); - - const Vector2f creditsPos(140.f, 130.f); - - const Vector2f creditsHalfSize(128.f, 128.f); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_CREDITS_TEXTURE]); - Renderer->DrawRect(creditsPos-creditsHalfSize, creditsPos+creditsHalfSize); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); - Renderer->DrawRect(Vector2f(240.f-128.f+15.f, 320.f-64.f), Vector2f(240.f+128.f+15.f, 320.f)); - - CheckGlError("Draw TGameCredits"); -} - -void TGameCredits::Update(size_t dt) -{ - if (State == CONST_STATE_APPEARING) - { - *SE::Console << "TGameCredits::Update - CONST_STATE_APPEARING"; - StateTimer += dt; - if (StateTimer >= CONST_APPEAR_TIME) - { - StateTimer = CONST_APPEAR_TIME; - State = CONST_STATE_APPEARED; - } - } - else if (State == CONST_STATE_DISAPPEARING) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - State = CONST_STATE_DISAPPEARED; - } - } -} - -void TGameCredits::OnTapDown(Vector2f p) -{ - *SE::Console << "TGameCredits::OnTapDown"; - Application->GoFromCreditsToMenu(); -} - -void TGameCredits::StartAppear() -{ - *SE::Console << "TGameCredits::StartAppear"; - State = CONST_STATE_APPEARING; -} - -void TGameCredits::StartDisappear() -{ - *SE::Console << "TGameCredits::StartDisappear"; - State = CONST_STATE_DISAPPEARING; -} diff --git a/game/creditscode.h b/game/creditscode.h deleted file mode 100644 index 1854de1..0000000 --- a/game/creditscode.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CREDITSCODE_H_INCLUDED -#define CREDITSCODE_H_INCLUDED - -#include "game_area_interface.h" - -using namespace SE; - - -class TGameCredits : public TGameAreaAncestor -{ - static const int CONST_STATE_APPEARING; - static const int CONST_STATE_APPEARED; - static const int CONST_STATE_DISAPPEARING; - static const int CONST_STATE_DISAPPEARED; - static const float CONST_APPEAR_TIME; - - - int State; - float StateTimer; - -public: - - TGameCredits(); - - virtual void Draw(); - virtual void Update(size_t dt); - virtual void OnTapDown(Vector2f p); - - void StartAppear(); - void StartDisappear(); -}; - - -#endif diff --git a/game/game_area_interface.h b/game/game_area_interface.h deleted file mode 100644 index e8b941a..0000000 --- a/game/game_area_interface.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef GAME_AREA_INTERFACE_H_INCLUDED -#define GAME_AREA_INTERFACE_H_INCLUDED - -#include "include/Engine.h" - -using namespace SE; - - -class TGameAreaAncestor -{ -public: - virtual void Draw() { } - virtual void Update(size_t) { } - virtual void OnTapUp(Vector2f) { } - virtual void OnTapUpAfterMove(Vector2f) { } - - virtual void OnTapDown(Vector2f) { } - virtual void OnFling(Vector2f) { } - virtual void OnScroll(Vector2f) { } - - virtual ~TGameAreaAncestor() { } //By default destructor is not virtual -}; - - -#endif diff --git a/game/gamecode.cpp b/game/gamecode.cpp deleted file mode 100644 index eb3d70d..0000000 --- a/game/gamecode.cpp +++ /dev/null @@ -1,1628 +0,0 @@ -#include "gamecode.h" -#include "main_code.h" - -using namespace SE; -//const std::string fendl = "\x0D\x0A"; //Windows-style, for files - -const int CONST_LEVELSTATE_STANDBY = 0; -const int CONST_LEVELSTATE_PLAYING = 1; -const int CONST_LEVELSTATE_GO_TO_PAUSE = 2; -const int CONST_LEVELSTATE_PAUSE = 3; -const int CONST_LEVELSTATE_LOADING = 4; -const int CONST_LEVELSTATE_NODRAW = 5; -const int CONST_LEVELSTATE_FINISH_FREEZE = 6; -const int CONST_LEVELSTATE_FINISHED = 7; - -const float CONST_TIMER_LOADING = 150.f; - -const float CONST_PAUSE_APPEAR_TIME = 150.f; - -const float CONST_FINISH_FREEZE_TIME = 1000.f; -const float CONST_FINISHING_TIME = 250.f; - -const float CONST_BALL_VELOCITY = 200.f; - -const Vector2f CONST_SLIDE_UP_POS(240.f, 64.f); - -const Vector2f CONST_TAP_TO_CONTINUE_POS(240.f, 200.f); - -bool operator<(const PairColorTexture& p1, const PairColorTexture& p2) -{ - if (p1.second == p2.second) - { - if (p1.first(0) == p2.first(0)) - { - if (p1.first(1) == p2.first(1)) - { - if (p1.first(2) == p2.first(2)) - { - return p1.first(3) < p2.first(3); - } - else - { - return p1.first(2) < p2.first(2); - } - } - else - { - return p1.first(1) < p2.first(1); - } - } - else - { - return p1.first(0) < p2.first(0); - } - } - - return (p1.second < p2.second); -} - - -TBrick::TBrick() - : State(CONST_BRICKSTATE_VISIBLE) - , StateTimer(0.f) - , Color(Vector4f(0.f, 0.f, 0.f, 1.f)) - , Locked(0) - , InitialLocked(0) -{ -} - -void TBrick::SetVisible(Vector4f color, int locked) -{ - State = CONST_BRICKSTATE_VISIBLE; - Color = color; - InitialLocked = locked; - Locked = InitialLocked; -} - -void TBrick::SetInvisible() -{ - State = CONST_BRICKSTATE_INVISIBLE; -} - -void TBrick::TryDrawAppear(int ipos, int jpos) -{ - *SE::Console << "TBrick::TryDrawAppear"; - Vector2f centerPos = GetPosFrom(ipos, jpos); - - Vector2f blockHalfSize = Vector2f(0.5f*CONST_BRICK_WIDTH, 0.5f*CONST_BRICK_HEIGHT); - - std::string texName; - if (Locked == 2) - { - texName = CONST_BLOCK_TEXTURE3; - } - else if (Locked == 1) - { - texName = CONST_BLOCK_TEXTURE2; - } - else - { - texName = CONST_BLOCK_TEXTURE1; - } - - if (State == CONST_BRICKSTATE_DISAPPEAR) - { - - RenderUniform1f("Transparency", StateTimer/CONST_BRICK_DISAPPEAR_TIME); - RenderUniform4fv("BrickColor", (Color.data())); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); - Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize); - } - else if (State == CONST_BRICKSTATE_APPEAR) - { - - RenderUniform1f("Transparency", 1.f - StateTimer/CONST_BRICK_APPEAR_TIME); - RenderUniform4fv("BrickColor", Color.data()); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); - Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize); - } -} - -void TBrick::Update(size_t dt) -{ - if (State == CONST_BRICKSTATE_DISAPPEAR) - { - *SE::Console << "TBrick::Update - CONST_BRICKSTATE_DISAPPEAR"; - StateTimer -= dt; - if (StateTimer < 0.f) - { - StateTimer = 0.f; - State = CONST_BRICKSTATE_INVISIBLE; - } - } - - if (State == CONST_BRICKSTATE_APPEAR) - { - *SE::Console << "TBrick::Update - CONST_BRICKSTATE_APPEAR"; - StateTimer -= dt; - if (StateTimer < 0.f) - { - StateTimer = 0.f; - State = CONST_BRICKSTATE_VISIBLE; - } - } -} - -Vector4f TBrick::GetColor() -{ - *SE::Console << "TBrick::GetColor"; - return Color; -} - -Vector2f TBrick::GetPosFrom(int ipos, int jpos) -{ - *SE::Console << "TBrick::GetPosFrom"; - const Vector2f BorderShift(CONST_BRICK_SHIFT_X, CONST_BRICK_SHIFT_Y); - - return BorderShift+Vector2f(CONST_BRICK_WIDTH*ipos + 0.5f*CONST_BRICK_WIDTH, 320.f - CONST_BRICK_HEIGHT*(jpos)-0.5f*CONST_BRICK_HEIGHT); - -} - -void TBrick::Disappear() -{ - *SE::Console << "TBrick::Disappear"; - StateTimer = CONST_BRICK_DISAPPEAR_TIME; - State = CONST_BRICKSTATE_DISAPPEAR; -} - -void TBrick::Hit() -{ - if (Locked == 0) - { - *SE::Console << "TBrick::Hit == 0"; - Disappear(); - } - else - { - *SE::Console << "TBrick::Hit else"; - Locked--; - } -} - -void TBrick::Appear(Vector4f color, int locked) -{ - *SE::Console << "TBrick::Appear"; - StateTimer = CONST_BRICK_APPEAR_TIME; - State = CONST_BRICKSTATE_APPEAR; - Color = color; - InitialLocked = locked; - Locked = InitialLocked; -} - -void TBrick::Appear() -{ - *SE::Console << "TBrick::Appear"; - Appear(Color, InitialLocked); -} - -int TBrick::GetLocked() -{ - *SE::Console << "TBrick::GetLocked"; - return Locked; -} - -bool TBrick::CanReact() -{ - *SE::Console << "TBrick::CanReact"; - return (State == CONST_BRICKSTATE_VISIBLE) || (State == CONST_BRICKSTATE_APPEAR); -} - -//=========================================== -//=========================================== -//=========================================== - -TBonusFalling::TBonusFalling(Vector2f pos) - : BonusType(rand() % 3) - , Pos(pos) - , Lifetime(0.f) -{ - - if (BonusType == 0) - { - TexName = CONST_BONUS_MULTIPLIER_TEXTURE; - } - - if (BonusType == 1) - { - TexName = CONST_BONUS_GOTHROUGH_TEXTURE; - } - - if (BonusType == 2) - { - TexName = CONST_BONUS_FLOOR_TEXTURE; - } - -} - -Vector2f TBonusFalling::GetPos() -{ - *SE::Console << "TBrick::GetPos"; - return Pos; -} - -int TBonusFalling::GetType() -{ - *SE::Console << "TBonusFalling::GetType"; - return BonusType; -} - - -void TBonusFalling::Draw() -{ - *SE::Console << "TBonusFalling::Draw"; - Vector2f BonusHalfSize = Vector2f(16.f, 16.f); - - float transparency = min_t(Lifetime/CONST_BONUS_APPEAR_TIME , 1.f); - - RenderUniform4fv("BrickColor", Vector4f(1.0f, 1.0f, 1.0f, 1.0f).data()); - RenderUniform1f("Transparency", transparency); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[TexName]); - Renderer->DrawRect(Pos - BonusHalfSize, Pos + BonusHalfSize); - -} - - -void TBonusFalling::Update(size_t dt) -{ - *SE::Console << "TBonusFalling::Update"; - Lifetime += dt; - Pos(1) -= dt * CONST_BONUS_FALL_SPEED / 1000.f; -} - -//=========================================== -//=========================================== -//=========================================== - - -TBall::TBall(Vector2f pos, Vector2f velocity, Vector4f color) - : Pos(pos) - , Velocity(velocity) - , Color(color) -{ - //must be 5 - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); -} - -Vector2f TBall::GetPos() -{ - *SE::Console << "TBall::GetPos"; - return Pos; -} - -Vector2f TBall::GetVelocityVector() -{ - *SE::Console << "TBall::GetVelocityVector"; - return Velocity; -} - -void TBall::Go() -{ - *SE::Console << "TBall::Go"; -// Velocity = Normalize(Vector2f(2.f, 1.f)); - Velocity = Vector2f(2.f, 1.f).normalized(); -} - -void TBall::ReflectToLeft() -{ - *SE::Console << "TBall::ReflectToLeft"; - if (Velocity(0) > 0.f) - { - Velocity(0) = - Velocity(0); - } -} - -void TBall::ReflectToRight() -{ - *SE::Console << "TBall::ReflectToRight"; - if (Velocity(0) < 0.f) - { - Velocity(0) = - Velocity(0); - } -} - -void TBall::ReflectToUp() -{ - *SE::Console << "TBall::ReflectToUp"; - if (Velocity(1) < 0.f) - { - Velocity(1) = - Velocity(1); - } -} - -void TBall::ReflectToDown() -{ - *SE::Console << "TBall::ReflectToDown"; - if (Velocity(1) > 0.f) - { - Velocity(1) = - Velocity(1); - } -} - -//function for reflector surface. -float ReflectorPlaneFunction(float shift) -{ - *SE::Console << "ReflectorPlaneFunction(float shift)"; - /* _______ - / \ - | | - Something like this - - */ - - if (shift>=-70.f && shift < -40.f) - { - float t = (shift+70.f)/30.f; //0 to 1 - return 9.f + 21.f * t; - } - - if (shift>=-40.f && shift < 40.f) - { - return 30.f; - } - - - if (shift >= 40.f && shift <= 70.f) - { - float t = (70.f - shift)/30.f; //1 to 0 - return 9.f + 21.f * t; - } - - return 0.f; -} - -void TBall::TryReflectOnReflector(Vector2f refPos) -{ - *SE::Console << "TBall::TryReflectOnReflector(Vector2f refPos)"; - const float reflectionShiftY = 13.f; - const float reflectionMaxHeight = 30.f; - - - - if ((Pos(1) < reflectionMaxHeight + reflectionShiftY) && Pos(1) > 0.0f && Velocity(1) < 0) - { - float dy = ReflectorPlaneFunction(Pos(0) - refPos(0)); - - if (dy > 0 && (dy + reflectionShiftY > Pos(1))) - { - float shift = (Pos(0) - refPos(0)) / 128.f; - shift = min_t(shift, 0.5f); - shift = max_t(shift, -0.5f); - //Vector2f n = Normalize(Vector2f(shift, 1.0f)); - Vector2f n = Vector2f(shift, 1.0f).normalized(); - - Velocity = Velocity - n * 2.f * (Velocity(0)*n(0) + Velocity(1)*n(1)); - if ((Velocity(1) <= 0) || (fabs(Velocity(0)/Velocity(1)) > 4.f)) - { - Velocity(0) = 4.f*sign(Velocity(0)); - Velocity(1) = 1.f; - //Velocity = Normalize(Velocity); - Velocity = Velocity.normalized(); - } - } - } -} - - -void TBall::Update(size_t dt) -{ - *SE::Console << "TBall::Update(size_t dt)"; - Pos += Velocity * (CONST_BALL_VELOCITY * dt / 1000.f); - - TalePos.push_back(Pos); - - if (TalePos.size() > 4) - { - TalePos.erase(TalePos.begin()); - } -} - -//=========================================== -//=========================================== -//=========================================== - - -TGameLevel::TGameLevel() -{ - *SE::Console << "TGameLevel::TGameLevel"; - BkgTexture = "bkg"; - - RenderBufferReady = false; - PrevLevelStateIsStandby = false; - - OutScale = 1.f; - OutScaleVelocity = 0.f; - - StateTimer = 0.f; - - LevelState = CONST_LEVELSTATE_NODRAW; - - BallColor = Vector4f(0.2f, 0.8f, 1.0f, 1.0f); - - BonusFloorPosY = 0.f; - -} - -TGameLevel::~TGameLevel() -{ -} - - - -void TGameLevel::ReloadBlockInstansingList() -{ - *SE::Console << "TGameLevel::ReloadBlockInstansingList"; - std::map ConstTextureBlockMap = boost::assign::map_list_of (0,CONST_BLOCK_TEXTURE1) (1,CONST_BLOCK_TEXTURE2) (2,CONST_BLOCK_TEXTURE3); - - std::pair tempPair; - BlockInstansingList.ColorBlockList.clear(); - - for (int i=0; i>::iterator itr = BlockInstansingList.ColorBlockList.end(); - - for (auto b = BlockInstansingList.ColorBlockList.begin(); b != BlockInstansingList.ColorBlockList.end(); ++b) - { - if (b->first == tempPair) - { - itr = b; - } - } - - if (itr == BlockInstansingList.ColorBlockList.end()) - { - BlockInstansingList.ColorBlockList.push_back(std::pair(tempPair, TTriangleList())); - itr = BlockInstansingList.ColorBlockList.end(); - - itr--; - } - - Vector2f posFrom = BlockMatrix[i][j].GetPosFrom(i,j) + Vector2f(-0.5f*CONST_BRICK_WIDTH, -0.5f*CONST_BRICK_HEIGHT); - Vector2f posTo = BlockMatrix[i][j].GetPosFrom(i,j) + Vector2f(+0.5f*CONST_BRICK_WIDTH, +0.5f*CONST_BRICK_HEIGHT); - - itr->second.Data += MakeDataTriangleList(posFrom, posTo); - - } - } - } - - for (auto it = BlockInstansingList.ColorBlockList.begin(); it != BlockInstansingList.ColorBlockList.end(); ++it) - { - it->second.RefreshBuffer(); - } - -} - -Vector2f TGameLevel::GetBlock(const Vector2f& pos) -{ - *SE::Console << "TGameLevel::GetBlock"; - int x = static_cast((pos(0) - CONST_BRICK_SHIFT_X) / CONST_BRICK_WIDTH); - int y = static_cast((320.0f + CONST_BRICK_SHIFT_Y - pos(1)) / CONST_BRICK_HEIGHT); - - if (x < 0) - x = 0; - - if (x > CONST_BRICKMATRIX_WIDTH-1) - x = CONST_BRICKMATRIX_WIDTH-1; - - if (y < 0) - y = 0; - - if (y > CONST_BRICKMATRIX_HEIGHT-1) - y = CONST_BRICKMATRIX_HEIGHT-1; - - return Vector2f(x, y); -} - -bool TGameLevel::TapInBackBtnArea(const Vector2f& pos) -{ - *SE::Console << "TGameLevel::TapInBackBtnArea"; - return (pos(1) > 320.f - 64.f) && (pos(0)>=240.f-75.f) && (pos(0)<=240.f+75.f); -} - -void TGameLevel::SetFinishFreeze() -{ - *SE::Console << "TGameLevel::SetFinishFreeze"; - StateTimer = CONST_FINISH_FREEZE_TIME; - - LevelState = CONST_LEVELSTATE_FINISH_FREEZE; - -} - -void TGameLevel::SetFinished() -{ - *SE::Console << "TGameLevel::SetFinished"; - StateTimer = CONST_FINISHING_TIME; - - LevelState = CONST_LEVELSTATE_FINISHED; - - OutScale = 1.f; -} - -Vector4f TGameLevel::ParseColor(const std::string& s) -{ - *SE::Console << "TGameLevel::ParseColor"; - Vector4f r; - std::string ss(s); - - int i = ss.find(", "); - int c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r(0) = c / 255.f; - - i = ss.find(", "); - c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r(1) = c / 255.f; - - i = ss.find(", "); - c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r(2) = c / 255.f; - - //c = toint(ss); - //r(3) = c / 255.f; - i = ss.find("\r"); - c = toint(ss.substr(0, i)); - ss.erase(0, i + 2); - r(3) = c / 255.f; - - return r; -} - -void TGameLevel::ReloadLevel() -{ - *SE::Console << "TGameLevel::ReloadLevel"; - size_t byteCount; - boost::shared_array file = CreateMemFromFile(LevelFileName, byteCount); - std::string fileString(&file[0]); - char c; - //int n = 0; - - - std::vector rows; - int rowLen; - while (fileString.size() > 0) - { - rowLen = fileString.find(SE::fendl); - rows.push_back(fileString.substr(0, rowLen)); - fileString.erase(0, rowLen+2); - } - - std::vector::iterator rowIterator = rows.begin(); - BallColor = ParseColor(*rowIterator); - ++rowIterator; - - std::vector colors; - - Vector4f tc; - - while (*rowIterator != "Colormap") - { - tc = ParseColor(*rowIterator); - colors.push_back(tc); - ++rowIterator; - } - - std::vector::iterator rowColorIterator; - std::vector::iterator rowLockIterator; - - rowColorIterator = rowIterator + 1; - - rowLockIterator = rowColorIterator + 14; - - - - for (int j=0; jBallInBlock = GetBlock(ballPos); - BallList.begin()->PrevBallInBlock = BallList.begin()->BallInBlock; - - BonusGothroughTimer = 0.f; - BonusFloorTimer = 0.f; - - BonusFallingList.clear(); - - RenderBufferReady = false; - - ReloadBallInstancingList(); - - BonusFloorPosY = 0.f; - -} - -bool TGameLevel::IsLoaded() -{ - *SE::Console << "TGameLevel::IsLoaded" ; - return (LevelState == CONST_LEVELSTATE_STANDBY); -} - -void TGameLevel::Draw() -{ - *SE::Console << "TGameLevel::Draw"; - if (LevelState == CONST_LEVELSTATE_NODRAW) - { - CheckGlError(); - return; - } - - if (LevelState == CONST_LEVELSTATE_LOADING) - { - Renderer->PushMatrix(); - float scale = 1.f - 0.5f*StateTimer/CONST_TIMER_LOADING; - if (scale < 0.5f) - scale = 0.5f; - - if (scale > 1.f) - scale = 1.f; - - Renderer->TranslateMatrix(Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(scale); - Renderer->TranslateMatrix(-Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[LevelScreenTexture]); - Renderer->DrawRect(Vector2f(0, 0), Vector2f(480.f, 320.f)); - Renderer->PopMatrix(); - CheckGlError(); - return; - } - - - bool mustShowButtons = ((LevelState == CONST_LEVELSTATE_PAUSE) || (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE)); - - bool pause = (mustShowButtons || (LevelState == CONST_LEVELSTATE_FINISHED)); - - - bool renderBufferReady = RenderBufferReady; - - if (pause && renderBufferReady) - { - - //See also below (same method) - Renderer->PushMatrix(); - Renderer->TranslateMatrix(Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(OutScale); - Renderer->TranslateMatrix(-Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - DrawBuffer(); - - if (mustShowButtons) - { - DrawPauseButtons(); - } - Renderer->PopMatrix(); - CheckGlError(); - return; - } - - if (pause && !renderBufferReady) - { - - Renderer->SwitchToFrameBuffer("LevelBuffer"); - Renderer->SetProjectionMatrix(480.f, 320.f); - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); - CheckGlError(); - } - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[BkgTexture]); - Renderer->DrawRect(Vector2f(0, 0), Vector2f(480.f, 320.f)); - - std::list::iterator iBall; - - Renderer->PushShader("BrickShader"); - - - for (int i=0; i>::iterator colorBlockIterator; - for (colorBlockIterator = BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator) - { - RenderUniform4fv("BrickColor", colorBlockIterator->first.first.data()); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[colorBlockIterator->first.second]); - - Renderer->DrawTriangleList(colorBlockIterator->second); - } - - std::list::iterator iBonus; - - for (iBonus = BonusFallingList.begin(); iBonus != BonusFallingList.end(); ++iBonus) - { - iBonus->Draw(); - } - - DrawBallInstancingList(); - - Renderer->PopShader(); - - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_REFLECTOR_TEXTURE]); - Renderer->DrawRect(Vector2f(-128.f, -16.f)+ReflectorPos, Vector2f(128.f, 16.f)+ReflectorPos); - - - const Vector2f wallUpPos1(240.f-256.f, 320.f-64.f); - const Vector2f wallUpPos2(240.f+256.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_UP_TEXTURE]); - Renderer->DrawRect(wallUpPos1, wallUpPos2); - - const Vector2f wallLeftPos1(0.f, 320.f - 512.f); - const Vector2f wallLeftPos2(32.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_LEFT_TEXTURE]); - Renderer->DrawRect(wallLeftPos1, wallLeftPos2); - - const Vector2f wallRightPos1(480.f-32.f, 320.f - 512.f); - const Vector2f wallRightPos2(480.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_RIGHT_TEXTURE]); - Renderer->DrawRect(wallRightPos1, wallRightPos2); - - - if (BonusFloorTimer>0.f) - { - - const Vector2f wallDownPos(240.f, BonusFloorPosY); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_BONUS_TEXTURE]); - - Renderer->DrawRect(Vector2f(-256.f, -16.f)+wallDownPos, Vector2f(256.f, 16.f)+wallDownPos); - } - - - if (!pause) - { - RenderUniform1f("Transparency", 1.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BACK_BTN_TEXTURE]); - const Vector2f BackBtnPos(240.f, 320.f - 32.f - 20.f); - Renderer->DrawRect(Vector2f(-128.f, -32.f)+BackBtnPos, Vector2f(128.f, 32.f)+BackBtnPos); - } - - if (pause && !renderBufferReady) - { - - //ololo - //See also above (same method) - Renderer->SwitchToScreen(); - Renderer->SetFullScreenViewport(); - - Renderer->PushMatrix(); - //Renderer->LoadIdentity(); - Renderer->TranslateMatrix(Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(OutScale); - Renderer->TranslateMatrix(-Vector3f(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - DrawBuffer(); - if (mustShowButtons) - { - DrawPauseButtons(); - } - Renderer->PopMatrix(); - RenderBufferReady = true; - CheckGlError(); - } - CheckGlError(); -} - -void TGameLevel::DrawPauseButtons() -{ - *SE::Console << "TGameLevel::DrawPauseButtons"; - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_SLIDE_UP_BTN_TEXTURE]); - Renderer->DrawRect(Vector2f(-128.f, -64.f)+CONST_SLIDE_UP_POS, Vector2f(128.f, 64.f)+CONST_SLIDE_UP_POS); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_TAP_TO_CONTINUE_BTN_TEXTURE]); - Renderer->DrawRect(Vector2f(-128.f, -128.f)+CONST_TAP_TO_CONTINUE_POS, Vector2f(128.f, 128.f)+CONST_TAP_TO_CONTINUE_POS); - -} - -void TGameLevel::DrawBallInstancingList() -{ - *SE::Console << "TGameLevel::DrawBallInstancingList"; - RenderUniform1f("Transparency", 1.f); - RenderUniform4fv("BrickColor", BallColor.data()); - - if (BonusGothroughTimer > 0.f) - { - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BALLGLOW_TEXTURE]); - - Renderer->DrawTriangleList(BallInstancingList.BallAndGlowList[1]); - } - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BALL_TEXTURE]); - - Renderer->DrawTriangleList(BallInstancingList.BallAndGlowList[0]); - -} - -void TGameLevel::DrawBuffer() -{ - *SE::Console << "TGameLevel::DrawBuffer"; - Renderer->PushShader("FrameShader"); - float brightness; - if (CONST_LEVELSTATE_GO_TO_PAUSE) - { - brightness = 0.3f + 0.7f * StateTimer / CONST_PAUSE_APPEAR_TIME; - } - else - { - brightness = 0.3f; - } - - RenderUniform1f("Brightness", brightness); - glBindTexture(GL_TEXTURE_2D,ResourceManager->FrameManager.GetFrameTexture("LevelBuffer")); - - //Matrix switched to identity - //Vector2f RectPos = Vector2f(-1, -1); - //Vector2f RectSize = Vector2f(2, 2); - Vector2f RectPos = Vector2f(240.f, 160.f); - Vector2f RectSize = Vector2f(240.f, 160.f); - - Renderer->DrawRect(RectPos-RectSize, RectPos+RectSize); - - Renderer->PopShader(); - - CheckGlError(); -} - -void TGameLevel::SetPause() -{ - *SE::Console << "TGameLevel::SetPause"; - OutScaleVelocity = 0.f; - OutScale = 1.f; - RenderBufferReady = false; - LevelState = CONST_LEVELSTATE_GO_TO_PAUSE; - StateTimer = CONST_PAUSE_APPEAR_TIME; - Application->MarkSetGameLevelPause(); -} - -void TGameLevel::ReleasePause() -{ - *SE::Console << "TGameLevel::ReleasePause"; - RenderBufferReady = false; - - if (PrevLevelStateIsStandby) - { - LevelState = CONST_LEVELSTATE_STANDBY; - PrevLevelStateIsStandby = false; - } - else - { - LevelState = CONST_LEVELSTATE_PLAYING; - } - Application->MarkReleaseGameLevelPause(); -} - -bool TGameLevel::IsPaused() -{ - *SE::Console << "TGameLevel::IsPaused"; - return ((LevelState == CONST_LEVELSTATE_PAUSE) || (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE) || (LevelState == CONST_LEVELSTATE_FINISHED)); -} - -void TGameLevel::Update(size_t dt) -{ - *SE::Console << "TGameLevel::Update"; - if (LevelState == CONST_LEVELSTATE_NODRAW) - { - return; - } - - if (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - LevelState = CONST_LEVELSTATE_PAUSE; - } - - return; - } - - if (LevelState == CONST_LEVELSTATE_PAUSE) - { - OutScale += OutScaleVelocity * dt; - TryGoToMenu(); - CheckGlError(); - return; - } - - if (LevelState == CONST_LEVELSTATE_FINISHED) - { - StateTimer -= dt; - - OutScale = StateTimer/CONST_FINISHING_TIME; - - if (StateTimer <= 0.f) - { - TryGoToMenu(); - } - CheckGlError(); - return; - } - - - if (LevelState == CONST_LEVELSTATE_LOADING) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - RenderBufferReady = false; - LevelState = CONST_LEVELSTATE_STANDBY; - } - } - - if (LevelState == CONST_LEVELSTATE_FINISH_FREEZE) - { - StateTimer -= dt; - - if (StateTimer <= 0.f) - { - SetFinished(); - CheckGlError(); - return; - } - - //To make the whole scene like freeze - dt = static_cast(dt / max_t((CONST_FINISH_FREEZE_TIME-StateTimer)/100.f, 1.f)); - - } - - if (BonusGothroughTimer > 0.f) - { - BonusGothroughTimer -= dt; - BonusGothroughTimer = max_t(BonusGothroughTimer, 0.f); - } - - if (BonusFloorTimer > 0.f) - { - BonusFloorTimer -= dt; - BonusFloorTimer = max_t(BonusFloorTimer, 0.f); - } - - UpdateBallList(dt); - - - for (int i=0; i::iterator iBonus = BonusFallingList.begin(); - - while (iBonus != BonusFallingList.end()) - { - iBonus->Update(dt); - - if ((fabs(ReflectorPos(0) - iBonus->GetPos()(0))GetPos()(1))GetType(); - iBonus = BonusFallingList.erase(iBonus); - - - if (bonusType == CONST_BONUS_TYPE_GOTHROUGH) - { - BonusGothroughTimer = CONST_BONUS_GOTHROUGH_TIME; - } - else if (bonusType == CONST_BONUS_TYPE_MULTIPLIER) - { - Vector2f pos = BallList.begin()->GetPos(); - Vector2f velocity = BallList.begin()->GetVelocityVector(); - MultiplyBalls(pos, velocity); - } - else if (bonusType == CONST_BONUS_TYPE_FLOOR) - { - BonusFloorTimer = CONST_BONUS_FLOOR_TIME; - } - - } - else if (iBonus->GetPos()(1) < -15.f) - { - iBonus = BonusFallingList.erase(iBonus); - } - - if (iBonus != BonusFallingList.end()) - { - ++iBonus; - } - } - - //Bonus floor pos - if (BonusFloorTimer/CONST_BONUS_GOTHROUGH_TIME < 0.2f) - { - //Bonus must go down until 0.f - if (BonusFloorPosY > 0.f) - { - BonusFloorPosY -= CONST_BONUS_FLOOR_APPEAR_SPEED * dt / 1000.f; - BonusFloorPosY = max_t(BonusFloorPosY, 0.f); - } - - } - else - { - //Bonus must go up until 16.f - if (BonusFloorPosY < 16.f) - { - BonusFloorPosY += CONST_BONUS_FLOOR_APPEAR_SPEED * dt / 1000.f; - BonusFloorPosY = min_t(BonusFloorPosY, 16.f); - } - } - - - bool noMoreBlocks = true; - - for (int i=0; iOpenNextLevel(); - Application->MarkSetGameLevelPause(); - SetFinishFreeze(); - CheckGlError(); - - } - - if (BallList.size() == 0 && LevelState != CONST_LEVELSTATE_FINISH_FREEZE) - { - SetStandBy(); - } - -} - - - -void TGameLevel::ReloadBallInstancingList() -{ - *SE::Console << "TGameLevel::ReloadBallInstancingList"; - //Changing this function? Don't forget to change next one! - - BallInstancingList.BallAndGlowList.clear(); - - std::list::iterator i; - /* - Vector3f p1; - Vector3f p2; - Vector3f p3; - Vector3f p4; - - Vector2f t1 = Vector2f(0.0f, 0.0f); - Vector2f t2 = Vector2f(0.0f, 1.0f); - Vector2f t3 = Vector2f(1.0f, 1.0f); - Vector2f t4 = Vector2f(1.0f, 0.0f); - */ - - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - /* - p1 = Vector3f(i->Pos, 0.f) + Vector3f(-8.f, -8.f, 0.f); - p2 = Vector3f(i->Pos, 0.f) + Vector3f(-8.f, +8.f, 0.f); - p3 = Vector3f(i->Pos, 0.f) + Vector3f(+8.f, +8.f, 0.f); - p4 = Vector3f(i->Pos, 0.f) + Vector3f(+8.f, -8.f, 0.f); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p2); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p4); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t2); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t4); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - */ - - BallInstancingList.BallAndGlowList[0].Data += MakeDataTriangleList(i->Pos + Vector2f(-8.f, -8.f), i->Pos + Vector2f(8.f, 8.f)); - - //Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[0].Data, n, i->Pos + Vector2f(-8.f, -8.f), i->Pos + Vector2f(8.f, 8.f)); - - //n += 6; - } - - std::list::iterator j; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - for (j = i->TalePos.begin(); j != i->TalePos.end(); ++j) - { - /* - p1 = Vector3f(*j, 0.f) + Vector3f(-16.f, -16.f, 0.f); - p2 = Vector3f(*j, 0.f) + Vector3f(-16.f, +16.f, 0.f); - p3 = Vector3f(*j, 0.f) + Vector3f(+16.f, +16.f, 0.f); - p4 = Vector3f(*j, 0.f) + Vector3f(+16.f, -16.f, 0.f); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p2); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p4); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t2); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t4); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - */ - BallInstancingList.BallAndGlowList[1].Data += MakeDataTriangleList(*j + Vector2f(-16.f, -16.f), *j + Vector2f(16.f, 16.f)); - //Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[1].Data, n, *j + Vector2f(-16.f, -16.f), *j + Vector2f(16.f, 16.f)); - - //n += 6; - } - } - - //std::map::iterator it; - - auto it = BallInstancingList.BallAndGlowList.begin(); - - for (; it != BallInstancingList.BallAndGlowList.end(); ++it) - //for (auto it = BallInstancingList.BallAndGlowList.begin(); it != BallInstancingList.BallAndGlowList.end(); ++it) - - { - it->second.RefreshBuffer(); - } - -} - -void TGameLevel::RefreshBallInstancingList() -{ - *SE::Console << "TGameLevel::RefreshBallInstancingList"; - //Changing this function? Don't forget to change previous one! - /* - Vector3f p1; - Vector3f p2; - Vector3f p3; - Vector3f p4; - - Vector2f t1 = Vector2f(0.0f, 0.0f); - Vector2f t2 = Vector2f(0.0f, 1.0f); - Vector2f t3 = Vector2f(1.0f, 1.0f); - Vector2f t4 = Vector2f(1.0f, 0.0f); - */ - int n = 0; - int m = 0; - - std::list::iterator i; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - /* - p1 = Vector3f(i->Pos, 0.f) + Vector3f(-8.f, -8.f, 0.f); - p2 = Vector3f(i->Pos, 0.f) + Vector3f(-8.f, +8.f, 0.f); - p3 = Vector3f(i->Pos, 0.f) + Vector3f(+8.f, +8.f, 0.f); - p4 = Vector3f(i->Pos, 0.f) + Vector3f(+8.f, -8.f, 0.f); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p2; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p4; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t2; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t4; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - */ - - Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[0].Data, n, i->Pos + Vector2f(-8.f, -8.f), i->Pos + Vector2f(8.f, 8.f)); - - n += 6; - } - - std::list::iterator j; - - n = 0; - m = 0; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - for (j = i->TalePos.begin(); j != i->TalePos.end(); ++j) - { - /* - p1 = Vector3f(*j, 0.f) + Vector3f(-16.f, -16.f, 0.f); - p2 = Vector3f(*j, 0.f) + Vector3f(-16.f, +16.f, 0.f); - p3 = Vector3f(*j, 0.f) + Vector3f(+16.f, +16.f, 0.f); - p4 = Vector3f(*j, 0.f) + Vector3f(+16.f, -16.f, 0.f); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p2; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p4; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t2; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t4; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1;*/ - //BallInstancingList.BallAndGlowList[1].Data += MakeDataTriangleList(); - - Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[1].Data, n, *j + Vector2f(-16.f, -16.f), *j + Vector2f(16.f, 16.f)); - - n += 6; - - } - } - - std::map::iterator it; - - for (it = BallInstancingList.BallAndGlowList.begin(); it != BallInstancingList.BallAndGlowList.end(); ++it) - { - it->second.RefreshBuffer(); - } - -} - - -void TGameLevel::UpdateBallList(size_t dt) -{ - *SE::Console << "TGameLevel::UpdateBallList"; - std::list::iterator iBall; - - bool mustReloadBalls = false; - - //If not loaded - force load - if (BallInstancingList.BallAndGlowList.size() == 0) - { - mustReloadBalls = true; - } - - if (BonusFloorTimer == 0.f) - { - Vector2f ballPos; - - iBall = BallList.begin(); - - while (iBall != BallList.end()) - { - ballPos = iBall->GetPos(); - - if (ballPos(1)<0.f) - { - iBall = BallList.erase(iBall); - mustReloadBalls = true; - } - - if (iBall != BallList.end()) - { - ++iBall; - } - } - - } - - bool blockListChanged = false; - - for (iBall = BallList.begin(); iBall != BallList.end(); ++iBall) - { - - - iBall->Update(dt); - - Vector2f ballPos = iBall->GetPos(); - - - if (ballPos(0) > 480.f-15.f) - { - iBall->ReflectToLeft(); - } - - if (ballPos(0) < 15.f) - { - iBall->ReflectToRight(); - } - - if (ballPos(1) > 320.0f-16.f) - { - iBall->ReflectToDown(); - } - - if (BonusFloorTimer > 0.f) - { - if (ballPos(1) < 13.0f) - { - iBall->ReflectToUp(); - } - } - - iBall->TryReflectOnReflector(ReflectorPos); - - Vector2f ipos = GetBlock(ballPos); - if (!(ipos == iBall->BallInBlock)) - { - iBall->PrevBallInBlock = iBall->BallInBlock; - iBall->BallInBlock = ipos; - - int i = static_cast(iBall->BallInBlock(0)); - int j = static_cast(iBall->BallInBlock(1)); - - int iprev = static_cast(iBall->PrevBallInBlock(0)); - int jprev = static_cast(iBall->PrevBallInBlock(1)); - - - if (BlockMatrix[i][j].CanReact()) - { - bool canThrowBonus; - - blockListChanged = true; - - if (BonusGothroughTimer > 0.f) - { - BlockMatrix[i][j].Disappear(); - canThrowBonus = true; - - } - else - { - canThrowBonus = (BlockMatrix[i][j].GetLocked() == 0); - - BlockMatrix[i][j].Hit(); - - } - - Vector2f blockPos = BlockMatrix[i][j].GetPosFrom(i, j); - - - if (canThrowBonus && rand() % 20 == 0) - { - BonusFallingList.push_back(TBonusFalling(blockPos)); - } - - - if (BonusGothroughTimer == 0.f) - { - if (j < jprev) - { - iBall->ReflectToDown(); - } - else - if (j > jprev) - { - iBall->ReflectToUp(); - } - else - if (i < iprev) - { - iBall->ReflectToRight(); - } - else - if (i > iprev) - { - iBall->ReflectToLeft(); - } - } - - - } - - } - - } - - if (blockListChanged) - { - ReloadBlockInstansingList(); - } - - if (mustReloadBalls) - { - ReloadBallInstancingList(); - } - else - { - RefreshBallInstancingList(); - } -} - -void TGameLevel::MultiplyBalls(Vector2f pos, Vector2f velocity) -{ - *SE::Console << "TGameLevel::MultiplyBalls"; - //mat2 r; - Matrix2f r; - Vector2f v; - - for (int i = -2; i<=2; i++) - { - - float alpha = i*pi / 4.f; - r(0, 0) = cosf(alpha); - r(1, 0) = sinf(alpha); - r(0, 1) = -sinf(alpha); - r(1, 1) = cosf(alpha); - - v = r*velocity; - - v(1) = max_t(static_cast(fabs(v(1))), 0.2f) * sign(v(1)); //Prevent velocityY from being ~= 0 - - BallList.push_back(TBall(pos, v, BallColor)); - } - - ReloadBallInstancingList(); -} - - -void TGameLevel::OnTapDown(Vector2f pos) -{ - *SE::Console << "TGameLevel::OnTapDown"; - if (LevelState == CONST_LEVELSTATE_STANDBY) - { - if (TapInBackBtnArea(pos)) - { - SetPause(); - PrevLevelStateIsStandby = true; - } - else - { - - LevelState = CONST_LEVELSTATE_PLAYING; - BallList.begin()->Go(); - } - } - else if (LevelState == CONST_LEVELSTATE_PLAYING) - { - - - if (TapInBackBtnArea(pos)) - { - SetPause(); - } - else if (fabs(ReflectorPos(0) - pos(0))>64.f) - { - ReflectorPos(0) = pos(0); - } - - } - else if (LevelState == CONST_LEVELSTATE_PAUSE) - { - if (pos(1) > 128.f) - { - ReleasePause(); - } - } -} - -void TGameLevel::OnTapUp(Vector2f pos) -{ - *SE::Console << "TGameLevel::OnTapUp"; -} - -void TGameLevel::OnFling(Vector2f slideSpeed) -{ - *SE::Console << "TBrick::TryDrawAppear"; - if (LevelState == CONST_LEVELSTATE_PAUSE) - { - OutScaleVelocity = slideSpeed(1)/320.f; - } -} - -void TGameLevel::OnScroll(Vector2f shift) -{ - *SE::Console << "TGameLevel::OnScroll"; - const float CONST_SCROLL_SCALE = 1.1f; - if (LevelState == CONST_LEVELSTATE_PLAYING || LevelState == CONST_LEVELSTATE_STANDBY) - { - ReflectorPos(0) -= CONST_SCROLL_SCALE*shift(0); - } - else if (LevelState == CONST_LEVELSTATE_PAUSE) - { - - - OutScale += shift(1)/320.f; - - TryGoToMenu(); - } -} - -void TGameLevel::TryGoToMenu() -{ - *SE::Console << "TGameLevel::TryGoToMenu"; - if (OutScale < 0.5f) - { - OutScale = 0.5f; - LevelState = CONST_LEVELSTATE_NODRAW; - Application->GoFromGameToMenu(); - } - if (OutScale > 1.f) - { - OutScale = 1.f; - } -} diff --git a/game/gamecode.h b/game/gamecode.h deleted file mode 100644 index b83f497..0000000 --- a/game/gamecode.h +++ /dev/null @@ -1,205 +0,0 @@ -#ifndef GAMECODE_H_INCLUDED -#define GAMECODE_H_INCLUDED - -#include "include/Engine.h" -#include "game_area_interface.h" - -#include - -using namespace SE; - - -const int CONST_BRICKSTATE_VISIBLE = 3; -const int CONST_BRICKSTATE_DISAPPEAR = 2; -const int CONST_BRICKSTATE_INVISIBLE = 1; -const int CONST_BRICKSTATE_APPEAR = 0; - -const float CONST_BRICK_DISAPPEAR_TIME = 200.f; -const float CONST_BRICK_APPEAR_TIME = 200.f; - -const int CONST_BRICKMATRIX_WIDTH = 12; -const int CONST_BRICKMATRIX_HEIGHT = 13; -const float CONST_BRICK_WIDTH = 37.5f; -const float CONST_BRICK_HEIGHT = 0.5f*CONST_BRICK_WIDTH; -const float CONST_BRICK_SHIFT_X = 15.f; -const float CONST_BRICK_SHIFT_Y = -16.f; - -const float CONST_BONUS_APPEAR_TIME = 400.f; -const float CONST_BONUS_FALL_SPEED = 100.f; -const float CONST_BONUS_GOTHROUGH_TIME = 8000.f; -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 int CONST_BONUS_TYPE_MULTIPLIER = 0; -const int CONST_BONUS_TYPE_GOTHROUGH = 1; -const int CONST_BONUS_TYPE_FLOOR = 2; - - -class TBrick -{ -protected: - int InitialLocked; - int Locked; //0, 1 or 2 - int State; - float StateTimer; - Vector4f Color; -public: - TBrick(); - void SetVisible(Vector4f color, int locked); - void SetInvisible(); - void TryDrawAppear(int ipos, int jpos); - void Update(size_t dt); - Vector2f GetPosFrom(int ipos, int jpos); - Vector4f GetColor(); - void Appear(Vector4f color, int locked); - void Appear(); - void Hit(); - void Disappear(); - int GetLocked(); - bool CanReact(); -}; - -class TBonusFalling -{ -protected: - float Lifetime; - Vector2f Pos; - std::string TexName; - int BonusType; //0 - multiplier, 1 - Go-through, 2 - floor -public: - TBonusFalling(Vector2f pos); - Vector2f GetPos(); - int GetType(); - void Draw(); - void Update(size_t dt); -}; - -struct TBall -{ - Vector2f Pos; - Vector2f Velocity; - Vector4f Color; - std::list TalePos; - - Vector2f BallInBlock; - Vector2f PrevBallInBlock; - - TBall(Vector2f pos, Vector2f velocity, Vector4f color); - Vector2f GetPos(); - Vector2f GetVelocityVector(); - - void Go(); - - void ReflectToLeft(); - void ReflectToRight(); - void ReflectToUp(); - void ReflectToDown(); - - void TryReflectOnReflector(Vector2f refPos); - - void Update(size_t dt); -}; - -typedef std::pair PairColorTexture; - -struct TBlockInstansingList -{ - //color-texture ---> and list of triangles for this color - std::list> ColorBlockList; -}; - - -struct TBallInstancingList -{ - std::map BallAndGlowList; -}; - -class TGameLevel : public TGameAreaAncestor -{ -protected: - std::string BkgTexture; - std::string LevelScreenTexture; - std::string LevelFileName; - - Vector2f ReflectorPos; - - int LevelState; - bool PrevLevelStateIsStandby; - float StateTimer; - - TBrick BlockMatrix[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT]; - TBlockInstansingList BlockInstansingList; - - bool TapInBackBtnArea(const Vector2f& pos); - - void ReloadBlockInstansingList(); - void SetFinished(); - void SetFinishFreeze(); - - void DrawBuffer(); - void DrawPauseButtons(); - - void DrawBallInstancingList(); - - bool RenderBufferReady; - - float OutScale; - - float OutScaleVelocity; - - void TryGoToMenu(); - - std::list BonusFallingList; - - std::list BallList; - - TBallInstancingList BallInstancingList; - - Vector4f BallColor; - - void ReloadBallInstancingList(); - void RefreshBallInstancingList(); - - - void UpdateBallList(size_t dt); - void MultiplyBalls(Vector2f pos, Vector2f velocity); - - Vector2f GetBlock(const Vector2f& pos); - void InitLevel(); - - float BonusGothroughTimer; - float BonusFloorTimer; - float BonusFloorPosY; - - Vector4f ParseColor(const std::string& s); - void ReloadLevel(); - -public: - TGameLevel(); - ~TGameLevel(); - - void FillWithFile(const std::string& filename); - - void SetStandBy(); - void SetLoading(const std::string& bkg, const std::string& levelscreen); - bool IsLoaded(); - - virtual void Draw(); - - void SetPause(); - bool IsPaused(); - void ReleasePause(); - - virtual void Update(size_t dt); - virtual void OnTapDown(Vector2f pos); - virtual void OnTapUp(Vector2f pos); - virtual void OnFling(Vector2f slideSpeed); - virtual void OnScroll(Vector2f shift); -}; - - - -#endif diff --git a/game/loadingcode.cpp b/game/loadingcode.cpp deleted file mode 100644 index 20a0b79..0000000 --- a/game/loadingcode.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "loadingcode.h" -#include "include/Engine.h" -#include "main_code.h" - -void TGameLoading::Draw() -{ - //*SE::Console << "TGameLoading::Draw"; - - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList[CONST_LOADING_BACKGROUND_BLACK]); - Renderer->DrawRect(Vector2f(0.f, 0.f), Vector2f(Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight())); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOADING_TEXTURE]); - Renderer->DrawRect(Vector2f(240.f - 128.f, 10.f), Vector2f(240.f + 128.f, 10.f + 64.f)); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); - Renderer->DrawRect(Vector2f(480.f - 256.f+50.f, 320.f - 64.f), Vector2f(480.f+50.f, 320.f)); - - CheckGlError(); - -} diff --git a/game/loadingcode.h b/game/loadingcode.h deleted file mode 100644 index 6ea2411..0000000 --- a/game/loadingcode.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef LOADINGCODE_H_INCLUDED -#define LOADINGCODE_H_INCLUDED - -#include "game_area_interface.h" - -using namespace SE; - -class TGameLoading : public TGameAreaAncestor -{ -public: - virtual void Draw(); -}; - - -#endif diff --git a/game/main_code.cpp b/game/main_code.cpp index 62be883..a0586ec 100644 --- a/game/main_code.cpp +++ b/game/main_code.cpp @@ -7,47 +7,6 @@ #include "include/Engine.h" -#include "menucode.h" - -#include "main_code.h" - -boost::signals2::signal OnTapUpSignal; -boost::signals2::signal OnTapUpAfterMoveSignal; -boost::signals2::signal OnTapDownSignal; -boost::signals2::signal OnFlingSignal; -boost::signals2::signal OnScrollSignal; - -boost::signals2::signal OnDrawSignal; - - -const std::string CONST_BLOCK_TEXTURE1 = "block1"; -const std::string CONST_BLOCK_TEXTURE2 = "block2"; -const std::string CONST_BLOCK_TEXTURE3 = "block3"; - -const std::string CONST_BONUS_GOTHROUGH_TEXTURE = "bonus_gothrough"; -const std::string CONST_BONUS_MULTIPLIER_TEXTURE = "bonus_multiplier"; -const std::string CONST_BONUS_FLOOR_TEXTURE = "bonus_floor"; - -const std::string CONST_BALL_TEXTURE = "ball"; -const std::string CONST_BALLGLOW_TEXTURE = "ball_glow"; - -const std::string CONST_REFLECTOR_TEXTURE = "reflector"; - -const std::string CONST_WALL_LEFT_TEXTURE = "wall_left"; -const std::string CONST_WALL_RIGHT_TEXTURE = "wall_right"; -const std::string CONST_WALL_UP_TEXTURE = "wall_up"; -const std::string CONST_WALL_BONUS_TEXTURE = "wall_bonus"; - -const std::string CONST_BACK_BTN_TEXTURE = "back_btn"; -const std::string CONST_SLIDE_UP_BTN_TEXTURE = "slide_up_btn"; -const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn"; -const std::string CONST_LOADING_TEXTURE = "loading"; -const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small"; -const std::string CONST_LOADING_BACKGROUND_BLACK = "loading_background_black"; -const std::string CONST_CREDITS_TEXTURE = "credits"; - -const float CONST_CREDITS_SHOW_TIME = 150.f; - TMyApplication* Application; @@ -73,421 +32,47 @@ void TMyApplication::InnerInit() *Console<<"APP INIT\n"; } srand (static_cast(time(NULL))); - GameState = CONST_GAMESTATE_PRELOADING; - StateTimer = 0.f; - - ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt"); - ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt"); - ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt"); + ResourceManager->ShaderManager.AddShader("DefaultShader", "texture-shader.vertex", "texture-shader.fragment"); Renderer->PushShader("DefaultShader"); - ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK); - ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE); - ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE); - - ResourceManager->TexList.AddTexture("console_bkg.bmp"); - - ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512); - - OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - Inited = true; + ResourceManager->FrameManager.AddFrameRenderBuffer("FrameBuffer", Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight()); Renderer->SetOrthoProjection(); - - Renderer->SetFullScreenViewport(); } void TMyApplication::InnerDeinit() { - Inited = false; - Loaded = false; - if (Console != NULL) - { - *Console<<"APP DEINIT\n"; - } - - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - - OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - - - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - - OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); - - - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - } void TMyApplication::InnerOnTapDown(Vector2f p) { - //-OnTapDownSignal(Vector2f(p.v[0], p.v[1])); - OnTapDownSignal(Vector2f(p(0), p(1))); } void TMyApplication::InnerOnTapUp(Vector2f p) { - OnTapUpSignal(Vector2f(p(0), p(1))); } void TMyApplication::InnerOnTapUpAfterMove(Vector2f p) { - OnTapUpAfterMoveSignal(Vector2f(p(0), p(1))); } void TMyApplication::InnerOnMove(Vector2f p, Vector2f shift) { - OnScrollSignal(Vector2f(shift(0), shift(1))); } -void TMyApplication::OnFling(Vector2f v) -{ -} - - -void TMyApplication::ApplySignalsToMenu() -{ - - OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnTapUpAfterMoveSignal.connect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - OnFlingSignal.connect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.connect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.connect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - -} - - -void TMyApplication::DisapplySignalsToMenu() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); -} - -void TMyApplication::ApplySignalsToGame() -{ - OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnTapDownSignal.connect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TMyApplication::DisapplySignalsToGame() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TMyApplication::ApplySignalsToCredits() -{ - OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - - -void TMyApplication::DisapplySignalsToCredits() -{ - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - -void TMyApplication::LoadResources() -{ - - TextureNamesToLoad.clear(); - - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_left.png", "main_menu_bkg_left")); - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_right.png", "main_menu_bkg_right")); - TextureNamesToLoad.push_back(std::pair("select_level.png", "select_level")); - TextureNamesToLoad.push_back(std::pair("shutterstock1.png", "shutterstock1")); - TextureNamesToLoad.push_back(std::pair("shutterstock2.png", "shutterstock2")); - TextureNamesToLoad.push_back(std::pair("shutterstock3.png", "shutterstock3")); - TextureNamesToLoad.push_back(std::pair("shutterstock4.png", "shutterstock4")); - TextureNamesToLoad.push_back(std::pair("shutterstock5.png", "shutterstock5")); - TextureNamesToLoad.push_back(std::pair("shutterstock6.png", "shutterstock6")); - TextureNamesToLoad.push_back(std::pair("shutterstock7.png", "shutterstock7")); - TextureNamesToLoad.push_back(std::pair("shutterstock8.png", "shutterstock8")); - TextureNamesToLoad.push_back(std::pair("shutterstock9.png", "shutterstock9")); - - TextureNamesToLoad.push_back(std::pair("shutterstock10.png", "shutterstock10")); - TextureNamesToLoad.push_back(std::pair("shutterstock11.png", "shutterstock11")); - TextureNamesToLoad.push_back(std::pair("shutterstock12.png", "shutterstock12")); - TextureNamesToLoad.push_back(std::pair("levelshot1.png", "levelshot1")); - TextureNamesToLoad.push_back(std::pair("levelshot2.png", "levelshot2")); - TextureNamesToLoad.push_back(std::pair("levelshot3.png", "levelshot3")); - TextureNamesToLoad.push_back(std::pair("levelshot4.png", "levelshot4")); - TextureNamesToLoad.push_back(std::pair("levelshot5.png", "levelshot5")); - TextureNamesToLoad.push_back(std::pair("levelshot6.png", "levelshot6")); - TextureNamesToLoad.push_back(std::pair("levelshot7.png", "levelshot7")); - TextureNamesToLoad.push_back(std::pair("levelshot8.png", "levelshot8")); - TextureNamesToLoad.push_back(std::pair("levelshot9.png", "levelshot9")); - TextureNamesToLoad.push_back(std::pair("levelshot10.png", "levelshot10")); - TextureNamesToLoad.push_back(std::pair("levelshot11.png", "levelshot11")); - TextureNamesToLoad.push_back(std::pair("levelshot12.png", "levelshot12")); - TextureNamesToLoad.push_back(std::pair("game_end.png", "game_end")); - - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE)); - -#ifdef TARGET_IOS - ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg"); -#else - //ResourceManager->SoundManager.LoadMusic("level1ogg.ogg"); -#endif - - ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt"); - ResourceManager->FontManager.PushFont("droid_sans14"); - - TryLoadSavedGame(); - -} - -void TMyApplication::TryLoadSavedGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - FILE* file = fopen(fileName.c_str(), "r"); - if (file != NULL) - { - char line[100]; - char* r; - r = fgets(line, 100, file); - if (r != NULL) - { - Menu.SetMenuItemCount(toint(r)); - } - fclose(file); - } -} - -void TMyApplication::TrySaveGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - std::string s = tostr(Menu.GetMenuItemCount()); - FILE* file = fopen(fileName.c_str(), "w"); - if (file != NULL) - { - fputs(s.c_str(), file); - fflush(file); - fclose(file); - } - -} - - - void TMyApplication::InnerDraw() { glDisable(GL_DEPTH_TEST); + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); - OnDrawSignal(); } void TMyApplication::InnerUpdate(size_t dt) { - - if (GameState == CONST_GAMESTATE_PRELOADING) - { - *SE::Console << "1CONST_GAMESTATE_PRELOADING"; - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - LoadResources(); - GameState = CONST_GAMESTATE_LOADING; - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_LOADING) - { - *SE::Console << "2CONST_GAMESTATE_LOADING"; - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - StateTimer -= 1.f; - } - - if (TextureNamesToLoad.size() != 0) - { - ResourceManager->TexList.AddTexture(TextureNamesToLoad.begin()->first, TextureNamesToLoad.begin()->second); - TextureNamesToLoad.erase(TextureNamesToLoad.begin()); - } - else - { - GameState = CONST_GAMESTATE_MENU; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - StateTimer = 0.f; - Loaded = true; - } - } - else if (GameState == CONST_GAMESTATE_LEVEL) - { - *SE::Console << "3CONST_GAMESTATE_LEVEL"; - GameLevel.Update(dt); - } - else if (GameState == CONST_GAMESTATE_MENU) - { - //*SE::Console << "4CONST_GAMESTATE_MENU"; - Menu.Update(dt); - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL) - { - *SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; - GameLevel.Update(dt); - if (GameLevel.IsLoaded()) - { - //*SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; - GameState = CONST_GAMESTATE_LEVEL; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - //CONNECT SLOT - DisapplySignalsToMenu(); - ApplySignalsToGame(); - } - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS) - { - *SE::Console << "6CONST_GAMESTATE_FROM_MENU_TO_CREDITS"; - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_CREDITS; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - ApplySignalsToCredits(); - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_CREDITS) - { - //*SE::Console << "7CONST_GAMESTATE_CREDITS"; - GameCredits.Update(dt); - } - else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU) - { - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_MENU; - StateTimer = 0.f; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - } - } -} - - -void TMyApplication::GoFromMenuToGame(int level) -{ -//#ifndef TARGET_IOS -// ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg"); -//#endif - - GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt"); - GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1)); - GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL; - OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - - DisapplySignalsToMenu(); - -} - -void TMyApplication::GoFromGameToMenu() -{ - //#ifndef TARGET_IOS -// ResourceManager->SoundManager.StopMusic("level1ogg.ogg"); -//#endif - TrySaveGame(); - DisapplySignalsToGame(); - ApplySignalsToMenu(); - GameState = CONST_GAMESTATE_MENU; - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); -} - -void TMyApplication::GoFromMenuToCredits() -{ - GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartAppear(); - OnDrawSignal.connect(1, boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - DisapplySignalsToMenu(); - -} - -void TMyApplication::GoFromCreditsToMenu() -{ - - GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartDisappear(); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - - DisapplySignalsToCredits(); -} - -void TMyApplication::MarkSetGameLevelPause() -{ - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - -void TMyApplication::MarkReleaseGameLevelPause() -{ - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - - -void TMyApplication::OpenNextLevel() -{ - Menu.OpenNextLevel(); -} - -bool TMyApplication::IsLoaded() -{ - return Loaded; -} - -bool TMyApplication::IsInited() -{ - return Inited; -} +} \ No newline at end of file diff --git a/game/main_code.h b/game/main_code.h index 6efa645..8cbd313 100644 --- a/game/main_code.h +++ b/game/main_code.h @@ -24,11 +24,6 @@ #include "boost/signals2.hpp"//Signal must be included after asio -#include "gamecode.h" -#include "menucode.h" -#include "creditscode.h" -#include "loadingcode.h" - using namespace SE; @@ -41,79 +36,11 @@ extern boost::signals2::signal OnScrollSignal; extern boost::signals2::signal OnDrawSignal; -extern const std::string CONST_BLOCK_TEXTURE1; -extern const std::string CONST_BLOCK_TEXTURE2; -extern const std::string CONST_BLOCK_TEXTURE3; - -extern const std::string CONST_BONUS_GOTHROUGH_TEXTURE; -extern const std::string CONST_BONUS_MULTIPLIER_TEXTURE; -extern const std::string CONST_BONUS_FLOOR_TEXTURE; - -extern const std::string CONST_BALL_TEXTURE; -extern const std::string CONST_BALLGLOW_TEXTURE; - -extern const std::string CONST_WALL_LEFT_TEXTURE; -extern const std::string CONST_WALL_RIGHT_TEXTURE; -extern const std::string CONST_WALL_UP_TEXTURE; -extern const std::string CONST_WALL_BONUS_TEXTURE; - - -extern const std::string CONST_REFLECTOR_TEXTURE; - -extern const std::string CONST_BACK_BTN_TEXTURE; - -extern const std::string CONST_SLIDE_UP_BTN_TEXTURE; -extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE; - -extern const std::string CONST_BACK_BTN_TEXTURE; -extern const std::string CONST_SLIDE_UP_BTN_TEXTURE; -extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE; -extern const std::string CONST_LOADING_TEXTURE; -extern const std::string CONST_LOGO_SMALL_TEXTURE; -extern const std::string CONST_LOADING_BACKGROUND_BLACK; -extern const std::string CONST_CREDITS_TEXTURE; - - - -const int CONST_GAMESTATE_LEVEL = 1; -const int CONST_GAMESTATE_MENU = 0; -const int CONST_GAMESTATE_FROM_MENU_TO_LEVEL = 2; -const int CONST_GAMESTATE_FROM_MENU_TO_CREDITS = 3; -const int CONST_GAMESTATE_CREDITS = 4; -const int CONST_GAMESTATE_FROM_CREDITS_TO_MENU = 5; -const int CONST_GAMESTATE_LOADING = 6; -const int CONST_GAMESTATE_PRELOADING = 7; - - class TMyApplication : public TApplication { protected: - TGameMenu Menu; - TGameLevel GameLevel; - TGameCredits GameCredits; - TGameLoading GameLoading; - - int GameState; - float StateTimer; - - void TryLoadSavedGame(); - void TrySaveGame(); - - bool Inited; - - std::vector > TextureNamesToLoad; - - void ApplySignalsToMenu(); - void DisapplySignalsToMenu(); - void ApplySignalsToGame(); - void DisapplySignalsToGame(); - void ApplySignalsToCredits(); - void DisapplySignalsToCredits(); - public: - bool Loaded; - - TMyApplication() : TApplication(), Loaded(false), Inited(false) { } + TMyApplication() : TApplication() { } virtual void InnerInit(); @@ -123,21 +50,6 @@ public: virtual void InnerUpdate(size_t dt); - void GoFromMenuToGame(int level); - void GoFromGameToMenu(); - void GoFromMenuToCredits(); - void GoFromCreditsToMenu(); - void MarkSetGameLevelPause(); - void MarkReleaseGameLevelPause(); - - void OpenNextLevel(); - - bool IsLoaded(); - - bool IsInited(); - - void LoadResources(); - virtual void InnerOnTapDown(Vector2f p); virtual void InnerOnTapUp(Vector2f p); @@ -146,13 +58,10 @@ public: virtual void InnerOnMove(Vector2f p, Vector2f shift); - virtual void OnFling(Vector2f v); - }; extern TMyApplication* Application; - #endif diff --git a/game/menucode.cpp b/game/menucode.cpp deleted file mode 100644 index 55baa38..0000000 --- a/game/menucode.cpp +++ /dev/null @@ -1,220 +0,0 @@ -#include "menucode.h" -#include "main_code.h" - -const float CONST_SPEED_NEG_ACCELERATION_K = 0.03f; - -const float CONST_MENU_POS_K = 0.25f; - -const float CONST_MENU_WINDOW_DISTANCE = 240.f + 40.f; - -const float CONST_SHIFT_ON_SIDE = 0.f; - -TGameMenu::TGameMenu() - : MenuSpeed(0) - , MenuPos(0) - , HoldToTap(false) - , MenuItemCount(1) - , SelectedGame(-1) -{ -} - - -void TGameMenu::Draw() -{ -// *SE::Console << "TGameMenu::Draw"; - CheckGlError("Draw TGameMenu"); - RenderUniform1i("sel", 0); - RenderUniform1f("Transparency", 1.f); - float bkgShift = MenuPos*0.1f - 100.f; - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_left"]); - Renderer->DrawRect(Vector2f(bkgShift,0.f), Vector2f(480.f+bkgShift,320.f)); - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_right"]); - Renderer->DrawRect(Vector2f(480.f+bkgShift,0.f), Vector2f(960.f+bkgShift,320.f)); - - - if (SelectedGame == 0) - { - RenderUniform1i("sel", 1); - } - else - { - RenderUniform1i("sel", 0); - } - - for (int i=0; iTexList["levelshot"+tostr(i+1)]); - Renderer->DrawRect(Vector2f(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i,80.f), Vector2f(160.f+240.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i, 240.f)); - } - - if (MenuItemCount == 12) - { - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["game_end"]); - Renderer->DrawRect(Vector2f(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12,160.f - 64.f), Vector2f(160.f+256.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12, 160.f + 64.f)); - - } - - - - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["select_level"]); - Renderer->DrawRect(Vector2f(240.f-128.f, 241.f), Vector2f(240.f+128.f, 305.f)); - - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["logo_small"]); - Renderer->DrawRect(Vector2f(240.f-128.f+15.f, 0.f), Vector2f(240.f+128.f+15.f, 64.f)); - - CheckGlError("Draw TGameMenu 2"); - - -} - -void TGameMenu::Update(size_t dt) -{ - if (HoldToTap) - return; - // - float k; - - MenuPos = MenuPos + MenuSpeed*dt/1000.f; - - int menuItemToShowCount; - - if (MenuItemCount == 12) - { - menuItemToShowCount = 13; - } - else - { - menuItemToShowCount = MenuItemCount; - } - - float acc; - - if (MenuItemCount == 1) - { - k = 3; - } - else - { - k = fabs( - MenuPos - ((menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f)) / ((MenuItemCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f); - } - - acc = -MenuSpeed * CONST_SPEED_NEG_ACCELERATION_K * k; - - - float xleft = (- MenuPos + CONST_SHIFT_ON_SIDE - (menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE); - - if (xleft < 0) - { - xleft = 0; - } - - acc += xleft*CONST_MENU_POS_K; - - float xright = (MenuPos - CONST_SHIFT_ON_SIDE); - - if (xright < 0) - { - xright = 0; - } - - acc -= xright*CONST_MENU_POS_K; - - if ((MenuSpeed + acc*dt) * MenuSpeed < 0) //Check if MenuSpeed changes direction - { - MenuSpeed = 0; - } - else - { - MenuSpeed += acc*dt; - } - - -} - -void TGameMenu::OnTapDown(Vector2f pos) -{ - *SE::Console << "TGameMenu::OnTapDown"; - HoldToTap = true; - - if (pos(1)<64.f && pos(0)>=265.f-128.f && pos(0)<=265.f+128.f) - { - Application->GoFromMenuToCredits(); - return; - } - - Vector2f realPos = pos - Vector2f(MenuPos, 0); - - if (realPos(1) >= 80.f && realPos(1) <= 240.f) - { - float x = realPos(0) - 160.f; - - int p = 0; - while (x >280.f) - { - x -= 280.f; - p++; - } - - if (x <= 240.f && x >= 0.f && (pGoFromMenuToGame(SelectedGame); - SelectedGame = -1; - } -} - -void TGameMenu::OnTapUpAfterMove(Vector2f pos) -{ - HoldToTap = false; -} - - -void TGameMenu::OnFling(Vector2f slideSpeed) -{ - *SE::Console << "TGameMenu::OnFling"; - HoldToTap = false; - MenuSpeed = slideSpeed(0); -} - -void TGameMenu::OnScroll(Vector2f shift) -{ - MenuPos = MenuPos - shift(0); -} - -void TGameMenu::OpenNextLevel() -{ - *SE::Console << "TGameMenu::OpenNextLevel"; - if (MenuItemCount < 12) - { - MenuItemCount++; - } -} - -int TGameMenu::GetMenuItemCount() -{ - *SE::Console << "TGameMenu::GetMenuItemCount"; - return MenuItemCount; -} - -void TGameMenu::SetMenuItemCount(int menuItemCount) -{ - *SE::Console << "TGameMenu::SetMenuItemCount"; - MenuItemCount = menuItemCount; -} diff --git a/game/menucode.h b/game/menucode.h deleted file mode 100644 index 9cf998f..0000000 --- a/game/menucode.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef MENUCODE_H_INCLUDED -#define MENUCODE_H_INCLUDED - -#include "include/Engine.h" -#include "game_area_interface.h" - -using namespace SE; - - -class TGameMenu : public TGameAreaAncestor -{ -protected: - float MenuSpeed; - float MenuPos; - - bool HoldToTap; - - int MenuItemCount; - - int SelectedGame; - - -public: - TGameMenu(); - virtual void Draw(); - virtual void Update(size_t dt); - virtual void OnTapDown(Vector2f pos); - virtual void OnTapUp(Vector2f pos); - virtual void OnTapUpAfterMove(Vector2f pos); - virtual void OnFling(Vector2f slideSpeed); - virtual void OnScroll(Vector2f shift); - - void OpenNextLevel(); - int GetMenuItemCount(); - void SetMenuItemCount(int menuItemCount); - -}; - - - -#endif diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj index a6ed2c0..c92d6ae 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj +++ b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj @@ -163,20 +163,11 @@ - - - - - - - - - diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters index b4ac7b9..55c6552 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters +++ b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters @@ -21,18 +21,6 @@ Файлы исходного кода - - Файлы исходного кода - - - Файлы исходного кода - - - Файлы исходного кода - - - Файлы исходного кода - @@ -41,20 +29,5 @@ Заголовочные файлы - - Заголовочные файлы - - - Заголовочные файлы - - - Заголовочные файлы - - - Заголовочные файлы - - - Заголовочные файлы - \ No newline at end of file diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/main.cpp b/windows/DoubleHitBalls-win/DoubleHitBalls-win/main.cpp index 3f248c6..29fda84 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/main.cpp +++ b/windows/DoubleHitBalls-win/DoubleHitBalls-win/main.cpp @@ -8,8 +8,8 @@ int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst, LPSTR lpszCmdLine, int nCmdShow) { - int width = 480; - int height = 320; + int width = 1280; + int height = 720; if (CreateEngine(width, height))