From 8d445b29dcd64ba466e98f7ada7b2a199cb1c765 Mon Sep 17 00:00:00 2001 From: GammelJAN Date: Thu, 25 Mar 2021 21:27:55 +0100 Subject: [PATCH] nice --- core/assets/fontData/digital.ttf | Bin 0 -> 34360 bytes core/assets/txt.png | Bin 691 -> 700 bytes core/assets/txt_bot.png | Bin 725 -> 727 bytes core/assets/txt_top.png | Bin 725 -> 721 bytes core/src/com/trs/main/Main.java | 60 ++++++-- core/src/com/trs/main/MapContainer.java | 29 +++- core/src/com/trs/main/view/UI/DebugUI.java | 68 +++++++-- .../src/com/trs/main/view/UI/QuestWindow.java | 2 +- core/src/com/trs/main/view/UI/Textbox.java | 2 +- .../com/trs/main/view/screens/GameScreen.java | 6 +- .../com/trs/main/worldobjects/Hostile.java | 130 +++++++++++------- .../main/worldobjects/InteractionObject.java | 3 +- .../main/worldobjects/MapCollisionObject.java | 2 +- .../com/trs/main/worldobjects/MovingNpc.java | 5 +- .../src/com/trs/main/worldobjects/Player.java | 2 +- .../com/trs/main/desktop/DesktopLauncher.java | 8 +- 16 files changed, 223 insertions(+), 94 deletions(-) create mode 100644 core/assets/fontData/digital.ttf diff --git a/core/assets/fontData/digital.ttf b/core/assets/fontData/digital.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5dbe6f908239d00a9f88c335df3efb9261ecc3cc GIT binary patch literal 34360 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 E0E{j4#Q*>R delta 641 zcmdnPx|vn6Gr-TCmrII^fq{Y7)59f*fq_{M$QI^c1CnL?BV8vd%G3vlwE71x4btK& z6DT|pFjuFe>xEjVPE+fpu#Bq*pDeAvutd?buuvq1o9~}am~70P($WG^mV@#F=H}|I z;+h}#ExDj{jJyAP;XT{-@9&sf+*((rUAI_}HEm+o@gq5Tp*(w>8uC;`xWm}@u!jZYU{(+PcpBUd?4KUd`4cx5$PkBXHPp+U`w)4e?1ICBl)J*+l)Wo`Fb;=F2CAB_^6uJbOo)X`rr#)x8#p@-JH<)rg z>{85f(;kay6C8w;QmzEJv5GC)lD%Yx$HmGshwY#InEYhY$xt@s<4mgp6fNsM*w_EC zjoxfv`B1Gj$>DoF-_D!I@Gt#=SN8AKya~@Hf2oS@mSL>Dec)(m z^yKdir)3j9cuwazIq}by7AM9E`^EXE7@4;_6r7zK{aR)@ze8Kv)*5CR8K%Xqr{ca> zl>0xw^Y3lu+4t`$2(1r-&i8sEs9{Dx7ZzRT0aF{I+w+v^({9UK@~4ys<*p45^R*yL3) zQHmq&5V!vAl~SSJ?&~i~GB6wvfA?+Gx^3lA>Dz(E)vLz<$%jk~3<@ZW7H+5r3ZtQb pk%0ju0%iyR(+`-T0B8N!%6_YseHqgQt45%)44$rjF6*2UngD}P^lShC diff --git a/core/assets/txt_bot.png b/core/assets/txt_bot.png index 02252bd99db20981f639f2a90a45dacf1c7c14c4..0a0d4ffadfaf28d3d3db8e62ac92f6d83a4435f8 100644 GIT binary patch delta 677 zcmV;W0$Tmm1=j^3iBL{Q4GJ0x0000DNk~Le000A+000082nGNE0GvipW04^oe?T0? zUsFYqibFf72xh2G7DPqFNvc=`3#F~ls)Na;U(lo>NpW!$Tni3lJ|FJxR+IB#)Q%T?CACx2ler>&&8 zPICw`EFq2rM98S3gfc8dXw^tDk)-{ohkwxVC&(p}s{}@l1yrCya{Sy{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2jv496apJVkm8n;>;Wi$u1Q2eRCwC$*|816Fcd}6XOP%~5!f)1ScQ^V7=b;I zLTCs|LPA18gU+eGEW2^#E0-i~lI(IxUz=+H003a@p7U#Na_Yu<(@nP=1_w&^ZVdnc zfHiTMB-`>F+HS>9CIA2cU&iGzNmB+bDKY^7_@f6f@EcQcnIvVjZ#FVS#U=oFJOjX7 zTqdc?WJ3Y~0KjL1xJ=%EFhwQ+002ws-duGY-SCuR$)@x#b00000 LNkvXXu0mjfY8@9O delta 675 zcmV;U0$lyq1=R&1iBL{Q4GJ0x0000DNk~Le0009n000082nGNE03WWa9g!g%e^3;K zPgA8*DhhTGamY}eEQpHeCRHqgh0<1N)xqSYf6$~MNpW!$Tni5VELI&{oON|@6$HT_ z5H~j`MHeaYzNFA1#tV=4ao#AnrRvgd7n7UN|Hi+PCRDN1&JTI zF1!53x#+OKGs8wEHBTHS7Kf8NYQ!B!$0KsljM@gRR$x+0;*6UIezdzfA~FHvoJZ~ zCWT@^_ls?Ri~xaMpjo%=?_=9;o&f%5;7V)zs|{f0lk|F9iyQ%c+rY(jTa)*I%N=0w zNtX=Ck^HoTLIHR`qi@Oq1GhkM&7E889H$RJhGw;V0~{OzqeaSI_jq?t=iL77Y0d8k zV;^#%mA-Y>00006VoOIvG5|LKHvl(t+lli4000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2jv0*5g{bySuEj`>;Wi$tVu*cRCwC$*}V@FQrz6z5b=mfg7Wl}nN_Nme;zYRoYJ006&q&i*zJ+10UM)ajJX>_ExdtpNZ4 zt)nGLmgPE(b;ZvM008hu(Xvf4lv$&Q7XW~d9#+72Jd2hjDR=u`#*2tT0q`gTfELk` zq$^L`1ONb_omsRbk3TNr1pokOsh`YU9m<;{S diff --git a/core/assets/txt_top.png b/core/assets/txt_top.png index 1f2be34bcdfbe3877e9e64c40aa0ae88b0facf3a..8a841b0bb5229e88c8579cde0ea441799ccae13b 100644 GIT binary patch delta 671 zcmV;Q0$}~s1NpW!$Tni3lJ|FJxR+IB#)Q%T?CACx2ler>&&8 zPICw`EFq2rM98S3gfc8dXw^tDk)-{ohkwxVC&(p}s{}@l1yrCya{Sy{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2jv496ayKwg|hpT>;Wi$s7XXYRCwC$*D(?SF&Kv7FInR-3P*4WrL(BGiqcsW z3Z;{2pbv z)GX8I{2Z;4%&NEq003aBn)R^mvU!^|h)Vzf0H#Fds|T)DDIbRQGG71y002ovPDHLk FV1k`T9`67E delta 675 zcmV;U0$lyk1=R&1iBL{Q4GJ0x0000DNk~Le0009n000082nGNE03WWa9g!g%e^3;K zPgA8*DhhTGamY}eEQpHeCRHqgh0<1N)xqSYf6$~MNpW!$Tni5VELI&{oON|@6$HT_ z5H~j`MHeaYzNFA1#tV=4ao#AnrRvgd7n7UN|Hi+PCRDN1&JTI zF1!53x#+OKGs8wEHBTHS7Kf8NYQ!B!$0KsljM@gRR$x+0;*6UIezdzfA~FHvoJZ~ zCWT@^_ls?Ri~xaMpjo%=?_=9;o&f%5;7V)zs|{f0lk|F9iyQ%c+rY(jTa)*I%N=0w zNtX=Ck^HoTLIHR`qi@Oq1GhkM&7E889H$RJhGw;V0~{OzqeaSI_jq?t=iL77Y0d8k zV;^#%mA-Y>00006VoOIvG5|LKHvl(t+lli4000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2jv0*5g{XcJ-I@Y>;Wi$tVu*cRCwC$*P#ug*_OgZv;g4Y1z>djpm`TB)ljs!`~d)fspF+W5iI}!z|^WN z(&myRsk2O*^K-OHGOI-k008g{>a4qUlg-PlK(qh=08__H-vef4DIeCc!G!<-002ov JPDHLkV1j9 strings = new ArrayList<>(); - strings.add("DeltaTime: "+Gdx.graphics.getDeltaTime()); - strings.add("FPS: "+(int)(Gdx.graphics.getFramesPerSecond())); - strings.add("Entities: "+entityAmount); - strings.add("CamX: "+camPos.x); - strings.add("CamY: "+camPos.y); - strings.add("Gamestate: "+Main.gamestate); - strings.add(" "); + strings.add("DeltaTime: "+Gdx.graphics.getDeltaTime()); + strings.add("FPS: "+(int)(Gdx.graphics.getFramesPerSecond())); + strings.add("Entities: "+entityAmount); + strings.add("CamX: "+camPos.x); + strings.add("CamY: "+camPos.y); + if(Main.gamestate == -1 || Main.gamestate == -2){ + strings.add("DebugMode: "+Math.abs(Main.gamestate)); + } + else{ + strings.add("DebugMode: no debug state"); + } + strings.add("Gamestate: "+Main.gamestate); + strings.add(" "); + strings.add("drawAbove: "+Main.drawAbove); + strings.add("drawBelow: "+Main.drawBelow); if(Main.gamestate == -1){ - strings.add("DebugMode: PlayerCam"); - strings.add("Player input enabled"); - strings.add(" "); + strings.add("DebugMode: PlayerCam"); + strings.add("Player input: enabled"); + strings.add("Doors: disabled"); + if(Main.drawAbove || Main.drawBelow){ + strings.add("TiledMap: enabled"); + } + else{ + strings.add("TiledMap: disabled"); + } + strings.add(" "); + strings.add("CONTROLS:"); + strings.add(" "); + strings.add("press [F1] for debugMode 1"); + strings.add("press [F2] for debugMode 2"); + strings.add("press [F3] to end debugMode"); + strings.add("press [F8] to switch drawAbove"); + strings.add("press [F9] to switch drawBelow"); + strings.add(" "); + strings.add(" "); } else if(Main.gamestate == -2){ - strings.add("DebugMode: FreeCam"); - strings.add("Player input disabled"); - strings.add("press [SPACE] for Actors to act"); + strings.add("DebugMode: FreeCam"); + strings.add("Player input: disabled"); + strings.add("Doors: disabled"); + if(Main.drawAbove || Main.drawBelow){ + strings.add("TiledMap: enabled"); + } + else{ + strings.add("TiledMap: disabled"); + } + strings.add(" "); + strings.add("CONTROLS:"); + strings.add("hold [SPACE] for Actors to act"); + strings.add("press [F1] for debugMode 1"); + strings.add("press [F2] for debugMode 2"); + strings.add("press [F3] to end debugMode"); + strings.add("press [F8] to switch drawAbove"); + strings.add("press [F9] to switch drawBelow"); + strings.add("press [ARROW_KEYS] to move Camera"); + strings.add("hold [ALT_GR] to slowly move Camera"); } else{ strings.add("Gamestate "+Main.gamestate+" not supported"); } - strings.add("press [F1] to switch Gamestate"); float width = 0; for(String s : strings){ diff --git a/core/src/com/trs/main/view/UI/QuestWindow.java b/core/src/com/trs/main/view/UI/QuestWindow.java index 0901ecf..b5ea9f5 100644 --- a/core/src/com/trs/main/view/UI/QuestWindow.java +++ b/core/src/com/trs/main/view/UI/QuestWindow.java @@ -77,7 +77,7 @@ public class QuestWindow { renderer.setProjectionMatrix(batch.getProjectionMatrix()); - if(Main.debugUI){ + if(Main.debugModeActive){ visible = false; } diff --git a/core/src/com/trs/main/view/UI/Textbox.java b/core/src/com/trs/main/view/UI/Textbox.java index 1f0f8de..7a350a2 100644 --- a/core/src/com/trs/main/view/UI/Textbox.java +++ b/core/src/com/trs/main/view/UI/Textbox.java @@ -71,7 +71,7 @@ public class Textbox extends Actor{ setName("textbox"); setWidth(Main.CAMERA_WIDTH - 40); - r = new Rectangle(20, 20, 814, 0); + r = new Rectangle(20, 20, Main.CAMERA_WIDTH-40, 0); setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight()); this.toPrint = toPrint; diff --git a/core/src/com/trs/main/view/screens/GameScreen.java b/core/src/com/trs/main/view/screens/GameScreen.java index 458ea63..ba71aec 100644 --- a/core/src/com/trs/main/view/screens/GameScreen.java +++ b/core/src/com/trs/main/view/screens/GameScreen.java @@ -72,7 +72,7 @@ public class GameScreen extends AbstractScreen{ } if(Main.gamestate == -2){ - float camSpeed = 15; + float camSpeed = 10; if(Gdx.input.isKeyPressed(Input.Keys.ALT_RIGHT)){ camSpeed = 1; } @@ -97,10 +97,12 @@ public class GameScreen extends AbstractScreen{ //map.getStage().getCamera().update(); } - if(Main.debugUI){ + if(Main.debugModeActive){ + map.debugDoor(uiRenderer); debugUI.draw(map.getStage().getActors().size, new Vector2(map.getStage().getCamera().position.x, map.getStage().getCamera().position.y)); } } + @Override public void resize(int width, int height) { diff --git a/core/src/com/trs/main/worldobjects/Hostile.java b/core/src/com/trs/main/worldobjects/Hostile.java index 55a0d16..122d67a 100644 --- a/core/src/com/trs/main/worldobjects/Hostile.java +++ b/core/src/com/trs/main/worldobjects/Hostile.java @@ -21,6 +21,8 @@ public class Hostile extends Actor { private AnimatedSprite sprite; private Rectangle collisionRect; private Rectangle area; + private float attackCircleRad = 80f; + private float attentionCircleRad = 200f; private Circle attackCircle; private Circle attentionCircle; private boolean isMelee; @@ -48,8 +50,8 @@ public class Hostile extends Actor { sprite = new AnimatedSprite(tx, 64, 64, true); collisionRect = new Rectangle(xPos + 16, yPos, 32, 16); - attackCircle = new Circle(xPos + 16, yPos, 100f); - attentionCircle = new Circle(xPos + 16, yPos, 300f); + attackCircle = new Circle(xPos + 16, yPos, attackCircleRad); + attentionCircle = new Circle(xPos + 16, yPos, attentionCircleRad); movementState = 0; @@ -135,50 +137,78 @@ public class Hostile extends Actor { } if(getMovementState() == 1 && Main.gamestate != 1) { - for(Actor a : getStage().getActors()) { - if(a instanceof Player) { - if(Intersector.overlaps(getAttackCircle(), ((Player) a).getCollisionRect())) { - setMovementState(2); - } - if(!Intersector.overlaps(attentionCircle, ((Player) a).getCollisionRect())) { - setMovementState(0); - } - - - POI = new Vector2(a.getX()+a.getWidth()/2, a.getY()+a.getHeight()/2); - - Vector2 movement = new Vector2(speed,0); - movement.setAngleRad(StaticMath.calculateAngle(getX(), getY(), POI.x, POI.y)); - if(movement.angleDeg() < 135 && movement.angleDeg() >= 45) { - facing = 0; - } - else if(movement.angleDeg() >= 135 && movement.angleDeg() < 225) { - facing = 1; - } - else if(movement.angleDeg() >= 225 && movement.angleDeg() < 315) { - facing = 2; - } - else { - facing = 3; - } - - if(StaticMath.calculateDistance(getX(), getY(), POI.x, POI.y) < 1f) { - movement.x = 0; - movement.y = 0; - } - - setX(getX() + movement.x); - setY(getY() + movement.y); - - int animationRow = 0; - if(movement.x != 0 || movement.y != 0) { - animationRow = 8; - } - - getSprite().setRow(animationRow + facing); - } - } - } + Actor a = null; + for(Actor ac : getStage().getActors()) { + if(ac instanceof Player) { + if(Intersector.overlaps(getAttackCircle(), ((Player) ac).getCollisionRect())) { + setMovementState(2); + } + if(!Intersector.overlaps(attentionCircle, ((Player) ac).getCollisionRect())) { + setMovementState(0); + } + a = ac; + break; + } + } + if(a != null){ + POI = new Vector2(a.getX()+a.getWidth()/2, a.getY()+a.getHeight()/2); + + Vector2 movement = new Vector2(speed,0); + movement.setAngleRad(StaticMath.calculateAngle(getX(), getY(), POI.x, POI.y)); + if(movement.angleDeg() < 135 && movement.angleDeg() >= 45) { + facing = 0; + } + else if(movement.angleDeg() >= 135 && movement.angleDeg() < 225) { + facing = 1; + } + else if(movement.angleDeg() >= 225 && movement.angleDeg() < 315) { + facing = 2; + } + else { + facing = 3; + } + + + movementX = movement.x; + movementY = movement.y; + if(movementX == 0 && movementY == 0){ + + } + else if(movementX == 0 && movementY != 0){ + setY(getY()+movementY); + if(collidingWithMapCollisionObject()){ + setY(getY()-movementY); + } + } + else if(movementY == 0 && movementX != 0){ + setX(getX()+movementX); + if(collidingWithMapCollisionObject()){ + setX(getX()-movementX); + } + } + else if(movementX != 0 && movementY != 0){ + setX(getX()+ (movementX)); + if(collidingWithMapCollisionObject()){ + setX(getX() - (movementX)); + } + + setY(getY() + (movementY)); + if(collidingWithMapCollisionObject()){ + setY(getY()- (movementY)); + } + } + + + //setX(getX() + movement.x); + //setY(getY() + movement.y); + + int animationRow = 0; + if(movement.x != 0 || movement.y != 0) { + animationRow = 8; + } + getSprite().setRow(animationRow + facing); + } + } if(getMovementState() == 2) { Main.gamestate = 2; @@ -189,7 +219,7 @@ public class Hostile extends Actor { @Override public void draw(Batch batch, float deltatime) { getSprite().draw(batch); - if(Main.gamestate == -1 || Main.gamestate == -2){ + if(Main.debugModeActive){ debug(batch); } super.draw(batch, deltatime); @@ -239,8 +269,8 @@ public class Hostile extends Actor { protected void positionChanged() { getSprite().setSpritePosition((int)getX(), (int)getY()); setCollisionRect(new Rectangle(getX() + 16, getY(), 32, 16)); - setAttackCircle(new Circle(getX() + 16, getY(), 100f)); - setAttentionCircle(new Circle(getX() + 16, getY(), 300f)); + setAttackCircle(new Circle(getX() + 16, getY(), attackCircleRad)); + setAttentionCircle(new Circle(getX() + 16, getY(), attentionCircleRad)); super.positionChanged(); //To change body of generated methods, choose Tools | Templates. } @@ -252,7 +282,7 @@ public class Hostile extends Actor { return true; } } - else if(a instanceof MovingNpc && a != this){ + else if(a instanceof MovingNpc){ if(Intersector.overlaps(collisionRect, ((MovingNpc)a).collisionRect)){ return true; } diff --git a/core/src/com/trs/main/worldobjects/InteractionObject.java b/core/src/com/trs/main/worldobjects/InteractionObject.java index c7593a0..517b6f8 100644 --- a/core/src/com/trs/main/worldobjects/InteractionObject.java +++ b/core/src/com/trs/main/worldobjects/InteractionObject.java @@ -110,7 +110,7 @@ public class InteractionObject extends Actor{ @Override public void draw(Batch batch, float parentAlpha) { if(animatedSprite != null){animatedSprite.draw(batch);} - if(Main.gamestate == -1 || Main.gamestate == -2){ + if(Main.debugModeActive){ debug(batch); } super.draw(batch, parentAlpha); //To change body of generated methods, choose Tools | Templates. @@ -126,6 +126,7 @@ public class InteractionObject extends Actor{ shapeRenderer.end(); + batch.begin(); } diff --git a/core/src/com/trs/main/worldobjects/MapCollisionObject.java b/core/src/com/trs/main/worldobjects/MapCollisionObject.java index 8a5ff84..f5ab848 100644 --- a/core/src/com/trs/main/worldobjects/MapCollisionObject.java +++ b/core/src/com/trs/main/worldobjects/MapCollisionObject.java @@ -38,7 +38,7 @@ public class MapCollisionObject extends Actor{ @Override public void draw(Batch batch, float parentAlpha) { - if(Main.gamestate == -1 || Main.gamestate == -2){ + if(Main.debugModeActive){ debug(batch); } super.draw(batch, parentAlpha); //To change body of generated methods, choose Tools | Templates. diff --git a/core/src/com/trs/main/worldobjects/MovingNpc.java b/core/src/com/trs/main/worldobjects/MovingNpc.java index 50e1871..818e0bf 100644 --- a/core/src/com/trs/main/worldobjects/MovingNpc.java +++ b/core/src/com/trs/main/worldobjects/MovingNpc.java @@ -265,7 +265,7 @@ public class MovingNpc extends Actor{ } } - if(Main.gamestate == -1 || Main.gamestate == -2){ + if(Main.debugModeActive){ debug(batch); } @@ -286,6 +286,9 @@ public class MovingNpc extends Actor{ shapeRenderer.setColor(Color.ORANGE); shapeRenderer.line(getCenterX(), getCenterY(), POI.x, POI.y); } + + shapeRenderer.setColor(Color.RED); + shapeRenderer.rect(collisionRect.x, collisionRect.y, collisionRect.width, collisionRect.height); shapeRenderer.setColor(Color.WHITE); shapeRenderer.rect(getX(), getY(), animatedSprite.getSprite().getWidth(), animatedSprite.getSprite().getHeight()); diff --git a/core/src/com/trs/main/worldobjects/Player.java b/core/src/com/trs/main/worldobjects/Player.java index 043b7fa..2410ec9 100644 --- a/core/src/com/trs/main/worldobjects/Player.java +++ b/core/src/com/trs/main/worldobjects/Player.java @@ -203,7 +203,7 @@ public class Player extends Actor{ @Override public void draw(Batch batch, float parentAlpha) { getPlayerSprite().draw(batch); - if(Main.gamestate == -1 || Main.gamestate == -2){ + if(Main.debugModeActive){ debug(batch); } super.draw(batch, parentAlpha); //To change body of generated methods, choose Tools | Templates. diff --git a/desktop/src/com/trs/main/desktop/DesktopLauncher.java b/desktop/src/com/trs/main/desktop/DesktopLauncher.java index 5db165f..a0264a2 100644 --- a/desktop/src/com/trs/main/desktop/DesktopLauncher.java +++ b/desktop/src/com/trs/main/desktop/DesktopLauncher.java @@ -9,12 +9,10 @@ public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.resizable = true; - - config.width=1280; - config.height=720; + + config.width=1600; + config.height=900; config.fullscreen = false; - config.backgroundFPS = 100; - config.foregroundFPS = 100; //config.width=1920; //config.height=1080;