From d6c92dc6e69c8c395e72b4476d36d50139d57e8f Mon Sep 17 00:00:00 2001 From: GammelJAN Date: Sat, 20 Mar 2021 15:20:08 +0100 Subject: [PATCH] debug advanced, new map part (INN) --- .../map1/interactionObjects/3/dialogue.txt | 2 + .../map6/interactionObjects/1/dialogue.txt | 2 + .../map6/interactionObjects/2/dialogue.txt | 2 + core/assets/mapData/map6/npcs/0/dialogue.txt | 3 + core/assets/tiledmapData/maps/map1.tmx | 18 ++- core/assets/tiledmapData/maps/map2.tmx | 69 +++++----- core/assets/tiledmapData/maps/map6.tmx | 129 ++++++++++++++++++ core/assets/tiledmapData/pngs/furniture.png | Bin 167004 -> 186483 bytes core/assets/tiledmapData/pngs/worldBorder.png | Bin 1003 -> 1487 bytes .../tiledmapData/tilesets/worldborder.tsx | 4 +- core/src/com/trs/main/Main.java | 2 + .../com/trs/main/fightscreen/FightObject.java | 14 +- .../com/trs/main/fightscreen/FightScreen.java | 4 +- core/src/com/trs/main/view/UI/DebugUI.java | 91 ++++++++++++ .../com/trs/main/view/screens/GameScreen.java | 3 + .../com/trs/main/worldobjects/Hostile.java | 26 +++- .../main/worldobjects/InteractionObject.java | 2 + .../com/trs/main/worldobjects/MovingNpc.java | 23 +++- 18 files changed, 335 insertions(+), 59 deletions(-) create mode 100644 core/assets/mapData/map1/interactionObjects/3/dialogue.txt create mode 100644 core/assets/mapData/map6/interactionObjects/1/dialogue.txt create mode 100644 core/assets/mapData/map6/interactionObjects/2/dialogue.txt create mode 100644 core/assets/mapData/map6/npcs/0/dialogue.txt create mode 100644 core/assets/tiledmapData/maps/map6.tmx create mode 100644 core/src/com/trs/main/view/UI/DebugUI.java diff --git a/core/assets/mapData/map1/interactionObjects/3/dialogue.txt b/core/assets/mapData/map1/interactionObjects/3/dialogue.txt new file mode 100644 index 0000000..622898e --- /dev/null +++ b/core/assets/mapData/map1/interactionObjects/3/dialogue.txt @@ -0,0 +1,2 @@ +Inn +#-1 \ No newline at end of file diff --git a/core/assets/mapData/map6/interactionObjects/1/dialogue.txt b/core/assets/mapData/map6/interactionObjects/1/dialogue.txt new file mode 100644 index 0000000..67d7d6b --- /dev/null +++ b/core/assets/mapData/map6/interactionObjects/1/dialogue.txt @@ -0,0 +1,2 @@ +Hier kann man später schlafen +...#-1 \ No newline at end of file diff --git a/core/assets/mapData/map6/interactionObjects/2/dialogue.txt b/core/assets/mapData/map6/interactionObjects/2/dialogue.txt new file mode 100644 index 0000000..67d7d6b --- /dev/null +++ b/core/assets/mapData/map6/interactionObjects/2/dialogue.txt @@ -0,0 +1,2 @@ +Hier kann man später schlafen +...#-1 \ No newline at end of file diff --git a/core/assets/mapData/map6/npcs/0/dialogue.txt b/core/assets/mapData/map6/npcs/0/dialogue.txt new file mode 100644 index 0000000..090c257 --- /dev/null +++ b/core/assets/mapData/map6/npcs/0/dialogue.txt @@ -0,0 +1,3 @@ +Ich bin der Besitzer dieses Inns! Möchtest du hier schlafen? +Ja, gerne!#-1 +Nein, gerade nicht.#-1 \ No newline at end of file diff --git a/core/assets/tiledmapData/maps/map1.tmx b/core/assets/tiledmapData/maps/map1.tmx index d8f14a0..c92c6e8 100644 --- a/core/assets/tiledmapData/maps/map1.tmx +++ b/core/assets/tiledmapData/maps/map1.tmx @@ -1,5 +1,5 @@ - + @@ -125,7 +125,7 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3037,3038,3037,3038,3037,3038,3962,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,6300,6301,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3962,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,6316,6317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3803,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,7032,0,0,0,0,0,0,0,0,0,0,0,6451,6454,0,6487,0,0,3962,0,0,0,3962,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,7032,0,0,0,0,0,7437,0,0,0,0,0,6451,6454,0,6487,0,0,3962,0,0,0,3962,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2195,2196,6467,6470,6520,6503,2255,0,0,3803,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2077,2078,2256,2137,0,0,2078,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2256,2138,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -278,7 +278,7 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - + @@ -365,7 +365,7 @@ - + @@ -418,8 +418,14 @@ + + + + + + - + @@ -433,7 +439,7 @@ - + diff --git a/core/assets/tiledmapData/maps/map2.tmx b/core/assets/tiledmapData/maps/map2.tmx index 4d4c574..1aa559d 100644 --- a/core/assets/tiledmapData/maps/map2.tmx +++ b/core/assets/tiledmapData/maps/map2.tmx @@ -1,11 +1,11 @@ - + - + -1803,1801,1801,1801,1801,1801,1801,1801,1801,983,0,1804, +0,0,0,0,0,0,0,0,0,0,0,0, 983,983,983,983,983,983,983,983,983,983,983,983, 983,983,983,983,983,983,983,983,983,983,983,983, 983,983,983,983,983,983,983,983,983,983,983,983, @@ -19,8 +19,8 @@ -0,1830,1831,1832,1833,1834,0,0,0,0,0,0, -0,1862,1863,1864,1865,1866,0,0,0,0,0,0, +2824,2824,2824,2824,2824,2824,2824,2824,2824,2824,2824,2824, +2856,2856,2856,2856,2856,2856,2856,2856,2856,2856,2856,2856, 0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, @@ -33,44 +33,44 @@ -0,2501,0,0,0,0,0,2531,2532,0,0,0, -0,0,0,0,0,0,0,2563,2564,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1996,1996,0, +0,1843,1844,1845,1846,0,0,0,0,0,0,1848, +0,1875,1876,1877,1878,0,0,0,0,0,0,1976, +0,0,0,0,0,0,0,0,0,2008,2008,2008, 0,0,0,0,0,0,0,0,0,0,0,0, -0,0,2021,2022,2023,0,0,0,0,0,0,0, -0,0,2053,2054,2055,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2691,2692,2693,0, -0,0,0,0,0,0,0,0,2723,2724,2725,0, +0,0,2033,2034,2035,0,0,0,0,0,0,0, +0,0,2065,2066,2067,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2703,2704,2705,0, +0,0,0,0,0,0,0,0,2735,2736,2737,0, 0,0,0,0,0,0,0,0,0,0,0,0 -0,0,0,0,0,0,0,0,0,1801,1801,0, -1805,0,0,0,0,0,0,0,0,1837,1869,1802, -1805,0,0,0,0,0,0,0,0,1964,1964,1802, -1805,0,0,0,0,0,0,0,0,0,0,1802, -1805,0,1989,2317,1991,0,0,0,0,0,0,0, -1805,0,0,0,0,0,0,0,0,0,0,0, -1805,0,0,0,0,0,0,0,2659,2660,2661,1802, -1805,0,0,0,0,0,0,0,0,0,0,1802, -1805,0,0,0,0,0,0,0,0,0,0,1802, -1807,1806,1806,1806,1806,0,0,1806,1806,1806,1806,1808 - - - - -0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,1849,1881,0, +0,0,0,0,0,0,0,0,0,1976,1976,0, 0,0,0,0,0,0,0,0,0,0,0,0, +0,0,2001,2329,2003,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,1990,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2671,2672,2673,0, 0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0 + + + + +1814,1806,1806,1806,1806,1806,1806,1806,1806,1806,1806,1813, +1802,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,1817, +1802,0,0,2002,0,0,0,0,0,0,0,0, +1802,0,0,0,0,0,0,0,0,0,0,0, +1802,0,0,0,0,0,0,0,0,0,0,1819, +1802,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,1805, +1810,1801,1801,1801,1811,0,0,1812,1801,1801,1801,1809 @@ -78,15 +78,14 @@ - - - + - + + @@ -115,7 +114,7 @@ - + diff --git a/core/assets/tiledmapData/maps/map6.tmx b/core/assets/tiledmapData/maps/map6.tmx new file mode 100644 index 0000000..3b5d8de --- /dev/null +++ b/core/assets/tiledmapData/maps/map6.tmx @@ -0,0 +1,129 @@ + + + + + + + + +983,983,983,983,983,983,983,983,983,983,983,0,0,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,0,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,0,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,0,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,0,983,983,2827,2827,2827,2827,983,983, +983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983, +983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983 + + + + +2824,2824,2824,2824,2824,2824,2824,2824,2824,2824,2824,0,2824,2824,2824,2827,2827,2824,2824,2824, +2856,2856,2856,2856,2856,2856,2856,2856,2856,2856,2856,0,2856,2856,2856,2827,2827,2856,2856,2856, +0,0,0,0,0,0,0,0,0,0,0,2827,0,0,0,2827,2827,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2827,2827,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1806,1808,1807,1806,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,2825,2824,2824,2888,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,2857,2856,2856,2920,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,3788,0,0,2827,2827,2454,2455,2456,1820,1819,2454,2455,2456, +0,0,0,0,0,1904,0,3804,0,0,2827,2827,2486,2487,2488,1802,1805,2486,2487,2488, +0,0,0,0,0,1901,0,0,0,0,2827,0,2518,2519,2520,1802,1805,2518,2519,2520, +0,0,0,0,0,1901,0,0,0,0,2827,2827,0,0,0,1802,1805,0,0,0, +0,0,0,0,0,1901,2362,0,0,0,2827,2827,0,0,1814,0,0,1813,0,0, +0,0,0,0,0,1933,1838,1841,1999,1840,2825,2888,0,0,0,2677,2678,2679,0,0, +0,0,0,0,0,1872,1874,1873,0,1874,2857,2920,0,0,0,2709,2710,2711,0,0, +2637,2638,2639,0,0,0,0,0,0,0,0,0,0,0,0,2741,2742,2743,0,0, +2072,2072,2073,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2640,2641,2642,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,1820,1819,1806,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1802,1805,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1802,1805,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1802,1805,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1810,1809,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1806,2513,1815,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +1814,1806,1806,1806,1806,1806,1806,1806,1806,1806,0,0,0,1806,1806,0,0,1806,1806,1813, +1802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +1818,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1806,0,0,1805, +1820,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +1802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1805, +1810,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1801,1809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/assets/tiledmapData/pngs/furniture.png b/core/assets/tiledmapData/pngs/furniture.png index fd43fda9bc9860dff4dccd244690e8a9bf4f97aa..d12318413d9bd9ba1033874ec2cad79e8e526904 100644 GIT binary patch delta 28736 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 delta 9116 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 delta 940 zcmX@l{hED(c)bG$8v_HwrEB%|3=E7-na<7up3cq+1x5L3nK`Kp3>xRBPPFu3c9dwf z7j~W4(dy`;vn@cIRsTrPB8?`-PQg7~<>qRFn`Up2-ndaDhn2hk*y;@%uU$J7Ccwfk zpzW>gDn0S*d|w5}jt2(}t5Yuj}`mJI*n?X6^ z$MaiKYx(u5-@iSV+;6XB|1-PjZvXa&4U;!AN+_`2H1j# z36B^jlX_;}FM-K78P)3l_I$w9>RVx!9s)gS-a|EhjytP(yZ(6lz! zxVR&I{gY+227$-c8eQ4qsj1sPQS!K9Y3%f0`~0V$R@FT{=~-pnxwmD}`JFgx!;AXo zu4g{-@%YB$QY{s``@?JNKJ{Nyzpr*}`HRwqugiVxK8N;Rl9X$gV%`?sAYG41#Ph{U;8TJU9LQTo@~ViuWjNr_hv>tx$UrZ zQhnaJ+Xvp?dv*UN+w?nZrgTe~DWM4f@Q0>$ diff --git a/core/assets/tiledmapData/tilesets/worldborder.tsx b/core/assets/tiledmapData/tilesets/worldborder.tsx index e593730..f7329ae 100644 --- a/core/assets/tiledmapData/tilesets/worldborder.tsx +++ b/core/assets/tiledmapData/tilesets/worldborder.tsx @@ -1,4 +1,4 @@ - - + + diff --git a/core/src/com/trs/main/Main.java b/core/src/com/trs/main/Main.java index 3dc000c..f9c5305 100644 --- a/core/src/com/trs/main/Main.java +++ b/core/src/com/trs/main/Main.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.trs.main.view.UI.DebugUI; import com.trs.main.view.screens.GameScreen; import com.trs.main.view.screens.InventoryScreen; import com.trs.main.view.screens.MenuScreen; @@ -28,6 +29,7 @@ public class Main extends Game{ MenuScreen menuScreen; GameScreen gameScreen; InventoryScreen inventoryScreen; + diff --git a/core/src/com/trs/main/fightscreen/FightObject.java b/core/src/com/trs/main/fightscreen/FightObject.java index 1c2c888..62b5c55 100644 --- a/core/src/com/trs/main/fightscreen/FightObject.java +++ b/core/src/com/trs/main/fightscreen/FightObject.java @@ -18,13 +18,13 @@ public abstract class FightObject { private int state = 0; public FightObject(float x, float y, AnimatedSprite sprite, Stats stats, int id) { - this.sprite = sprite; - this.stats = stats; - this.id = id; - this.x = x; - this.y = y; - maxMoves = 2; - moves = maxMoves; + this.sprite = sprite; + this.stats = stats; + this.id = id; + this.x = x; + this.y = y; + maxMoves = 2; + moves = maxMoves; } void setX(float x) { diff --git a/core/src/com/trs/main/fightscreen/FightScreen.java b/core/src/com/trs/main/fightscreen/FightScreen.java index eee300f..1041660 100644 --- a/core/src/com/trs/main/fightscreen/FightScreen.java +++ b/core/src/com/trs/main/fightscreen/FightScreen.java @@ -41,9 +41,9 @@ public class FightScreen { gridPos.y = (float)(Math.ceil((double)(camY-Main.CAMERA_HEIGHT/2)/32.0) * 32.0) + 32; - // SORTING OBJECTS BY INITIATIVE STAT + // SORTING OBJECTS BY INITIATIVE STAT - for(int j = 0; j < objects.length-1; j++){ + for(int j = 0; j < objects.length-1; j++){ for(int i = objects.length-1; i >= 0; i--){ if(i > 0 && objects[i].getStats().getInit() > objects[i-1].getStats().getInit()){ FightObject temp = objects[i-1]; diff --git a/core/src/com/trs/main/view/UI/DebugUI.java b/core/src/com/trs/main/view/UI/DebugUI.java new file mode 100644 index 0000000..0968e95 --- /dev/null +++ b/core/src/com/trs/main/view/UI/DebugUI.java @@ -0,0 +1,91 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package com.trs.main.view.UI; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.GlyphLayout; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; +import com.trs.main.Main; +import java.util.ArrayList; + +/** + * + * @author janeh + */ +public class DebugUI { + + private BitmapFont font; + private ShapeRenderer shapeRenderer = new ShapeRenderer(); + Batch batch = new SpriteBatch(); + + public DebugUI() { + FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fontData/font.ttf")); + FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter(); + parameter.size = 21; + font = generator.generateFont(parameter); + generator.dispose(); + font.setColor(Color.BLACK); + } + + + + + public void draw(int entityAmount){ + float textHeight = getTextHeight(font, "A")+5; + + ArrayList strings = new ArrayList<>(); + strings.add("DeltaTime: "+Gdx.graphics.getDeltaTime()); + strings.add("FPS: "+(int)(1/Gdx.graphics.getDeltaTime())); + strings.add("Actors: "+entityAmount); + + float width = 0; + for(String s : strings){ + float textWidth = getTextWidth(font, s); + if(textWidth > width){ + width = textWidth; + } + } + + Gdx.gl.glEnable(GL20.GL_BLEND); + Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA); + shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); + shapeRenderer.setColor(0.1f, 0.1f, 0.1f, 0.8f); + shapeRenderer.rect(5, Gdx.graphics.getHeight() - (strings.size()+1)*textHeight-5, width+10,(strings.size()+1)*textHeight); + shapeRenderer.end(); + Gdx.gl.glDisable(GL20.GL_BLEND); + + + batch.begin(); + // DRAW FRAMETIME + font.setColor(Color.RED); + + for(int i = 1; i < strings.size()+1; i++){ + font.draw(batch, strings.get(i-1), 10,Gdx.graphics.getHeight()-textHeight*i); + } + + + batch.end(); + + + + } + public float getTextWidth(BitmapFont font, String text){ + GlyphLayout glyphLayout = new GlyphLayout(); + glyphLayout.setText(font,text); + return glyphLayout.width; + } + public float getTextHeight(BitmapFont font,String text){ + GlyphLayout glyphLayout = new GlyphLayout(); + glyphLayout.setText(font,text); + return glyphLayout.height; + } +} diff --git a/core/src/com/trs/main/view/screens/GameScreen.java b/core/src/com/trs/main/view/screens/GameScreen.java index b1083e3..99b9035 100644 --- a/core/src/com/trs/main/view/screens/GameScreen.java +++ b/core/src/com/trs/main/view/screens/GameScreen.java @@ -14,6 +14,7 @@ import com.trs.main.Main; import com.trs.main.MapContainer; import com.trs.main.Quest; import com.trs.main.fightscreen.FightDialogue; +import com.trs.main.view.UI.DebugUI; import com.trs.main.view.UI.QuestWindow; import com.trs.main.view.UI.Textbox; import com.trs.main.worldobjects.Player; @@ -26,6 +27,7 @@ public class GameScreen extends AbstractScreen{ MapContainer map; QuestWindow qw; + DebugUI debugUI = new DebugUI(); public GameScreen(Game game, float CAMERA_WIDTH, float CAMERA_HEIGHT) { super(game, CAMERA_WIDTH, CAMERA_HEIGHT); @@ -76,6 +78,7 @@ public class GameScreen extends AbstractScreen{ if(Gdx.input.isKeyPressed(Input.Keys.DOWN)){ map.getStage().getCamera().translate(0, -10, 0); } + debugUI.draw(map.getStage().getActors().size); } else{ Player a = map.getPlayer(); diff --git a/core/src/com/trs/main/worldobjects/Hostile.java b/core/src/com/trs/main/worldobjects/Hostile.java index 749040d..d35be8b 100644 --- a/core/src/com/trs/main/worldobjects/Hostile.java +++ b/core/src/com/trs/main/worldobjects/Hostile.java @@ -203,19 +203,35 @@ public class Hostile extends Actor { shapeRenderer.circle(POI.x, POI.y, 5); } shapeRenderer.end(); + shapeRenderer.begin(ShapeRenderer.ShapeType.Line); - shapeRenderer.setColor(Color.GREEN); - shapeRenderer.line(getX()+ sprite.getSprite().getWidth()/2, getY()+sprite.getSprite().getHeight()/2, POI.x, POI.y); + shapeRenderer.setColor(Color.ORANGE); + shapeRenderer.line(getCenterX(), getCenterY(), POI.x, POI.y); shapeRenderer.setColor(Color.YELLOW); - shapeRenderer.circle(getX()+ sprite.getSprite().getWidth()/2, getY()+sprite.getSprite().getHeight()/2, getAttentionCircle().radius); + shapeRenderer.circle(getCenterX(), getCenterY(), getAttentionCircle().radius); shapeRenderer.setColor(Color.RED); - shapeRenderer.circle(getX()+ sprite.getSprite().getWidth()/2, getY()+sprite.getSprite().getHeight()/2, getAttackCircle().radius); - shapeRenderer.setColor(Color.WHITE); + shapeRenderer.circle(getCenterX(), getCenterY(), getAttackCircle().radius); shapeRenderer.rect(getX(), getY(), sprite.getSprite().getWidth(), sprite.getSprite().getHeight()); + + shapeRenderer.setColor(Color.WHITE); + shapeRenderer.rect(area.x, area.y, area.width, area.height); + shapeRenderer.setColor(Color.GREEN); + shapeRenderer.line(getCenterX(), getCenterY(), area.x, area.y); + shapeRenderer.line(getCenterX(), getCenterY(), area.x, area.y + area.height); + shapeRenderer.line(getCenterX(), getCenterY(), area.x + area.width, area.y); + shapeRenderer.line(getCenterX(), getCenterY(), area.x + area.width, area.y+area.height); + shapeRenderer.end(); batch.begin(); } + + public float getCenterX(){ + return getX()+ sprite.getSprite().getWidth()/2; + } + public float getCenterY(){ + return getY()+sprite.getSprite().getHeight()/2; + } @Override protected void positionChanged() { diff --git a/core/src/com/trs/main/worldobjects/InteractionObject.java b/core/src/com/trs/main/worldobjects/InteractionObject.java index 5d15593..ac6190e 100644 --- a/core/src/com/trs/main/worldobjects/InteractionObject.java +++ b/core/src/com/trs/main/worldobjects/InteractionObject.java @@ -88,6 +88,8 @@ public class InteractionObject extends Actor{ if(newDialogue == null) { currentlyTalking = false; parser = new DialogueParser(dialoguePath); + Dialogue nextDialogue = parser.firstDialogue(); + this.t = new Textbox(nextDialogue.question, nextDialogue.ans); } else { ((Textbox)a).update(newDialogue); diff --git a/core/src/com/trs/main/worldobjects/MovingNpc.java b/core/src/com/trs/main/worldobjects/MovingNpc.java index c356da7..3ad891d 100644 --- a/core/src/com/trs/main/worldobjects/MovingNpc.java +++ b/core/src/com/trs/main/worldobjects/MovingNpc.java @@ -126,6 +126,8 @@ public class MovingNpc extends Actor{ if(newDialogue == null) { currentlyTalking = false; parser = new DialogueParser(dialoguePath); + Dialogue nextDialogue = parser.firstDialogue(); + this.t = new Textbox(nextDialogue.question, nextDialogue.ans); } else { ((Textbox)a).update(newDialogue); @@ -265,16 +267,33 @@ public class MovingNpc extends Actor{ shapeRenderer.end(); shapeRenderer.begin(ShapeRenderer.ShapeType.Line); if(POI != null){ - shapeRenderer.setColor(Color.GREEN); - shapeRenderer.line(getX()+ animatedSprite.getSprite().getWidth()/2, getY()+animatedSprite.getSprite().getHeight()/2, POI.x, POI.y); + shapeRenderer.setColor(Color.ORANGE); + shapeRenderer.line(getCenterX(), getCenterY(), POI.x, POI.y); } shapeRenderer.setColor(Color.WHITE); shapeRenderer.rect(getX(), getY(), animatedSprite.getSprite().getWidth(), animatedSprite.getSprite().getHeight()); + + shapeRenderer.setColor(Color.WHITE); + shapeRenderer.rect(area.x, area.y, area.width, area.height); + shapeRenderer.setColor(Color.GREEN); + shapeRenderer.line(getCenterX(), getCenterY(), area.x, area.y); + shapeRenderer.line(getCenterX(), getCenterY(), area.x, area.y + area.height); + shapeRenderer.line(getCenterX(), getCenterY(), area.x + area.width, area.y); + shapeRenderer.line(getCenterX(), getCenterY(), area.x + area.width, area.y+area.height); + shapeRenderer.end(); batch.begin(); } + + public float getCenterX(){ + return getX()+ animatedSprite.getSprite().getWidth()/2; + } + public float getCenterY(){ + return getY()+animatedSprite.getSprite().getHeight()/2; + } + public boolean collidingWithMapCollisionObject(){ for(Actor a : getStage().getActors()){ if(a instanceof MapCollisionObject){