From bf848cd46ce2d8e42fe55edd7ab53929497d1afd Mon Sep 17 00:00:00 2001
From: = <=>
Date: Thu, 25 May 2017 13:26:08 +0200
Subject: [PATCH] When player is to high, camera follows Textures can be
repeated over entity
---
app/app.iml | 1 -
.../assets/debug/levelpack_01.xml | 44 --
.../assets/debug/levelpacks/Grasslands.xml | 468 +++++++++---------
.../assets/debug/levelpacks/Testcave.xml | 115 -----
.../debug/shader/entityVertexShader.glsl | 5 +
.../assets/debug/testlevelpack.xml | 33 --
.../blame/res/debug/single/drawable.json | 32 +-
.../blame/res/debug/single/layout.json | 12 +-
.../incremental/mergeDebugAssets/merger.xml | 2 +-
.../res/merged/debug/drawable/goal.png | Bin 622 -> 179 bytes
.../res/merged/debug/layout/start_screen.xml | 2 +-
.../intermediates/res/resources-debug.ap_ | Bin 2411419 -> 2410971 bytes
app/src/main/assets/Grasslands.xml | 285 -----------
app/src/main/assets/Icy Mountains.xml | 57 ---
app/src/main/assets/levelpack_01.xml | 44 --
app/src/main/assets/levelpacks/Grasslands.xml | 468 +++++++++---------
app/src/main/assets/levelpacks/Testcave.xml | 115 -----
.../assets/shader/entityVertexShader.glsl | 5 +
app/src/main/assets/testlevelpack.xml | 33 --
.../endlessroll/entities/Background.java | 3 +-
.../julian/endlessroll/entities/Entity.java | 10 +
.../julian/endlessroll/entities/Goal.java | 3 +-
.../julian/endlessroll/entities/Obstacle.java | 6 +-
.../entities/particles/Particle.java | 2 +-
.../entities/particles/ParticleSource.java | 8 +-
.../entities/textures/TexturePack.java | 4 +-
.../entities/tileLists/TileList.java | 12 +-
.../endlessroll/entities/tools/Bomb.java | 2 +-
.../endlessroll/entities/tools/ToolSlot.java | 5 -
.../julian/endlessroll/levels/LevelPack.java | 8 +-
.../levels/worlds/{Theme.java => World.java} | 8 +-
.../julian/endlessroll/main/game/Camera.java | 47 ++
.../julian/endlessroll/main/game/Game.java | 16 +-
.../endlessroll/main/game/GameScene.java | 18 +-
.../julian/endlessroll/main/game/Physics.java | 3 +-
.../julian/endlessroll/main/game/Scene.java | 35 +-
.../endlessroll/main/game/StartScene.java | 4 +-
.../julian/endlessroll/main/game/Timer.java | 2 +-
.../endlessroll/main/screens/StartScreen.java | 2 +-
.../endlessroll/rendering/MatrixCreator.java | 5 +-
.../rendering/renderer/GameRenderer.java | 7 +-
.../rendering/renderer/ParticleRenderer.java | 2 +-
.../rendering/shader/EntityShader.java | 13 +-
.../rendering/shader/ParticleShader.java | 5 +-
.../rendering/shader/TerrainShader.java | 5 +-
.../endlessroll/user/ToolSlotSettings.java | 10 +-
.../example/julian/endlessroll/user/User.java | 2 +
.../endlessroll/views/ToolButtonBar.java | 10 +-
.../julian/endlessroll/views/ViewManager.java | 19 +-
.../julian/endlessroll/views/WorldButton.java | 8 +-
app/src/main/res/drawable/goal.png | Bin 1437 -> 278 bytes
app/src/main/res/layout/start_screen.xml | 2 +-
build.gradle | 2 +-
53 files changed, 667 insertions(+), 1342 deletions(-)
delete mode 100644 app/build/intermediates/assets/debug/levelpack_01.xml
delete mode 100644 app/build/intermediates/assets/debug/levelpacks/Testcave.xml
delete mode 100644 app/build/intermediates/assets/debug/testlevelpack.xml
delete mode 100644 app/src/main/assets/Grasslands.xml
delete mode 100644 app/src/main/assets/Icy Mountains.xml
delete mode 100644 app/src/main/assets/levelpack_01.xml
delete mode 100644 app/src/main/assets/levelpacks/Testcave.xml
delete mode 100644 app/src/main/assets/testlevelpack.xml
rename app/src/main/java/com/example/julian/endlessroll/levels/worlds/{Theme.java => World.java} (93%)
create mode 100644 app/src/main/java/com/example/julian/endlessroll/main/game/Camera.java
diff --git a/app/app.iml b/app/app.iml
index 19c3c46..816798b 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -90,7 +90,6 @@
-
diff --git a/app/build/intermediates/assets/debug/levelpack_01.xml b/app/build/intermediates/assets/debug/levelpack_01.xml
deleted file mode 100644
index 5d000c8..0000000
--- a/app/build/intermediates/assets/debug/levelpack_01.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml
index d5a9e0e..300a394 100644
--- a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml
+++ b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml
@@ -1,284 +1,272 @@
-
- GRASSLANDS
+
+ GRASSLANDS
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/build/intermediates/assets/debug/levelpacks/Testcave.xml b/app/build/intermediates/assets/debug/levelpacks/Testcave.xml
deleted file mode 100644
index 7048a0f..0000000
--- a/app/build/intermediates/assets/debug/levelpacks/Testcave.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-
- TESTCAVE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/assets/debug/shader/entityVertexShader.glsl b/app/build/intermediates/assets/debug/shader/entityVertexShader.glsl
index 19da5d9..b96c4d4 100644
--- a/app/build/intermediates/assets/debug/shader/entityVertexShader.glsl
+++ b/app/build/intermediates/assets/debug/shader/entityVertexShader.glsl
@@ -1,5 +1,6 @@
uniform mat4 mvpMatrix;
uniform mat4 transformationMatrix;
+uniform vec2 texCoordScaling;
attribute vec4 position;
attribute vec2 texCoords;
@@ -11,5 +12,9 @@ void main() {
vec4 transformatedPosition = transformationMatrix * position;
gl_Position = mvpMatrix * transformatedPosition;
pass_TexCoords = texCoords;
+ if(texCoordScaling.x != 0.0)
+ pass_TexCoords.x *= texCoordScaling.x;
+ if(texCoordScaling.y != 0.0)
+ pass_TexCoords.y *= texCoordScaling.y;
}
\ No newline at end of file
diff --git a/app/build/intermediates/assets/debug/testlevelpack.xml b/app/build/intermediates/assets/debug/testlevelpack.xml
deleted file mode 100644
index 844f2fb..0000000
--- a/app/build/intermediates/assets/debug/testlevelpack.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/blame/res/debug/single/drawable.json b/app/build/intermediates/blame/res/debug/single/drawable.json
index 59a67e0..8d8ef7a 100644
--- a/app/build/intermediates/blame/res/debug/single/drawable.json
+++ b/app/build/intermediates/blame/res/debug/single/drawable.json
@@ -43,14 +43,14 @@
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_seekbar_thumb_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_seekbar_thumb_material.xml"
},
- {
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\xml_background_tutorialtextview.xml",
- "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\xml_background_tutorialtextview.xml"
- },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_btn_check_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_btn_check_material.xml"
},
+ {
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\xml_background_tutorialtextview.xml",
+ "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\xml_background_tutorialtextview.xml"
+ },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_spinner_textfield_background_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_spinner_textfield_background_material.xml"
@@ -167,14 +167,14 @@
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\backgrounds_game_mountains.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\backgrounds_game_mountains.png"
},
- {
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\tools_unlockedbutton.png",
- "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\tools_unlockedbutton.png"
- },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\guis_playerarrow.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\guis_playerarrow.png"
},
+ {
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\tools_unlockedbutton.png",
+ "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\tools_unlockedbutton.png"
+ },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_ratingbar_full_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_ratingbar_full_material.xml"
@@ -195,14 +195,14 @@
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\tip_icon.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\tip_icon.png"
},
- {
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_cab_background_top_material.xml",
- "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_cab_background_top_material.xml"
- },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\tools_emptybutton.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\tools_emptybutton.png"
},
+ {
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_cab_background_top_material.xml",
+ "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_cab_background_top_material.xml"
+ },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_text_cursor_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_text_cursor_material.xml"
@@ -219,14 +219,14 @@
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\obstacles_grass.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\obstacles_grass.png"
},
- {
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_list_selector_holo_light.xml",
- "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_list_selector_holo_light.xml"
- },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_switch_thumb_material.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_switch_thumb_material.xml"
},
+ {
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\abc_list_selector_holo_light.xml",
+ "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\drawable\\abc_list_selector_holo_light.xml"
+ },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\drawable\\tools_bombbutton.png",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\drawable\\tools_bombbutton.png"
diff --git a/app/build/intermediates/blame/res/debug/single/layout.json b/app/build/intermediates/blame/res/debug/single/layout.json
index eb011f2..9b7dc63 100644
--- a/app/build/intermediates/blame/res/debug/single/layout.json
+++ b/app/build/intermediates/blame/res/debug/single/layout.json
@@ -3,22 +3,22 @@
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\levels.xml",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\layout\\levels.xml"
},
- {
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\toolshop.xml",
- "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\layout\\toolshop.xml"
- },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\tutorial.xml",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\layout\\tutorial.xml"
},
{
- "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\abc_screen_simple_overlay_action_mode.xml",
- "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\layout\\abc_screen_simple_overlay_action_mode.xml"
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\toolshop.xml",
+ "source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\layout\\toolshop.xml"
},
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\worlds.xml",
"source": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\src\\main\\res\\layout\\worlds.xml"
},
+ {
+ "merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\abc_screen_simple_overlay_action_mode.xml",
+ "source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\layout\\abc_screen_simple_overlay_action_mode.xml"
+ },
{
"merged": "C:\\Users\\Julian\\AndroidStudioProjects\\EndlessRoll\\app\\build\\intermediates\\res\\merged\\debug\\layout\\abc_screen_simple.xml",
"source": "C:\\Users\\Julian\\.android\\build-cache\\2232000db64551c7682d41127fbc27c912efcc3d\\output\\res\\layout\\abc_screen_simple.xml"
diff --git a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
index 0d5833a..25d4117 100644
--- a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
+++ b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/build/intermediates/res/merged/debug/drawable/goal.png b/app/build/intermediates/res/merged/debug/drawable/goal.png
index d530dc2c47ce84618f577d92fca38f5726a1e82f..5e67350792abb2e7b1043f23c80d1e9baff09c5b 100644
GIT binary patch
literal 179
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&aR&H=xB}__K)}FoHg5YIAScz+
z#WAGf*4uL%1sN1LST-F0+rDkv6O9cXY92-*vCl;r@q)&$4!m2BGvNpOS@p8sXge}g
SxN8C}WbkzLb6Mw<&;$UGxhG-(
literal 622
zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5FnKt;1lBd|NsBfr%#)hm;eQU
z_%s82eeRiaIM7M>z=8AY@*XjY
zofc%=5^HlHYp*1W#^d#QzjLpLEZlxuzVER9g0B6`Zhy;_?XI(mUw4>ca(&G8WA(dl
z|233rSk}j0vCr)b(<&pm2Y*39g9|7~dCT@K>py;3T;)=D%9JHnp5Rgm67M(`)Ux;+
z^BZ=R^(QnuSDwUYvOw=r4)?e0H~2l`CI(Ilnhc5=Tma|_!M3YD&Io?gCuc+@sz=(t*B*&nEL_|(-iY04}aJZgbbLJT#G*Kcr4
Tu-^E+2c*)|)z4*}Q$iB}x3;AQ
diff --git a/app/build/intermediates/res/merged/debug/layout/start_screen.xml b/app/build/intermediates/res/merged/debug/layout/start_screen.xml
index 8368a3a..87142f8 100644
--- a/app/build/intermediates/res/merged/debug/layout/start_screen.xml
+++ b/app/build/intermediates/res/merged/debug/layout/start_screen.xml
@@ -51,6 +51,6 @@
android:layout_marginLeft="48dp"
android:layout_marginStart="48dp"
android:text="Lv to 100"
- android:visibility="gone"/>
+ android:visibility="visible"/>
\ No newline at end of file
diff --git a/app/build/intermediates/res/resources-debug.ap_ b/app/build/intermediates/res/resources-debug.ap_
index 164fb87a4ace175eaa2cc80e49ac485ed204f637..af456c7b2c4e048fdb444afcc337920d6e1e6fcd 100644
GIT binary patch
delta 3821
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
qGf2OW)>21*
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
diff --git a/app/src/main/assets/Grasslands.xml b/app/src/main/assets/Grasslands.xml
deleted file mode 100644
index 562e5a2..0000000
--- a/app/src/main/assets/Grasslands.xml
+++ /dev/null
@@ -1,285 +0,0 @@
-
- GRASSLANDS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/assets/Icy Mountains.xml b/app/src/main/assets/Icy Mountains.xml
deleted file mode 100644
index e93c0c8..0000000
--- a/app/src/main/assets/Icy Mountains.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
- ICY_MOUNTAINS
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/assets/levelpack_01.xml b/app/src/main/assets/levelpack_01.xml
deleted file mode 100644
index 5d000c8..0000000
--- a/app/src/main/assets/levelpack_01.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/assets/levelpacks/Grasslands.xml b/app/src/main/assets/levelpacks/Grasslands.xml
index d5a9e0e..300a394 100644
--- a/app/src/main/assets/levelpacks/Grasslands.xml
+++ b/app/src/main/assets/levelpacks/Grasslands.xml
@@ -1,284 +1,272 @@
-
- GRASSLANDS
+
+ GRASSLANDS
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/assets/levelpacks/Testcave.xml b/app/src/main/assets/levelpacks/Testcave.xml
deleted file mode 100644
index 7048a0f..0000000
--- a/app/src/main/assets/levelpacks/Testcave.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-
- TESTCAVE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/assets/shader/entityVertexShader.glsl b/app/src/main/assets/shader/entityVertexShader.glsl
index 19da5d9..b96c4d4 100644
--- a/app/src/main/assets/shader/entityVertexShader.glsl
+++ b/app/src/main/assets/shader/entityVertexShader.glsl
@@ -1,5 +1,6 @@
uniform mat4 mvpMatrix;
uniform mat4 transformationMatrix;
+uniform vec2 texCoordScaling;
attribute vec4 position;
attribute vec2 texCoords;
@@ -11,5 +12,9 @@ void main() {
vec4 transformatedPosition = transformationMatrix * position;
gl_Position = mvpMatrix * transformatedPosition;
pass_TexCoords = texCoords;
+ if(texCoordScaling.x != 0.0)
+ pass_TexCoords.x *= texCoordScaling.x;
+ if(texCoordScaling.y != 0.0)
+ pass_TexCoords.y *= texCoordScaling.y;
}
\ No newline at end of file
diff --git a/app/src/main/assets/testlevelpack.xml b/app/src/main/assets/testlevelpack.xml
deleted file mode 100644
index 844f2fb..0000000
--- a/app/src/main/assets/testlevelpack.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/Background.java b/app/src/main/java/com/example/julian/endlessroll/entities/Background.java
index fc94d2d..4b4889a 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/Background.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/Background.java
@@ -11,6 +11,7 @@ public class Background extends SynchronizedArrayList {
private final float PART_WIDTH = 5;
private final float HALF_PART_WIDTH = PART_WIDTH / 2;
+ private final float HEIGHT = 2.5f;
private Texture texture;
public Background(Texture texture) {
@@ -27,7 +28,7 @@ public class Background extends SynchronizedArrayList {
}
private Entity createPart(float xLeftEdge) {
- return new Entity(texture, new Vector(xLeftEdge + HALF_PART_WIDTH, 0), PART_WIDTH, 2);
+ return new Entity(texture, new Vector(xLeftEdge + HALF_PART_WIDTH, (HEIGHT - 2) / 2), PART_WIDTH, HEIGHT);
}
public void move(float x, float cameraX) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/Entity.java b/app/src/main/java/com/example/julian/endlessroll/entities/Entity.java
index fd9eff7..06ed3be 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/Entity.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/Entity.java
@@ -16,11 +16,13 @@ public class Entity extends Quad {
private float alpha = 1.0f;
private boolean destroyed;
private DestroyEffect destroyEffect;
+ private Vector maxTexSize;
public Entity(Texture texture, Vector position, float width, float height) {
super(position, width, height);
this.texture = texture;
this.movement = new Vector();
+ this.maxTexSize = new Vector();
}
public void move(Vector movement) {
@@ -91,4 +93,12 @@ public class Entity extends Quad {
public int getTextureAtlasIndex() {
return textureAtlasIndex;
}
+
+ public void setMaxTexSize(Vector maxTexSize) {
+ this.maxTexSize = maxTexSize;
+ }
+
+ public Vector getMaxTexSize() {
+ return maxTexSize;
+ }
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/Goal.java b/app/src/main/java/com/example/julian/endlessroll/entities/Goal.java
index 4d64a63..d1dc4a0 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/Goal.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/Goal.java
@@ -6,7 +6,8 @@ import com.example.julian.endlessroll.entities.textures.Texture;
public class Goal extends Entity {
public Goal(Texture texture) {
- super(texture, new Vector(), 0.1f, 2);
+ super(texture, new Vector(), 0.1f, 3);
+ super.getMaxTexSize().setY(0.2f);
}
public void setGoalX(float goalX) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/Obstacle.java b/app/src/main/java/com/example/julian/endlessroll/entities/Obstacle.java
index 342a8c5..a35566d 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/Obstacle.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/Obstacle.java
@@ -3,7 +3,7 @@ package com.example.julian.endlessroll.entities;
import com.example.julian.endlessroll.data.Vector;
import com.example.julian.endlessroll.levels.MoveComponent;
import com.example.julian.endlessroll.levels.ObstacleData;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
import java.util.Random;
@@ -23,8 +23,8 @@ public class Obstacle extends Entity {
private float moveProgress;
- public Obstacle(Theme theme, ObstacleData data, float terrainEdge) {
- super(theme.getObstacleTexture(), new Vector(data.getX(), data.getY()), data.getWidth(), data.getHeight());
+ public Obstacle(World world, ObstacleData data, float terrainEdge) {
+ super(world.getObstacleTexture(), new Vector(data.getX(), data.getY()), data.getWidth(), data.getHeight());
this.deadly = data.isDeadly();
this.floating = data.isFloating();
this.moving = data.isMoving();
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/particles/Particle.java b/app/src/main/java/com/example/julian/endlessroll/entities/particles/Particle.java
index a0af089..d45733d 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/particles/Particle.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/particles/Particle.java
@@ -56,7 +56,7 @@ public class Particle extends Entity {
public void update(Timer timer, float windStrength, float gravityStrength) {
if (active) {
- passedLifetime += timer.getFrameTime();
+ passedLifetime += timer.getFrameTimeSeconds();
if (passedLifetime >= maxLife)
active = false;
float lifetimePercent = passedLifetime / maxLife;
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/particles/ParticleSource.java b/app/src/main/java/com/example/julian/endlessroll/entities/particles/ParticleSource.java
index 1b9f980..25cd568 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/particles/ParticleSource.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/particles/ParticleSource.java
@@ -56,18 +56,18 @@ public class ParticleSource {
public void update(Timer timer) {
if (alife) {
- passedTime += timer.getFrameTime();
+ passedTime += timer.getFrameTimeSeconds();
lifePercent = passedTime / maxTime;
if (passedTime >= currentDelay) {
- passedEmittPause += timer.getFrameTime();
+ passedEmittPause += timer.getFrameTimeSeconds();
calcWindAndGravity();
while (passedEmittPause >= emittPause) {
passedEmittPause -= emittPause;
emitt();
}
- passedSecond += timer.getFrameTime();
+ passedSecond += timer.getFrameTimeSeconds();
if (passedSecond >= 1000) {
passedSecond -= 1000;
calcEmittPause();
@@ -89,7 +89,7 @@ public class ParticleSource {
inactiveParticles.add(particle);
iter.remove();
} else {
- particle.move(new Vector(particle.getMovement()).mul(timer.getFrameTime() / 1000));
+ particle.move(new Vector(particle.getMovement()).mul(timer.getFrameTimeSeconds() / 1000));
}
}
activeParticleLock.unlock();
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/textures/TexturePack.java b/app/src/main/java/com/example/julian/endlessroll/entities/textures/TexturePack.java
index ab4fc39..cfa600e 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/textures/TexturePack.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/textures/TexturePack.java
@@ -5,7 +5,7 @@ import android.support.annotation.DrawableRes;
import com.example.julian.endlessroll.R;
import com.example.julian.endlessroll.entities.tools.ToolType;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
/**
* Created by Julian on 05.12.2015.
@@ -30,7 +30,7 @@ public class TexturePack {
energy = loadAtlas(R.drawable.currency_energy_atlas, 2, 2);
ToolType.loadAllToolTextures(this);
- Theme.loadAllSpecificTextures(this);
+ World.loadAllSpecificTextures(this);
}
public Texture loadTexture(@DrawableRes int id) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/tileLists/TileList.java b/app/src/main/java/com/example/julian/endlessroll/entities/tileLists/TileList.java
index 2f8f743..81a781a 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/tileLists/TileList.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/tileLists/TileList.java
@@ -3,7 +3,7 @@ package com.example.julian.endlessroll.entities.tileLists;
import com.example.julian.endlessroll.data.SynchronizedArrayList;
import com.example.julian.endlessroll.entities.textures.Texture;
import com.example.julian.endlessroll.levels.TileData;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
import java.util.ArrayList;
import java.util.List;
@@ -36,10 +36,10 @@ public class TileList extends SynchronizedArrayList {
this.texture = texture;
}
- public void loadData(Theme theme, float edge, List tileData) {
- this.texture = theme.getTerrainTexture();
+ public void loadData(World world, float edge, List tileData) {
+ this.texture = world.getTerrainTexture();
if (type == Type.CEILING)
- this.texture = theme.getCeilingTexture();
+ this.texture = world.getCeilingTexture();
this.endless = false;
super.clear();
for (TileData data : tileData)
@@ -49,8 +49,8 @@ public class TileList extends SynchronizedArrayList {
super.clear();
}
- public void createEndless(Theme theme, float edge) {
- loadData(theme, edge, new ArrayList());
+ public void createEndless(World world, float edge) {
+ loadData(world, edge, new ArrayList());
super.add(createEndlessTile(0));
this.endless = true;
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/tools/Bomb.java b/app/src/main/java/com/example/julian/endlessroll/entities/tools/Bomb.java
index 2c53f32..39996c5 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/tools/Bomb.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/tools/Bomb.java
@@ -30,7 +30,7 @@ public class Bomb extends Tool {
@Override
public void update(Timer timer) {
super.update(timer);
- delta += timer.getFrameTime();
+ delta += timer.getFrameTimeSeconds();
if (delta >= 1000)
exploding = true;
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/entities/tools/ToolSlot.java b/app/src/main/java/com/example/julian/endlessroll/entities/tools/ToolSlot.java
index 182df69..7c5ca4d 100644
--- a/app/src/main/java/com/example/julian/endlessroll/entities/tools/ToolSlot.java
+++ b/app/src/main/java/com/example/julian/endlessroll/entities/tools/ToolSlot.java
@@ -15,11 +15,6 @@ public class ToolSlot {
this.locked = locked;
}
- public ToolSlot(String type) {
- this.toolType = ToolType.valueOf(type);
- this.locked = toolType == ToolType.NONE;
- }
-
public ToolType getToolType() {
return toolType;
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/levels/LevelPack.java b/app/src/main/java/com/example/julian/endlessroll/levels/LevelPack.java
index ea0789b..eff4e8a 100644
--- a/app/src/main/java/com/example/julian/endlessroll/levels/LevelPack.java
+++ b/app/src/main/java/com/example/julian/endlessroll/levels/LevelPack.java
@@ -1,6 +1,6 @@
package com.example.julian.endlessroll.levels;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
@@ -18,7 +18,7 @@ public class LevelPack {
@Attribute
private int id;
@Element
- private Theme theme;
+ private World world;
@ElementList
private List levels;
@@ -33,8 +33,8 @@ public class LevelPack {
return levels;
}
- public Theme getTheme() {
- return theme;
+ public World getWorld() {
+ return world;
}
public void setName(String name) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/levels/worlds/Theme.java b/app/src/main/java/com/example/julian/endlessroll/levels/worlds/World.java
similarity index 93%
rename from app/src/main/java/com/example/julian/endlessroll/levels/worlds/Theme.java
rename to app/src/main/java/com/example/julian/endlessroll/levels/worlds/World.java
index e37c0ff..f533190 100644
--- a/app/src/main/java/com/example/julian/endlessroll/levels/worlds/Theme.java
+++ b/app/src/main/java/com/example/julian/endlessroll/levels/worlds/World.java
@@ -10,7 +10,7 @@ import com.example.julian.endlessroll.entities.textures.TexturePack;
* Created by Julian on 14.11.2016.
*/
-public enum Theme {
+public enum World {
GRASSLANDS("Grasslands", R.drawable.previews_grass, R.drawable.backgrounds_game_grass, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_grass),
TESTCAVE("Testcave", R.drawable.previews_grass, R.drawable.backgrounds_game_cave, R.drawable.terrain_t_grass, R.drawable.terrain_c_grass, R.drawable.obstacles_cave),
@@ -33,7 +33,7 @@ public enum Theme {
private Texture ceiling;
private Texture obstacle;
- Theme(String name, @DrawableRes int previewId, @DrawableRes int backgroundId, @DrawableRes int terrainId, @DrawableRes int ceilingId, @DrawableRes int obstacleId) {
+ World(String name, @DrawableRes int previewId, @DrawableRes int backgroundId, @DrawableRes int terrainId, @DrawableRes int ceilingId, @DrawableRes int obstacleId) {
this.name = name;
this.previewId = previewId;
this.backgroundId = backgroundId;
@@ -43,8 +43,8 @@ public enum Theme {
}
public static void loadAllSpecificTextures(TexturePack texturePack) {
- for (Theme theme : values())
- theme.loadSpecificTextures(texturePack);
+ for (World world : values())
+ world.loadSpecificTextures(texturePack);
}
private void loadSpecificTextures(TexturePack texturePack) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/Camera.java b/app/src/main/java/com/example/julian/endlessroll/main/game/Camera.java
new file mode 100644
index 0000000..9d6e118
--- /dev/null
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/Camera.java
@@ -0,0 +1,47 @@
+package com.example.julian.endlessroll.main.game;
+
+import com.example.julian.endlessroll.main.GameLog;
+
+/**
+ * Created by Julian on 22.05.2017.
+ */
+
+public class Camera {
+
+ private final float MOVE_SPEED_UP = 0.7f;
+ private final float MOVE_SPEED_DOWN = 0.7f;
+ private final float MAX_Y = 0.5f;
+ private final float MIN_Y = 0;
+ private float x, y;
+
+ public void update(float playerY, Timer timer){
+ float frameTime = timer.getFrameTimeSeconds() / 1000f;
+ float maxY = Math.min(playerY - 1 + 0.6f, MAX_Y);
+ if(playerY >= 0.5f){
+ y += MOVE_SPEED_UP * frameTime;
+ if(y > maxY)
+ y = maxY;
+ } else if(y > MIN_Y){
+ y -= MOVE_SPEED_DOWN * frameTime;
+ if(y < MIN_Y)
+ y = MIN_Y;
+ }
+ }
+
+ public void moveX(float move){
+ x += move;
+ }
+
+ public void reset(){
+ x = 0;
+ y = 0;
+ }
+
+ public float getX() {
+ return x;
+ }
+
+ public float getY() {
+ return y;
+ }
+}
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/Game.java b/app/src/main/java/com/example/julian/endlessroll/main/game/Game.java
index 6d5b4f4..5634822 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/Game.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/Game.java
@@ -111,10 +111,9 @@ public class Game extends Rendering {
collectedStars.clear();
energyCollected = false;
particleSystem.deleteAllSources();
- scene.loadLevel(level, levelPack.getTheme());
+ scene.loadLevel(level, levelPack.getWorld());
player = scene.getPlayer();
- if (viewManager.isScreenSizeSet())
- viewManager.resetViews();
+ viewManager.resetViews(user);
currentTool = viewManager.toolButtonBar.getActiveButton().getToolType();
viewManager.startCountdown();
}
@@ -131,7 +130,6 @@ public class Game extends Rendering {
public void setScreenSize(int width, int height) {
Vector screenSize = new Vector(width, height);
scene.setScreenSize(screenSize);
- viewManager.setScreenSize(screenSize);
}
@Override
@@ -139,14 +137,11 @@ public class Game extends Rendering {
particleSystem.update(timer);
float playerProgress = 0;
float playerSpeed = 0;
- float playerY = 0;
if (player != null) {
playerProgress = player.getProgress();
playerSpeed = player.getSpeed();
- playerY = player.getPosition().y;
}
- viewManager.update(gameState == GameState.RUNNING, timer, playerProgress, playerSpeed,
- playerY);
+ viewManager.update(gameState == GameState.RUNNING, timer, playerProgress, playerSpeed);
switch (gameState) {
case RUNNING:
if (player.getPosition().y < -2f) {
@@ -157,6 +152,7 @@ public class Game extends Rendering {
onGoalReached();
return;
}
+ scene.getCamera().update(player.getPosition().y, timer);
if (currentTutorial != null) {
currentTutorial.update(playerProgress);
@@ -190,7 +186,7 @@ public class Game extends Rendering {
}
public void resetViews() {
- viewManager.resetViews();
+ viewManager.resetViews(user);
}
public void continueGame() {
@@ -217,6 +213,8 @@ public class Game extends Rendering {
}
public void tryToPause() {
+ if(gameState == GameState.GAME_OVER || gameState == GameState.PAUSED)
+ return;
viewManager.showShortMenu();
if (gameState == GameState.COUNTDOWN)
viewManager.stopCountdown();
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/GameScene.java b/app/src/main/java/com/example/julian/endlessroll/main/game/GameScene.java
index 412ecfb..511a0e5 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/GameScene.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/GameScene.java
@@ -16,7 +16,7 @@ import com.example.julian.endlessroll.entities.tools.ToolType;
import com.example.julian.endlessroll.levels.Level;
import com.example.julian.endlessroll.levels.ObstacleData;
import com.example.julian.endlessroll.levels.PositionData;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
import com.example.julian.endlessroll.main.GameLog;
import java.util.ArrayList;
@@ -29,7 +29,7 @@ import java.util.List;
*/
public class GameScene extends Scene {
- private Theme currentTheme;
+ private World currentWorld;
private CollisionDetector collisionDetector;
private Goal goal;
@@ -46,12 +46,12 @@ public class GameScene extends Scene {
goal = new Goal(textures.goal);
}
- public void loadLevel(Level level, Theme theme) throws Exception {
- this.currentTheme = theme;
+ public void loadLevel(Level level, World world) throws Exception {
+ this.currentWorld = world;
reset();
- background.changeTexture(theme.getBackgroundTexture());
- terrain.loadData(theme, level.getTerrainEdge(), level.getTerrainTiles());
- ceiling.loadData(theme, level.getCeilingEdge(), level.getCeilingTiles());
+ background.changeTexture(world.getBackgroundTexture());
+ terrain.loadData(world, level.getTerrainEdge(), level.getTerrainTiles());
+ ceiling.loadData(world, level.getCeilingEdge(), level.getCeilingTiles());
super.add(goal);
player.init(terrain.getEdge(), level.getStartSpeed(), level.getEndSpeed());
super.add(player);
@@ -81,7 +81,7 @@ public class GameScene extends Scene {
obstacles.clear();
tools.clear();
energy = null;
- cameraX = 0;
+ camera.reset();
background.resetPosition();
}
@@ -103,7 +103,7 @@ public class GameScene extends Scene {
}
public void addObstacle(ObstacleData data) {
- Obstacle obstacle = new Obstacle(currentTheme, data, terrain.getEdge());
+ Obstacle obstacle = new Obstacle(currentWorld, data, terrain.getEdge());
super.add(obstacle);
obstacles.add(obstacle);
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/Physics.java b/app/src/main/java/com/example/julian/endlessroll/main/game/Physics.java
index 8c5fe85..62f8786 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/Physics.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/Physics.java
@@ -16,7 +16,6 @@ import com.example.julian.endlessroll.entities.tileLists.Terrain;
import com.example.julian.endlessroll.entities.tileLists.Tile;
import com.example.julian.endlessroll.entities.tools.Bomb;
import com.example.julian.endlessroll.entities.tools.Tool;
-import com.example.julian.endlessroll.main.GameLog;
import java.util.ArrayList;
import java.util.HashMap;
@@ -36,7 +35,7 @@ public class Physics {
}
public void applyGravity(GameScene scene, Timer timer) {
- float gravity = GRAVITY_FORCE * timer.getFrameTime();
+ float gravity = GRAVITY_FORCE * timer.getFrameTimeSeconds();
scene.getPlayer().getMovement().y -= gravity;
synchronized (scene.getTools()) {
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/Scene.java b/app/src/main/java/com/example/julian/endlessroll/main/game/Scene.java
index 1985ace..eb81f8f 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/Scene.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/Scene.java
@@ -11,7 +11,7 @@ import com.example.julian.endlessroll.entities.particles.ParticleSystem;
import com.example.julian.endlessroll.entities.textures.TexturePack;
import com.example.julian.endlessroll.entities.tileLists.Ceiling;
import com.example.julian.endlessroll.entities.tileLists.Terrain;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
import java.util.Iterator;
@@ -20,8 +20,7 @@ import java.util.Iterator;
*/
public abstract class Scene extends SynchronizedArrayList {
- public float cameraX;
-
+ protected Camera camera;
private Vector screenSize;
private Entity playerArrow;
@@ -35,10 +34,11 @@ public abstract class Scene extends SynchronizedArrayList {
public Scene(TexturePack texturePack, ParticleSystem particleSystem) {
this.particleSystem = particleSystem;
setTexturePack(texturePack);
+ camera = new Camera();
playerArrow = new Entity(textures.playerArrow, new Vector(0, 0.9f), .2f, .2f);
- background = new Background(Theme.GRASSLANDS.getBackgroundTexture());
- terrain = new Terrain(Theme.GRASSLANDS.getTerrainTexture());
- ceiling = new Ceiling(Theme.GRASSLANDS.getTerrainTexture());
+ background = new Background(World.GRASSLANDS.getBackgroundTexture());
+ terrain = new Terrain(World.GRASSLANDS.getTerrainTexture());
+ ceiling = new Ceiling(World.GRASSLANDS.getTerrainTexture());
player = new Player(textures.player);
}
@@ -54,26 +54,27 @@ public abstract class Scene extends SynchronizedArrayList {
if(entity instanceof AnimatedEntity)
((AnimatedEntity) entity).update(timer);
Vector movement = entity.getMovement();
- Vector finalMovement = new Vector(movement).mul(timer.getFrameTime());
+ Vector finalMovement = new Vector(movement).mul(timer.getFrameTimeSeconds());
entity.move(finalMovement);
if (entity instanceof Obstacle) {
Obstacle obstacle = (Obstacle) entity;
if (obstacle.isMoving())
- obstacle.moveWithMoveComponent(timer.getFrameTime());
+ obstacle.moveWithMoveComponent(timer.getFrameTimeSeconds());
}
if (entity.isDestroyed() && entity.getDestroyEffect() != null)
entity.getDestroyEffect().createEffect(particleSystem, new Vector(entity.getPosition()), new Vector(entity.getWidth(), entity.getHeight())).start();
if (entity.equals(player))
moveEnviroment(finalMovement.x);
- else if (entity.getRightEdge() - cameraX < -3f || entity.isDestroyed()) {
+ else if (entity.getRightEdge() - camera.getX() < -3f || entity.isDestroyed()) {
iterator.remove();
removeEntityFromAllLists(entity);
}
}
}
- if (player.getPosition().y >= player.RADIUS + 1) {
+ if (player.getPosition().y >= player.RADIUS + 1 + camera.getY()) {
playerArrow.getPosition().x = player.getPosition().x;
+ playerArrow.getPosition().y = camera.getY() + 0.9f;
if (!super.contains(playerArrow)) {
super.add(playerArrow);
}
@@ -89,10 +90,10 @@ public abstract class Scene extends SynchronizedArrayList {
protected abstract void removeEntityFromAllLists(Entity entity);
private void moveEnviroment(float x) {
- cameraX += x;
- background.move(x * 0.95f, cameraX);
- terrain.update(cameraX);
- ceiling.update(cameraX);
+ camera.moveX(x);
+ background.move(x * 0.95f, camera.getX());
+ terrain.update(camera.getX());
+ ceiling.update(camera.getX());
}
protected Vector calcWorldFromScreenCoords(float screenX, float screenY) throws Exception {
@@ -100,7 +101,7 @@ public abstract class Scene extends SynchronizedArrayList {
throw new Exception("ScreenSize not set");
float glCoordWidth = (2f * screenSize.x / screenSize.y);
float x = ((screenX / screenSize.x) * 2f - 1f) * glCoordWidth / 2;
- x += cameraX;
+ x += camera.getX();
float y = -((screenY / screenSize.y) * 2f - 1f);
return new Vector(x, y);
}
@@ -132,4 +133,8 @@ public abstract class Scene extends SynchronizedArrayList {
public ParticleSystem getParticleSystem() {
return particleSystem;
}
+
+ public Camera getCamera() {
+ return camera;
+ }
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/StartScene.java b/app/src/main/java/com/example/julian/endlessroll/main/game/StartScene.java
index 0ef678f..00342e3 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/StartScene.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/StartScene.java
@@ -3,13 +3,13 @@ package com.example.julian.endlessroll.main.game;
import com.example.julian.endlessroll.entities.Entity;
import com.example.julian.endlessroll.entities.particles.ParticleSystem;
import com.example.julian.endlessroll.entities.textures.TexturePack;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
public class StartScene extends Scene {
public StartScene(TexturePack texturePack, ParticleSystem particleSystem) {
super(texturePack, particleSystem);
- terrain.createEndless(Theme.ICY_MOUNTAINS, -.8f);
+ terrain.createEndless(World.ICY_MOUNTAINS, -.8f);
player.init(terrain.getEdge(), 0.5f, 0.5f);
super.add(player);
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/game/Timer.java b/app/src/main/java/com/example/julian/endlessroll/main/game/Timer.java
index 3973c00..aa0a32d 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/game/Timer.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/game/Timer.java
@@ -31,7 +31,7 @@ public class Timer {
}
}
- public float getFrameTime() {
+ public float getFrameTimeSeconds() {
return delta;
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/main/screens/StartScreen.java b/app/src/main/java/com/example/julian/endlessroll/main/screens/StartScreen.java
index e185b7b..fc10f7c 100644
--- a/app/src/main/java/com/example/julian/endlessroll/main/screens/StartScreen.java
+++ b/app/src/main/java/com/example/julian/endlessroll/main/screens/StartScreen.java
@@ -83,7 +83,7 @@ public class StartScreen extends GLScreen implements View.OnClic
// user.setStarCount(100);
levelManager.unlockAllLevels();
levelManager.unlockAllPacks();
- user.gainEp(75);
+ user.gainEp(90);
} else if (v.equals(lvUp)) {
user.gainEp(100);
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/MatrixCreator.java b/app/src/main/java/com/example/julian/endlessroll/rendering/MatrixCreator.java
index 797bfc5..02af2ba 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/MatrixCreator.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/MatrixCreator.java
@@ -4,6 +4,7 @@ import android.opengl.Matrix;
import com.example.julian.endlessroll.data.Vector;
import com.example.julian.endlessroll.entities.Entity;
+import com.example.julian.endlessroll.main.game.Camera;
/**
* Created by Julian on 23.11.2015.
@@ -17,13 +18,13 @@ public class MatrixCreator {
this.height = height;
}
- public float[] createModelViewProjectionMatrix(float cameraX) {
+ public float[] createModelViewProjectionMatrix(Camera camera) {
float[] mvpMatrix = new float[16];
float[] projectionMatrix = new float[16];
float[] viewMatrix = new float[16];
float ratio = width / height;
- Matrix.frustumM(projectionMatrix, 0, -ratio + cameraX, ratio + cameraX, -1, 1, 1, 2);
+ Matrix.frustumM(projectionMatrix, 0, -ratio + camera.getX(), ratio + camera.getX(), -1 + camera.getY(), 1 + camera.getY(), 1, 2);
Matrix.setLookAtM(viewMatrix, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0);
Matrix.multiplyMM(mvpMatrix, 0, projectionMatrix, 0, viewMatrix, 0);
return mvpMatrix;
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/GameRenderer.java b/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/GameRenderer.java
index de47c3d..46c722e 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/GameRenderer.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/GameRenderer.java
@@ -113,7 +113,7 @@ public class GameRenderer implements GLSurfaceView.Renderer {
private void renderEntities(GL10 gl, Scene scene) {
entityShader.start();
- entityShader.loadMVPMatrix(matrixCreator, scene.cameraX);
+ entityShader.loadMVPMatrix(matrixCreator, scene.getCamera());
synchronized (scene.getBackground()) {
for (Entity backgroundPart : scene.getBackground())
renderEntity(gl, backgroundPart);
@@ -131,12 +131,15 @@ public class GameRenderer implements GLSurfaceView.Renderer {
entityShader.loadTransformationMatrix(matrixCreator, entity);
entityShader.loadAlpha(entity.getAlpha());
entityShader.loadTextureAtlasInfos(entity.getTexture(), entity.getTextureAtlasIndex());
+ float texScaleX = entity.getMaxTexSize().x == 0 ? 1 : entity.getWidth() / entity.getMaxTexSize().x;
+ float texScaleY = entity.getMaxTexSize().y == 0 ? 1 : entity.getHeight() / entity.getMaxTexSize().y;
+ entityShader.loadTexCoordScaling(texScaleX, texScaleY);
quad.draw();
}
private void renderTileList(GL10 gl, TileList tileList, Scene scene) {
terrainShader.start();
- terrainShader.loadMVPMatrix(matrixCreator, scene.cameraX);
+ terrainShader.loadMVPMatrix(matrixCreator, scene.getCamera());
synchronized (tileList) {
for (Tile tile : tileList) {
gl.glActiveTexture(GL10.GL_TEXTURE0);
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/ParticleRenderer.java b/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/ParticleRenderer.java
index c93c41e..fa0949f 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/ParticleRenderer.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/renderer/ParticleRenderer.java
@@ -47,7 +47,7 @@ public class ParticleRenderer {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
particleShader.start();
- particleShader.loadMVPMatrix(matrixCreator, scene.cameraX);
+ particleShader.loadMVPMatrix(matrixCreator, scene.getCamera());
synchronized (scene.getParticleSystem().getEffects()) {
for (ParticleEffect effect : scene.getParticleSystem().getEffects()) {
gl.glActiveTexture(GL10.GL_TEXTURE0);
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/EntityShader.java b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/EntityShader.java
index 489226b..6a87e38 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/EntityShader.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/EntityShader.java
@@ -3,8 +3,10 @@ package com.example.julian.endlessroll.rendering.shader;
import android.content.Context;
import android.opengl.GLES20;
+import com.example.julian.endlessroll.data.Vector;
import com.example.julian.endlessroll.entities.Entity;
import com.example.julian.endlessroll.entities.textures.Texture;
+import com.example.julian.endlessroll.main.game.Camera;
import com.example.julian.endlessroll.rendering.MatrixCreator;
/**
@@ -17,6 +19,7 @@ public class EntityShader extends ShaderProgram {
private int location_alpha;
private int location_texAtlasSize;
private int location_texAtlasIndex;
+ private int location_texCoordScaling;
public EntityShader(Context context) throws Exception {
super(context, "shader/entityVertexShader.glsl", "shader/entityFragmentShader.glsl");
@@ -29,10 +32,11 @@ public class EntityShader extends ShaderProgram {
location_alpha = super.getUniformLocation("alpha");
location_texAtlasSize = super.getUniformLocation("texAtlasSize");
location_texAtlasIndex = super.getUniformLocation("texAtlasIndex");
+ location_texCoordScaling = super.getUniformLocation("texCoordScaling");
}
- public void loadMVPMatrix(MatrixCreator matrixCreator, float cameraX) {
- float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(cameraX);
+ public void loadMVPMatrix(MatrixCreator matrixCreator, Camera camera) {
+ float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(camera);
GLES20.glUniformMatrix4fv(location_mvpMatrix, 1, false, mvpMatrix, 0);
}
@@ -49,4 +53,9 @@ public class EntityShader extends ShaderProgram {
GLES20.glUniform2f(location_texAtlasSize, texture.getAtlasWidth(), texture.getAtlasHeight());
GLES20.glUniform1f(location_texAtlasIndex, atlasIndex);
}
+
+ public void loadTexCoordScaling(float scalingX, float scalingY){
+ GLES20.glUniform2f(location_texCoordScaling, scalingX, scalingY);
+ }
+
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/ParticleShader.java b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/ParticleShader.java
index 9d3d2fc..fe0ece3 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/ParticleShader.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/ParticleShader.java
@@ -5,6 +5,7 @@ import android.opengl.GLES20;
import com.example.julian.endlessroll.data.Color;
import com.example.julian.endlessroll.entities.Entity;
+import com.example.julian.endlessroll.main.game.Camera;
import com.example.julian.endlessroll.rendering.MatrixCreator;
/**
@@ -27,8 +28,8 @@ public class ParticleShader extends ShaderProgram {
location_color = super.getUniformLocation("color");
}
- public void loadMVPMatrix(MatrixCreator matrixCreator, float cameraX) {
- float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(cameraX);
+ public void loadMVPMatrix(MatrixCreator matrixCreator, Camera camera) {
+ float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(camera);
GLES20.glUniformMatrix4fv(location_mvpMatrix, 1, false, mvpMatrix, 0);
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/TerrainShader.java b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/TerrainShader.java
index 95ba31e..a04c6b3 100644
--- a/app/src/main/java/com/example/julian/endlessroll/rendering/shader/TerrainShader.java
+++ b/app/src/main/java/com/example/julian/endlessroll/rendering/shader/TerrainShader.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.opengl.GLES20;
import com.example.julian.endlessroll.entities.Entity;
+import com.example.julian.endlessroll.main.game.Camera;
import com.example.julian.endlessroll.rendering.MatrixCreator;
/**
@@ -24,8 +25,8 @@ public class TerrainShader extends ShaderProgram {
location_transformationMatrix = super.getUniformLocation("transformationMatrix");
}
- public void loadMVPMatrix(MatrixCreator matrixCreator, float cameraX) {
- float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(cameraX);
+ public void loadMVPMatrix(MatrixCreator matrixCreator, Camera camera) {
+ float[] mvpMatrix = matrixCreator.createModelViewProjectionMatrix(camera);
GLES20.glUniformMatrix4fv(location_mvpMatrix, 1, false, mvpMatrix, 0);
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/user/ToolSlotSettings.java b/app/src/main/java/com/example/julian/endlessroll/user/ToolSlotSettings.java
index ca9e019..a80c7e4 100644
--- a/app/src/main/java/com/example/julian/endlessroll/user/ToolSlotSettings.java
+++ b/app/src/main/java/com/example/julian/endlessroll/user/ToolSlotSettings.java
@@ -40,11 +40,11 @@ public class ToolSlotSettings extends ArrayList {
}
public int getLockedSlotCount() {
- for (int i = super.size() - 1; i > 0; i--) {
- if (!super.get(i).isLocked())
- return i + 1;
- }
- return 0;
+ int count = 0;
+ for (ToolSlot slot : this)
+ if(slot.isLocked())
+ count ++;
+ return count;
}
}
diff --git a/app/src/main/java/com/example/julian/endlessroll/user/User.java b/app/src/main/java/com/example/julian/endlessroll/user/User.java
index 0423044..7042926 100644
--- a/app/src/main/java/com/example/julian/endlessroll/user/User.java
+++ b/app/src/main/java/com/example/julian/endlessroll/user/User.java
@@ -1,5 +1,7 @@
package com.example.julian.endlessroll.user;
+import com.example.julian.endlessroll.main.GameLog;
+
/**
* Created by Julian on 10.07.2016.
*/
diff --git a/app/src/main/java/com/example/julian/endlessroll/views/ToolButtonBar.java b/app/src/main/java/com/example/julian/endlessroll/views/ToolButtonBar.java
index ec78f3e..c248560 100644
--- a/app/src/main/java/com/example/julian/endlessroll/views/ToolButtonBar.java
+++ b/app/src/main/java/com/example/julian/endlessroll/views/ToolButtonBar.java
@@ -8,6 +8,7 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.example.julian.endlessroll.R;
+import com.example.julian.endlessroll.main.GameLog;
import com.example.julian.endlessroll.user.ToolSlotSettings;
import com.example.julian.endlessroll.entities.tools.ToolType;
import com.example.julian.endlessroll.main.game.Game;
@@ -36,7 +37,6 @@ public class ToolButtonBar implements View.OnClickListener, Animation.AnimationL
private Animation fadeIn, fadeOut;
private Game game;
- private ToolSlotSettings toolSlotSettings;
private List buttons = new ArrayList<>(4);
private RelativeLayout button1;
private RelativeLayout button2;
@@ -46,7 +46,6 @@ public class ToolButtonBar implements View.OnClickListener, Animation.AnimationL
public ToolButtonBar(Game game, ToolSlotSettings toolSlotSettings, LinearLayout layout1) {
this.game = game;
- this.toolSlotSettings = toolSlotSettings;
Context context = game.getContext();
fadeIn = AnimationUtils.loadAnimation(game.getContext(), R.anim.fade_in);
fadeIn.setAnimationListener(this);
@@ -80,14 +79,15 @@ public class ToolButtonBar implements View.OnClickListener, Animation.AnimationL
button4.startAnimation(fadeOut);
}
- public void changeToolButtonTypes() {
+ public void changeToolButtonTypes(ToolSlotSettings toolSlotSettings) {
for (int i = 0; i < 4; i++) {
buttons.get(i).changeToolSlot(toolSlotSettings.get(i));
}
}
- public void reset() {
- changeToolButtonTypes();
+ public void reset(ToolSlotSettings toolSlotSettings) {
+ GameLog.i("Reset toolbuttonBar");
+ changeToolButtonTypes(toolSlotSettings);
for (int i = 0; i < 4; i++) {
if (toolSlotSettings.get(i).getToolType() != ToolType.NONE) {
setActive(i);
diff --git a/app/src/main/java/com/example/julian/endlessroll/views/ViewManager.java b/app/src/main/java/com/example/julian/endlessroll/views/ViewManager.java
index 7f68093..9de80b5 100644
--- a/app/src/main/java/com/example/julian/endlessroll/views/ViewManager.java
+++ b/app/src/main/java/com/example/julian/endlessroll/views/ViewManager.java
@@ -10,15 +10,16 @@ import android.widget.TextView;
import com.example.julian.endlessroll.R;
import com.example.julian.endlessroll.data.Vector;
import com.example.julian.endlessroll.main.GameHandler;
+import com.example.julian.endlessroll.main.game.Camera;
import com.example.julian.endlessroll.main.game.Game;
import com.example.julian.endlessroll.main.game.Timer;
+import com.example.julian.endlessroll.user.User;
/**
* Created by Julian on 11.12.2015.
*/
public class ViewManager implements View.OnClickListener {
- private Vector screenSize;
private GameHandler gameViewHandler;
private Game game;
@@ -52,24 +53,16 @@ public class ViewManager implements View.OnClickListener {
fpsView = (TextView) layout.findViewById(R.id.game_fps);
}
- public void setScreenSize(Vector screenSize) {
- this.screenSize = screenSize;
- }
-
- public boolean isScreenSizeSet() {
- return screenSize != null;
- }
-
@Override
public void onClick(View v) {
game.tryToPause();
}
- public void resetViews() {
+ public void resetViews(final User user) {
gameViewHandler.startInUiThread(new Runnable() {
@Override
public void run() {
- toolButtonBar.reset();
+ toolButtonBar.reset(user.getToolSlotSettings());
toolButtonBar.update(0);
playerProgress.setText("0.0m");
playerSpeed.setText("0.0m/s");
@@ -104,7 +97,7 @@ public class ViewManager implements View.OnClickListener {
countdown.stop();
}
- public void update(final boolean gameRunning, final Timer timer, final float playerX, final float playerXMov, final float playerY) {
+ public void update(final boolean gameRunning, final Timer timer, final float playerX, final float playerXMov) {
gameViewHandler.startInUiThread(new Runnable() {
@Override
public void run() {
@@ -112,7 +105,7 @@ public class ViewManager implements View.OnClickListener {
if (gameRunning) {
playerProgress.setText(toMeters(playerX) + "m");
playerSpeed.setText(toMeters(playerXMov * 1000) + "m/s");
- toolButtonBar.update(timer.getFrameTime());
+ toolButtonBar.update(timer.getFrameTimeSeconds());
}
}
});
diff --git a/app/src/main/java/com/example/julian/endlessroll/views/WorldButton.java b/app/src/main/java/com/example/julian/endlessroll/views/WorldButton.java
index dff69d1..6ef9d71 100644
--- a/app/src/main/java/com/example/julian/endlessroll/views/WorldButton.java
+++ b/app/src/main/java/com/example/julian/endlessroll/views/WorldButton.java
@@ -10,7 +10,7 @@ import android.widget.TextView;
import com.example.julian.endlessroll.R;
import com.example.julian.endlessroll.levels.LevelPack;
-import com.example.julian.endlessroll.levels.worlds.Theme;
+import com.example.julian.endlessroll.levels.worlds.World;
/**
* Created by Julian on 01.08.2016.
@@ -18,7 +18,7 @@ import com.example.julian.endlessroll.levels.worlds.Theme;
public class WorldButton extends RelativeLayout {
private LevelPack levelPack;
- private Theme theme;
+ private World world;
private TextView title;
private ImageView previewImage;
@@ -30,7 +30,7 @@ public class WorldButton extends RelativeLayout {
public WorldButton(Context context, Typeface typeface, View.OnClickListener clickListener, LevelPack levelPack) {
super(context);
this.levelPack = levelPack;
- this.theme = levelPack.getTheme();
+ this.world = levelPack.getWorld();
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.world_button, this);
@@ -52,7 +52,7 @@ public class WorldButton extends RelativeLayout {
public void updateInformation() {
title.setText(levelPack.getName());
- previewImage.setImageDrawable(getContext().getResources().getDrawable(theme.getPreviewId()));
+ previewImage.setImageDrawable(getContext().getResources().getDrawable(world.getPreviewId()));
levelCount.setText(levelPack.getFinishedLevelCount() + "/" + levelPack.getLevels().size());
starCount.setText(levelPack.getCollectedStarCount() + "/" + levelPack.getAvailableStars());
energyCount.setText(levelPack.getCollectedEnergyCount() + "/" + levelPack.getAvailableEnergy());
diff --git a/app/src/main/res/drawable/goal.png b/app/src/main/res/drawable/goal.png
index 9d4848eab32a0ac27e2a406bb6f681e12db90cfb..f1ad4b15f389995033f410f7b8d17c77ce7f9259 100644
GIT binary patch
literal 278
zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1SEZ8zRdwrcRgJkLn>~)y|a;*L4kw8vEcvQ
zLe@-?$-i$o6$;@B>DZl`bHM#$B%AfRbEPbY6Ixnr8zst30$*-?`}Mow#^y!!o~8$@
zUpg+i{PN4kj}tjQOuVGI)cx-Msl`v`axySBFgP$MFbFVkFt9K%5ySl-oqOBw@)H@Q
zJ3&<(4`#pKl_%r=T;SoXOSVg|n1uST`26#YM)SPCvDc>t6`d>Q%)MptBWci(*W-ShMR%kbSk@1Nh0
zulxMY_r1j&8*keNt@_DU#9qK&ao78R>D~9fck?+E{-`}Tt^P)*
zap8JX&*8*q^QwE&3Nhz)zOM#)czgAgvk;d;f_AF#C02nt;SW!R%S3mC<{cMcc<(nF
lu%iJxj8iN)dH-K{e}1n)=8CBS|A56VgQu&X%Q~loCIFX`FP{Ja
diff --git a/app/src/main/res/layout/start_screen.xml b/app/src/main/res/layout/start_screen.xml
index 8368a3a..87142f8 100644
--- a/app/src/main/res/layout/start_screen.xml
+++ b/app/src/main/res/layout/start_screen.xml
@@ -51,6 +51,6 @@
android:layout_marginLeft="48dp"
android:layout_marginStart="48dp"
android:text="Lv to 100"
- android:visibility="gone"/>
+ android:visibility="visible"/>
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index b78a0b8..d0aa704 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.1'
+ classpath 'com.android.tools.build:gradle:2.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files