diff --git a/android/assets/levels/plevel001.tmx b/android/assets/levels/plevel001.tmx
index b996c21..d27a828 100644
--- a/android/assets/levels/plevel001.tmx
+++ b/android/assets/levels/plevel001.tmx
@@ -249,7 +249,7 @@
-
+
@@ -749,7 +749,7 @@
-
+
@@ -1249,7 +1249,7 @@
-
+
@@ -1749,7 +1749,7 @@
-
+
@@ -2249,7 +2249,7 @@
-
+
@@ -2749,7 +2749,7 @@
-
+
@@ -3249,7 +3249,7 @@
-
+
@@ -3749,7 +3749,7 @@
-
+
@@ -4249,7 +4249,7 @@
-
+
@@ -4749,7 +4749,7 @@
-
+
@@ -5249,7 +5249,7 @@
-
+
@@ -5749,7 +5749,7 @@
-
+
@@ -6249,7 +6249,7 @@
-
+
@@ -6749,7 +6749,7 @@
-
+
@@ -7249,7 +7249,7 @@
-
+
@@ -7749,7 +7749,7 @@
-
+
@@ -8249,7 +8249,7 @@
-
+
@@ -8749,7 +8749,7 @@
-
+
@@ -9249,7 +9249,7 @@
-
+
@@ -10253,7 +10253,7 @@
-
+
@@ -10753,7 +10753,7 @@
-
+
@@ -11253,7 +11253,7 @@
-
+
@@ -11753,7 +11753,7 @@
-
+
@@ -12253,7 +12253,7 @@
-
+
@@ -12753,7 +12753,7 @@
-
+
@@ -13253,7 +13253,7 @@
-
+
@@ -13753,7 +13753,7 @@
-
+
@@ -14253,7 +14253,7 @@
-
+
@@ -14753,7 +14753,7 @@
-
+
@@ -15253,7 +15253,7 @@
-
+
@@ -15753,7 +15753,7 @@
-
+
@@ -16253,7 +16253,7 @@
-
+
@@ -16753,7 +16753,7 @@
-
+
@@ -17253,7 +17253,7 @@
-
+
@@ -17753,7 +17753,7 @@
-
+
@@ -18253,7 +18253,7 @@
-
+
@@ -18753,7 +18753,7 @@
-
+
@@ -19253,7 +19253,7 @@
-
+
diff --git a/core/src/de/samdev/colorrunner/game/world/map/CRTiledMap.java b/core/src/de/samdev/colorrunner/game/world/map/CRTiledMap.java
index 1bae799..9fcaf9e 100644
--- a/core/src/de/samdev/colorrunner/game/world/map/CRTiledMap.java
+++ b/core/src/de/samdev/colorrunner/game/world/map/CRTiledMap.java
@@ -22,9 +22,9 @@ public class CRTiledMap {
public final static int GID_RIGHT = 24;
public final static int GID_DOWN = 33;
public final static int GID_LEFT = 22;
- public final static int GID_INTER_UP = 16;
- public final static int GID_INTER_DOWN = 17;
- public final static int GID_INTER_RIGHT = 18;
+ public final static int GID_INTER_UP = 18;
+ public final static int GID_INTER_DOWN = 19;
+ public final static int GID_INTER_RIGHT = 20;
public int width;
public int height;
diff --git a/core/src/de/samdev/colorrunner/game/world/map/MapSection.java b/core/src/de/samdev/colorrunner/game/world/map/MapSection.java
index 869cf10..0fc1dc4 100644
--- a/core/src/de/samdev/colorrunner/game/world/map/MapSection.java
+++ b/core/src/de/samdev/colorrunner/game/world/map/MapSection.java
@@ -1,14 +1,18 @@
package de.samdev.colorrunner.game.world.map;
public class MapSection {
- public float start;
- public float end;
+ public int start;
+ public int end;
public String piece_name;
+ public CRTiledMap crTiledMap = new CRTiledMap();
- public MapSection(float x, float width, String name) {
+ public MapSection(int x, int width, String name, CRTiledMap crTiledMap) {
start = x;
end = x + width;
piece_name = name;
+ this.crTiledMap = crTiledMap;
}
+
+
}
diff --git a/core/src/de/samdev/colorrunner/game/world/map/provider/EndlessMapProvider.java b/core/src/de/samdev/colorrunner/game/world/map/provider/EndlessMapProvider.java
index ca8ce15..8743d30 100644
--- a/core/src/de/samdev/colorrunner/game/world/map/provider/EndlessMapProvider.java
+++ b/core/src/de/samdev/colorrunner/game/world/map/provider/EndlessMapProvider.java
@@ -19,7 +19,7 @@ public class EndlessMapProvider extends MapProvider {
private final Random random;
public List sections;
- private float mapRightBoundary = 0;
+ private int mapRightBoundary = 0;
public EndlessMapProvider(long seed) {
random = new Random(seed);
@@ -28,7 +28,7 @@ public class EndlessMapProvider extends MapProvider {
@Override
public void init(CRGameWorld world) {
sections = new ArrayList();
- mapRightBoundary = appendMap(world, CRMapStorage.map_start, new Vector2(0, 0));
+ mapRightBoundary = appendMap(world, CRMapStorage.map_start, 0);
}
@Override
@@ -36,6 +36,28 @@ public class EndlessMapProvider extends MapProvider {
return true;
}
+ @Override
+ public TriggerType getTrigger(int x, int y) {
+
+ for(int i = sections.size()-1; i >= 0; i--)
+ {
+ int start = sections.get(i).start;
+ int end = sections.get(i).end;
+
+ if(start <= x && end > x){
+ if( sections.get(i).crTiledMap.interaktionen[x - start][y] == CRTiledMap.GID_INTER_UP)
+ return TriggerType.RUNTOP;
+ else if( sections.get(i).crTiledMap.interaktionen[x - start][y] == CRTiledMap.GID_INTER_DOWN)
+ return TriggerType.RUNTOP;
+ else if( sections.get(i).crTiledMap.interaktionen[x - start][y] == CRTiledMap.GID_INTER_RIGHT)
+ return TriggerType.FLY;
+ else
+ return TriggerType.NOTHING;
+ }
+ }
+ return TriggerType.NOTHING;
+ }
+
@Override
public MapProvider createNew() {
EndlessMapProvider endlessMapProvider = new EndlessMapProvider(System.currentTimeMillis());
@@ -45,29 +67,29 @@ public class EndlessMapProvider extends MapProvider {
@Override
public void update(CRGameWorld world, Rectangle player)
{
- while (player.x + AbstractGameRenderer.MAX_GAME_WIDTH*2 > mapRightBoundary) {
- float width = appendMap(world, CRMapStorage.getMap(random), new Vector2(mapRightBoundary, 0));
+ while (player.x + AbstractGameRenderer.MAX_GAME_WIDTH*2 > mapRightBoundary * FloorTileEntity.FLOORTILE_WIDTH) {
+ float width = appendMap(world, CRMapStorage.getMap(random), mapRightBoundary);
mapRightBoundary += width;
}
}
- private float appendMap(CRGameWorld world, CRTiledMap map, Vector2 pos) {
+ private int appendMap(CRGameWorld world, CRTiledMap map, int posX) {
int height = map.getHeight();
int width = map.getWidth();
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
- float px = pos.x + x * FloorTileEntity.FLOORTILE_WIDTH;
- float py = pos.y + (height - y) * FloorTileEntity.FLOORTILE_WIDTH;
+ float px = posX * FloorTileEntity.FLOORTILE_WIDTH + x * FloorTileEntity.FLOORTILE_WIDTH;
+ float py = (height - y) * FloorTileEntity.FLOORTILE_WIDTH;
CRGameEntity e = CRTiledMap.CreateTile(world, map.getGID(x, y), px, py);
if (e != null) world.addEntity(e);
}
}
- sections.add(new MapSection(pos.x, width * FloorTileEntity.FLOORTILE_WIDTH, map.name));
+ sections.add(new MapSection(posX, width, map.name, map));
- return width * FloorTileEntity.FLOORTILE_WIDTH;
+ return width;
}
public MapSection getCurrentSection(Rectangle player) {
@@ -76,6 +98,6 @@ public class EndlessMapProvider extends MapProvider {
return sec;
}
- return new MapSection(0, 0, "NULL");
+ return new MapSection(0, 0, "NULL", null);
}
}
diff --git a/core/src/de/samdev/colorrunner/game/world/map/provider/MapProvider.java b/core/src/de/samdev/colorrunner/game/world/map/provider/MapProvider.java
index b1e63ac..ae29b18 100644
--- a/core/src/de/samdev/colorrunner/game/world/map/provider/MapProvider.java
+++ b/core/src/de/samdev/colorrunner/game/world/map/provider/MapProvider.java
@@ -13,4 +13,6 @@ public abstract class MapProvider {
public abstract boolean isNextEndlessMenu();
public abstract MapProvider createNew();
+
+ public abstract Enum getTrigger(int x, int y);
}
diff --git a/core/src/de/samdev/colorrunner/game/world/map/provider/StaticMapProvider.java b/core/src/de/samdev/colorrunner/game/world/map/provider/StaticMapProvider.java
index 88dbd2a..46e2067 100644
--- a/core/src/de/samdev/colorrunner/game/world/map/provider/StaticMapProvider.java
+++ b/core/src/de/samdev/colorrunner/game/world/map/provider/StaticMapProvider.java
@@ -28,6 +28,18 @@ public class StaticMapProvider extends MapProvider {
return false;
}
+ @Override
+ public TriggerType getTrigger(int x, int y) {
+ if(map.interaktionen[x][y] == CRTiledMap.GID_INTER_UP)
+ return TriggerType.RUNTOP;
+ else if(map.interaktionen[x][y] == CRTiledMap.GID_INTER_DOWN)
+ return TriggerType.RUNBOTTOM;
+ else if(map.interaktionen[x][y] == CRTiledMap.GID_INTER_RIGHT)
+ return TriggerType.FLY;
+ else
+ return TriggerType.NOTHING;
+ }
+
@Override
public MapProvider createNew() {
StaticMapProvider mapProvider = new StaticMapProvider(map);
diff --git a/core/src/de/samdev/colorrunner/game/world/map/provider/TriggerType.java b/core/src/de/samdev/colorrunner/game/world/map/provider/TriggerType.java
new file mode 100644
index 0000000..54fd255
--- /dev/null
+++ b/core/src/de/samdev/colorrunner/game/world/map/provider/TriggerType.java
@@ -0,0 +1,6 @@
+package de.samdev.colorrunner.game.world.map.provider;
+
+public enum TriggerType
+{
+ RUNBOTTOM, RUNTOP, FLY, NOTHING
+}
\ No newline at end of file