Compare commits
8 Commits
master
...
antialiasi
Author | SHA1 | Date | |
---|---|---|---|
c5c53f1e2b | |||
747bfaba7c | |||
f70741f6e6 | |||
b2a0901369 | |||
75b76fc236 | |||
bf04c70f50 | |||
f2e238ed5e | |||
|
ed4a0178da |
1
.gitignore
vendored
@ -73,5 +73,6 @@ iOSInjectionProject/
|
||||
/windows/DoubleHitBalls-win/DoubleHitBalls-win/log.txt
|
||||
/windows/DoubleHitBalls-win/DoubleHitBalls-win/progress.txt
|
||||
/windows/DoubleHitBalls-win/DoubleHitBalls-win/resources
|
||||
/windows/DoubleHitBalls-win/**/*.user
|
||||
*.db
|
||||
*.opendb
|
19
assets/SSAA_4X.frag
Executable file
@ -0,0 +1,19 @@
|
||||
precision mediump float;
|
||||
|
||||
uniform sampler2D Texture;
|
||||
uniform vec2 samplesOffset[4];
|
||||
|
||||
varying vec2 texCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 color = vec3(0, 0, 0);
|
||||
for (int i = 0; i < 4; ++i)
|
||||
{
|
||||
color += texture2D(Texture, texCoord + samplesOffset[i]).rgb;
|
||||
}
|
||||
color /= 4;
|
||||
|
||||
//gl_FragColor = vec4(texture2D(Texture, texCoord ), 1.0);
|
||||
gl_FragColor = vec4(color, 1.0);
|
||||
}
|
11
assets/SSAA_4X.vertex
Executable file
@ -0,0 +1,11 @@
|
||||
attribute vec3 vPosition;
|
||||
attribute vec2 vTexCoord;
|
||||
varying vec2 texCoord;
|
||||
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
|
||||
texCoord = vTexCoord;
|
||||
}
|
Before Width: | Height: | Size: 6.6 KiB |
BIN
assets/ball.png
Before Width: | Height: | Size: 962 B |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 759 B |
Before Width: | Height: | Size: 1022 B |
Before Width: | Height: | Size: 564 B |
7
assets/color_fragment.txt
Executable file
@ -0,0 +1,7 @@
|
||||
precision mediump float;
|
||||
varying vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = color;
|
||||
}
|
11
assets/color_vertex.txt
Executable file
@ -0,0 +1,11 @@
|
||||
attribute vec3 vPosition;
|
||||
attribute vec4 vColor;
|
||||
varying vec4 color;
|
||||
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
|
||||
color = vColor;
|
||||
}
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.4 KiB |
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
Before Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 146 KiB |
Before Width: | Height: | Size: 152 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 217 KiB |
Before Width: | Height: | Size: 177 KiB |
52
assets/ms_fragment.txt
Executable file
@ -0,0 +1,52 @@
|
||||
precision mediump float;
|
||||
varying vec4 color;
|
||||
varying vec3 position;
|
||||
|
||||
//uniform vec4 lineParams;
|
||||
//uniform vec4 startPointEndPoint;
|
||||
|
||||
varying vec3 lineParams;
|
||||
varying vec4 startPointEndPoint;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
float a = lineParams.x;
|
||||
float b = lineParams.y;
|
||||
float c = lineParams.z;
|
||||
|
||||
float Xa = startPointEndPoint.r;
|
||||
float Ya = startPointEndPoint.g;
|
||||
|
||||
float Xb = startPointEndPoint.b;
|
||||
float Yb = startPointEndPoint.a;
|
||||
|
||||
|
||||
|
||||
float distance;
|
||||
|
||||
|
||||
float distanceToA = (Xa - position.x)*(Xb - Xa) + (Ya - position.y)*(Yb - Ya);
|
||||
|
||||
float distanceToB = (Xb - position.x)*(Xb - Xa) + (Yb - position.y)*(Yb - Ya);
|
||||
|
||||
|
||||
|
||||
if (distanceToA * distanceToB > 0)
|
||||
{
|
||||
float len = sqrt((Xb - Xa)*(Xb - Xa) + (Yb - Ya)*(Yb - Ya));
|
||||
distance = max(abs(distanceToA/len), abs(distanceToB/len));
|
||||
}
|
||||
else
|
||||
{
|
||||
distance = abs(a*position.x + b*position.y + c);
|
||||
}
|
||||
|
||||
|
||||
float t = clamp(1.2 / (distance + 1.0) - 0.5, 0.0, 1.0);
|
||||
|
||||
|
||||
gl_FragColor = vec4(color.rgb, color.a*t);
|
||||
|
||||
//gl_FragColor = vec4(color.rgb*clamp(1.2 / (distance + 1.0) - 0.5, 0.0, 1.0), 1.0);
|
||||
}
|
22
assets/ms_vertex.txt
Executable file
@ -0,0 +1,22 @@
|
||||
attribute vec3 vPosition;
|
||||
attribute vec4 vColor;
|
||||
attribute vec3 vLineParams;
|
||||
attribute vec4 vStartPointEndPoint;
|
||||
|
||||
varying vec3 position;
|
||||
varying vec4 color;
|
||||
varying vec3 lineParams;
|
||||
varying vec4 startPointEndPoint;
|
||||
|
||||
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = ProjectionMatrix * vec4(vPosition.xyz, 1.0);
|
||||
|
||||
position = vPosition;
|
||||
color = vColor;
|
||||
lineParams = vLineParams;
|
||||
startPointEndPoint = vStartPointEndPoint;
|
||||
}
|
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 2.3 KiB |
@ -7,7 +7,7 @@ void main()
|
||||
{
|
||||
vec4 color = texture2D(Texture,texCoord).rgba;
|
||||
|
||||
gl_FragColor = vec4(color.rgb, color.a * Transparency);
|
||||
gl_FragColor = vec4(color.rgb, 1.0);
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 480 KiB |
Before Width: | Height: | Size: 362 KiB |
Before Width: | Height: | Size: 433 KiB |
Before Width: | Height: | Size: 370 KiB |
Before Width: | Height: | Size: 464 KiB |
Before Width: | Height: | Size: 532 KiB |
Before Width: | Height: | Size: 611 KiB |
Before Width: | Height: | Size: 509 KiB |
Before Width: | Height: | Size: 503 KiB |
Before Width: | Height: | Size: 553 KiB |
Before Width: | Height: | Size: 597 KiB |
Before Width: | Height: | Size: 474 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 4.1 KiB |
@ -426,6 +426,8 @@ void TBall::Update(size_t dt)
|
||||
//===========================================
|
||||
//===========================================
|
||||
|
||||
TRenderPair pair;
|
||||
TRenderPair rect;
|
||||
|
||||
TGameLevel::TGameLevel()
|
||||
{
|
||||
@ -446,6 +448,44 @@ TGameLevel::TGameLevel()
|
||||
|
||||
BonusFloorPosY = 0.f;
|
||||
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 0, 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 320, 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(480, 320, 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 0, 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 320, 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(480, 0, 0));
|
||||
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(0, 1, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(0, 0, 1, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(0, 0, 1, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(0, 1, 0, 1));
|
||||
|
||||
pair.first.ShaderName = "ColorShader";
|
||||
|
||||
pair.second.RefreshBuffer();
|
||||
|
||||
|
||||
|
||||
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 0, 0));
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 320, 0));
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(480, 320, 0));
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(480, 320, 0));
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(480, 0, 0));
|
||||
rect.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(0, 0, 0));
|
||||
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(0, 0));
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(0, 1));
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(1, 1));
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(1, 1));
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(1, 0));
|
||||
rect.second.Data.Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(Vector2f(0, 0));
|
||||
|
||||
rect.first.ShaderName = "ColorShader";
|
||||
|
||||
rect.second.RefreshBuffer();
|
||||
}
|
||||
|
||||
TGameLevel::~TGameLevel()
|
||||
@ -735,10 +775,9 @@ void TGameLevel::Draw()
|
||||
|
||||
bool mustShowButtons = ((LevelState == CONST_LEVELSTATE_PAUSE) || (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE));
|
||||
|
||||
bool pause = (mustShowButtons || (LevelState == CONST_LEVELSTATE_FINISHED));
|
||||
|
||||
|
||||
bool renderBufferReady = RenderBufferReady;
|
||||
|
||||
bool pause = true || (mustShowButtons || (LevelState == CONST_LEVELSTATE_FINISHED));
|
||||
|
||||
if (pause && renderBufferReady)
|
||||
{
|
||||
@ -764,89 +803,96 @@ void TGameLevel::Draw()
|
||||
|
||||
Renderer->SwitchToFrameBuffer("LevelBuffer");
|
||||
Renderer->SetProjectionMatrix(480.f, 320.f);
|
||||
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
glClearColor(0.0f, 0.0f, 1.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<TBall>::iterator iBall;
|
||||
|
||||
Renderer->PushShader("BrickShader");
|
||||
|
||||
|
||||
for (int i=0; i<CONST_BRICKMATRIX_WIDTH; i++)
|
||||
{
|
||||
for (int j=0; j<CONST_BRICKMATRIX_HEIGHT; j++)
|
||||
{
|
||||
BlockMatrix[i][j].TryDrawAppear(i,j); //Draws only appearing/disappearing blocks
|
||||
}
|
||||
}
|
||||
|
||||
RenderUniform1f("Transparency", 1.f);
|
||||
// glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[BkgTexture]);
|
||||
//Renderer->DrawRect(Vector2f(0, 0), Vector2f(480.f, 320.f));
|
||||
//
|
||||
//std::list<TBall>::iterator iBall;
|
||||
//
|
||||
//Renderer->PushShader("BrickShader");
|
||||
//
|
||||
//
|
||||
//for (int i=0; i<CONST_BRICKMATRIX_WIDTH; i++)
|
||||
// {
|
||||
// for (int j=0; j<CONST_BRICKMATRIX_HEIGHT; j++)
|
||||
// {
|
||||
// BlockMatrix[i][j].TryDrawAppear(i,j); //Draws only appearing/disappearing blocks
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// RenderUniform1f("Transparency", 1.f);
|
||||
|
||||
std::list<std::pair<PairColorTexture, TTriangleList>>::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<TBonusFalling>::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);
|
||||
|
||||
// std::list<std::pair<PairColorTexture, TTriangleList>>::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<TBonusFalling>::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 (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);
|
||||
}
|
||||
|
||||
TRenderParamsSetter params(pair.first);
|
||||
Renderer->DrawTriangleList(pair.second);
|
||||
}
|
||||
|
||||
CheckGlError();
|
||||
|
||||
if (pause && !renderBufferReady)
|
||||
{
|
||||
|
||||
@ -905,29 +951,37 @@ void TGameLevel::DrawBallInstancingList()
|
||||
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->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->DrawRect(RectPos-RectSize, RectPos+RectSize);
|
||||
|
||||
Renderer->PopShader();
|
||||
// Renderer->PopShader();
|
||||
|
||||
|
||||
|
||||
{
|
||||
TRenderParamsSetter params(rect.first);
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->FrameManager.GetFrameTexture("LevelBuffer"));
|
||||
Renderer->DrawTriangleList(rect.second);
|
||||
}
|
||||
|
||||
CheckGlError();
|
||||
}
|
||||
|
507
game/main_code.cpp
Normal file → Executable file
@ -7,49 +7,77 @@
|
||||
|
||||
#include "include/Engine.h"
|
||||
|
||||
#include "menucode.h"
|
||||
|
||||
#include "main_code.h"
|
||||
|
||||
boost::signals2::signal<void (Vector2f)> OnTapUpSignal;
|
||||
boost::signals2::signal<void (Vector2f)> OnTapUpAfterMoveSignal;
|
||||
boost::signals2::signal<void (Vector2f)> OnTapDownSignal;
|
||||
boost::signals2::signal<void (Vector2f)> OnFlingSignal;
|
||||
boost::signals2::signal<void (Vector2f)> OnScrollSignal;
|
||||
|
||||
boost::signals2::signal<void ()> 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;
|
||||
|
||||
static const float BUFFER_DISTANCE = 50.f;
|
||||
|
||||
|
||||
TRenderPair linesToRenderBoxes(const std::vector<std::pair<Vector2f, Vector2f>>& lineArr)
|
||||
{
|
||||
TRenderPair pair;
|
||||
|
||||
for (size_t i = 0; i < lineArr.size(); i++)
|
||||
{
|
||||
|
||||
Vector2f startPoint = lineArr[i].first;
|
||||
Vector2f endPoint = lineArr[i].second;
|
||||
|
||||
Vector2f renderAreaStart{ std::min<float>(startPoint(0), endPoint(0)) - BUFFER_DISTANCE, std::min<float>(startPoint(1), endPoint(1)) - BUFFER_DISTANCE };
|
||||
|
||||
Vector2f renderAreEnd{ std::max<float>(startPoint(0), endPoint(0)) + BUFFER_DISTANCE, std::max<float>(startPoint(1), endPoint(1)) + BUFFER_DISTANCE };
|
||||
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreaStart(0), renderAreaStart(1), 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreaStart(0), renderAreEnd(1), 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreEnd(0), renderAreEnd(1), 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreaStart(0), renderAreaStart(1), 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreEnd(0), renderAreEnd(1), 0));
|
||||
pair.second.Data.Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(Vector3f(renderAreEnd(0), renderAreaStart(1), 0));
|
||||
|
||||
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
pair.second.Data.Vec4CoordArr[CONST_STRING_COLOR_ATTRIB].push_back(Vector4f(1, 0, 0, 1));
|
||||
|
||||
Vector2f lineVec = endPoint - startPoint;
|
||||
Vector2f lineNormVec = { -lineVec(1), lineVec(0) };
|
||||
|
||||
lineNormVec.normalize();
|
||||
|
||||
//float distance = abs(normVec.x*(position.x - startPoint.x) + normVec.y*(position.y - startPoint.y));
|
||||
//distance = a*x + b*y + c, here we calculate a, b,c and pass them to shader
|
||||
float a = lineNormVec(0);
|
||||
float b = lineNormVec(1);
|
||||
float c = -(lineNormVec(0)*startPoint(0) + lineNormVec(1)*startPoint(1));
|
||||
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
pair.second.Data.Vec3CoordArr["vLineParams"].push_back(Vector3f(a, b, c));
|
||||
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
pair.second.Data.Vec4CoordArr["vStartPointEndPoint"].push_back(Vector4f(startPoint(0), startPoint(1), endPoint(0), endPoint(1)));
|
||||
|
||||
|
||||
}
|
||||
|
||||
pair.second.RefreshBuffer();
|
||||
pair.first = TRenderParams().withShader("AntialiasingShader");
|
||||
|
||||
return pair;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TMyApplication::InnerInit()
|
||||
{
|
||||
@ -58,7 +86,8 @@ void TMyApplication::InnerInit()
|
||||
|
||||
#ifdef TARGET_WIN32
|
||||
#ifdef NDEBUG
|
||||
ST::PathToResources = "resources/";
|
||||
//ST::PathToResources = "resources/";
|
||||
ST::PathToResources = "../../../assets/";
|
||||
#else
|
||||
ST::PathToResources = "../../../assets/";
|
||||
#endif
|
||||
@ -73,30 +102,37 @@ void TMyApplication::InnerInit()
|
||||
*Console<<"APP INIT\n";
|
||||
}
|
||||
srand (static_cast<size_t>(time(NULL)));
|
||||
GameState = CONST_GAMESTATE_PRELOADING;
|
||||
StateTimer = 0.f;
|
||||
|
||||
ResourceManager->ShaderManager.AddShader("AntialiasingShader", "ms_vertex.txt", "ms_fragment.txt");
|
||||
|
||||
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");
|
||||
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);
|
||||
std::vector<std::pair<Vector2f, Vector2f>> lineArr;
|
||||
|
||||
OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
Inited = true;
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
lineArr.push_back({ {50.f + i * 20.f, 50.f}, { 60.f + i * 20.f, 440.f } });
|
||||
|
||||
lineArr.push_back({ { 60.f + i * 20.f, 440.f },{ 70.f + i * 20.f, 50.f } });
|
||||
};
|
||||
|
||||
|
||||
|
||||
lineRenderPair = linesToRenderBoxes(lineArr);
|
||||
|
||||
Renderer->PushShader("AntialiasingShader");
|
||||
|
||||
Renderer->SetOrthoProjection();
|
||||
|
||||
Renderer->SetFullScreenViewport();
|
||||
|
||||
Inited = true;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void TMyApplication::InnerDeinit()
|
||||
@ -107,379 +143,66 @@ void TMyApplication::InnerDeinit()
|
||||
{
|
||||
*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::OnMouseWheel(short int delta)
|
||||
{
|
||||
scale += (delta > 0 ? 1 : -1) * 0.25;
|
||||
if(scale < 0.25) {
|
||||
scale = 0.25;
|
||||
}
|
||||
}
|
||||
|
||||
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<std::string, std::string>("main_menu_bkg_left.png", "main_menu_bkg_left"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("main_menu_bkg_right.png", "main_menu_bkg_right"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("select_level.png", "select_level"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock1.png", "shutterstock1"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock2.png", "shutterstock2"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock3.png", "shutterstock3"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock4.png", "shutterstock4"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock5.png", "shutterstock5"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock6.png", "shutterstock6"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock7.png", "shutterstock7"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock8.png", "shutterstock8"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock9.png", "shutterstock9"));
|
||||
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock10.png", "shutterstock10"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock11.png", "shutterstock11"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock12.png", "shutterstock12"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot1.png", "levelshot1"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot2.png", "levelshot2"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot3.png", "levelshot3"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot4.png", "levelshot4"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot5.png", "levelshot5"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot6.png", "levelshot6"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot7.png", "levelshot7"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot8.png", "levelshot8"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot9.png", "levelshot9"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot10.png", "levelshot10"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot11.png", "levelshot11"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot12.png", "levelshot12"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("game_end.png", "game_end"));
|
||||
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(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);
|
||||
|
||||
//Render the frame
|
||||
Renderer->SetProjectionMatrix(512.f, 512.f);
|
||||
Renderer->PushMatrix();
|
||||
Renderer->ScaleMatrix(scale);
|
||||
|
||||
OnDrawSignal();
|
||||
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
|
||||
CheckGlError("");
|
||||
|
||||
TRenderParamsSetter params(lineRenderPair.first);
|
||||
Renderer->DrawTriangleList(lineRenderPair.second);
|
||||
|
||||
Renderer->PopMatrix();
|
||||
CheckGlError("");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
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()
|
||||
|
91
game/main_code.h
Normal file → Executable file
@ -24,93 +24,19 @@
|
||||
|
||||
#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;
|
||||
|
||||
|
||||
extern boost::signals2::signal<void(Vector2f)> OnTapUpSignal;
|
||||
extern boost::signals2::signal<void(Vector2f)> OnTapUpAfterMoveSignal;
|
||||
|
||||
extern boost::signals2::signal<void(Vector2f)> OnTapDownSignal;
|
||||
extern boost::signals2::signal<void(Vector2f)> OnFlingSignal;
|
||||
extern boost::signals2::signal<void(Vector2f)> OnScrollSignal;
|
||||
|
||||
extern boost::signals2::signal<void()> 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<std::pair<std::string, std::string> > TextureNamesToLoad;
|
||||
|
||||
void ApplySignalsToMenu();
|
||||
void DisapplySignalsToMenu();
|
||||
void ApplySignalsToGame();
|
||||
void DisapplySignalsToGame();
|
||||
void ApplySignalsToCredits();
|
||||
void DisapplySignalsToCredits();
|
||||
float scale = 1.0;
|
||||
|
||||
public:
|
||||
TRenderPair lineRenderPair;
|
||||
|
||||
bool Loaded;
|
||||
|
||||
TMyApplication() : TApplication(), Loaded(false), Inited(false) { }
|
||||
@ -123,20 +49,11 @@ 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 OnMouseWheel(short int delta);
|
||||
|
||||
virtual void InnerOnTapDown(Vector2f p);
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
<ProjectGuid>{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>DoubleHitBallswin</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
@ -48,7 +49,7 @@
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
@ -116,7 +117,7 @@
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/debug/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510;../x64/Debug</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/stage/x64/lib;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/debug/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510;../x64/Debug</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libjpeg.lib;libpng.lib;Engine.lib;opengl32.lib;glu32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
@ -150,7 +151,7 @@
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;EIGEN_DONT_ALIGN_STATICALLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/release/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_67_0/;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@ -158,25 +159,16 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/release/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510;../x64/Release</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_67_0/stage/lib;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510;../x64/Release</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libjpeg.lib;libpng.lib;Engine.lib;opengl32.lib;glu32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\game\creditscode.cpp" />
|
||||
<ClCompile Include="..\..\..\game\gamecode.cpp" />
|
||||
<ClCompile Include="..\..\..\game\loadingcode.cpp" />
|
||||
<ClCompile Include="..\..\..\game\main_code.cpp" />
|
||||
<ClCompile Include="..\..\..\game\menucode.cpp" />
|
||||
<ClCompile Include="main.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\game\creditscode.h" />
|
||||
<ClInclude Include="..\..\..\game\gamecode.h" />
|
||||
<ClInclude Include="..\..\..\game\game_area_interface.h" />
|
||||
<ClInclude Include="..\..\..\game\loadingcode.h" />
|
||||
<ClInclude Include="..\..\..\game\main_code.h" />
|
||||
<ClInclude Include="..\..\..\game\menucode.h" />
|
||||
<ClInclude Include="main.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
@ -21,18 +21,6 @@
|
||||
<ClCompile Include="..\..\..\game\main_code.cpp">
|
||||
<Filter>Файлы исходного кода</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\game\menucode.cpp">
|
||||
<Filter>Файлы исходного кода</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\game\creditscode.cpp">
|
||||
<Filter>Файлы исходного кода</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\game\gamecode.cpp">
|
||||
<Filter>Файлы исходного кода</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\game\loadingcode.cpp">
|
||||
<Filter>Файлы исходного кода</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="main.h">
|
||||
@ -41,20 +29,5 @@
|
||||
<ClInclude Include="..\..\..\game\main_code.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\game\menucode.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\game\creditscode.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\game\game_area_interface.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\game\gamecode.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\game\loadingcode.h">
|
||||
<Filter>Заголовочные файлы</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -8,8 +8,8 @@ int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
|
||||
LPSTR lpszCmdLine, int nCmdShow)
|
||||
{
|
||||
|
||||
int width = 480;
|
||||
int height = 320;
|
||||
int width = 512;
|
||||
int height = 512;
|
||||
|
||||
|
||||
if (CreateEngine(width, height))
|
||||
|