From dd573aa8e50e00b764eaf05f11f29d14f41a0f42 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Wed, 1 Apr 2020 14:07:18 +0200 Subject: [PATCH 01/16] controller erstellt und bewegung Test (not working) --- core/assets/Player.png | Bin 0 -> 151 bytes core/src/com/dungeoncrawler/Main.java | 5 +- .../dungeoncrawler/control/Controller.java | 91 ++++++++++++++++++ core/src/com/dungeoncrawler/view/View.java | 18 +++- 4 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 core/assets/Player.png create mode 100644 core/src/com/dungeoncrawler/control/Controller.java diff --git a/core/assets/Player.png b/core/assets/Player.png new file mode 100644 index 0000000000000000000000000000000000000000..174204e74a574aa74c84c50e859b6c1f3d633170 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@f;yfqjv*f2Z_gSsG8pi%Ec|8ucj|#DZw(II h-pHi202w___}v})WtqYETeU!a44$rjF6*2UngA2UEk^(V literal 0 HcmV?d00001 diff --git a/core/src/com/dungeoncrawler/Main.java b/core/src/com/dungeoncrawler/Main.java index 5fc55d5..291dcf2 100644 --- a/core/src/com/dungeoncrawler/Main.java +++ b/core/src/com/dungeoncrawler/Main.java @@ -2,13 +2,16 @@ package com.dungeoncrawler; import com.badlogic.gdx.ApplicationAdapter; import com.dungeoncrawler.view.View; +import com.dungeoncrawler.control.Controller; public class Main extends ApplicationAdapter { - + View v; + Controller c; public Main(){ v = new View(); + c = new Controller(); } } diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java new file mode 100644 index 0000000..49da034 --- /dev/null +++ b/core/src/com/dungeoncrawler/control/Controller.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.dungeoncrawler.control; +import com.badlogic.gdx.ApplicationAdapter; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.InputProcessor; +import com.dungeoncrawler.view.View; +import com.dungeoncrawler.model.Dungeon; +import com.dungeoncrawler.model.entities.Player; + +public class Controller extends ApplicationAdapter implements InputProcessor{ + Dungeon d; + View v; + Player p; + float movementX = 0f; + float movementY = 0f; + + public Controller(){ + v = new View(); + p = new Player(0,0,0); + d = new Dungeon(p); + Gdx.input.setInputProcessor(this); + } + + + @Override + public boolean keyDown(int keycode) { + if(keycode == Input.Keys.LEFT){ + movementX = -3f; + v.move(movementX, movementY); + System.out.println("EY"); + } + + if(keycode == Input.Keys.RIGHT){ + movementX = 3f; + v.move(movementX, movementY); + } + + if(keycode == Input.Keys.UP){ + movementY = 3f; + v.move(movementX, movementY); + } + + if(keycode == Input.Keys.DOWN){ + movementY = -3f; + v.move(movementX, movementY); + } + return true; + } + + @Override + public boolean keyUp(int i) { + movementY = 0f; + movementX = 0f; + return true; + } + + @Override + public boolean keyTyped(char c) { + return false; + } + + @Override + public boolean touchDown(int i, int i1, int i2, int i3) { + return false; + } + + @Override + public boolean touchUp(int i, int i1, int i2, int i3) { + return false; + } + + @Override + public boolean touchDragged(int i, int i1, int i2) { + return false; + } + + @Override + public boolean mouseMoved(int i, int i1) { + return false; + } + + @Override + public boolean scrolled(int i) { + return false; + } +} diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 6884f34..0bd2419 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -11,16 +11,21 @@ public class View extends ApplicationAdapter { SpriteBatch batch; Texture b; Texture t; + Texture p; Sprite button; Sprite title; + Sprite player; + @Override public void create () { batch = new SpriteBatch(); b = new Texture("Button.png"); t = new Texture("Title.png"); + p = new Texture("Player.png"); button = new Sprite(b); title = new Sprite(t); + player = new Sprite(p); float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); float wc = w/2; @@ -28,6 +33,8 @@ public class View extends ApplicationAdapter { title.setY(h - 200); button.setX(wc - (button.getWidth()/2)); button.setY(400); + player.setX(200); + player.setY(200); } @Override @@ -38,12 +45,21 @@ public class View extends ApplicationAdapter { batch.begin(); title.draw(batch); button.draw(batch); + player.draw(batch); batch.end(); } @Override public void dispose () { - batch.dispose(); + batch.dispose(); } + + public void move(float x, float y){ + player.setX(player.getX()+x); + player.setY(player.getY()+y); + System.out.println("PRESS"); + } + + } From bfd63334c78b07c967d335e11e87e33e941fd2c6 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Wed, 1 Apr 2020 14:36:33 +0200 Subject: [PATCH 02/16] batch in rendermethod in View doesn't work --- core/src/com/dungeoncrawler/Main.java | 6 ------ core/src/com/dungeoncrawler/control/Controller.java | 12 +++++++++++- core/src/com/dungeoncrawler/view/View.java | 11 +++++------ .../com/dungeoncrawler/desktop/DesktopLauncher.java | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/core/src/com/dungeoncrawler/Main.java b/core/src/com/dungeoncrawler/Main.java index 291dcf2..7211c28 100644 --- a/core/src/com/dungeoncrawler/Main.java +++ b/core/src/com/dungeoncrawler/Main.java @@ -1,17 +1,11 @@ package com.dungeoncrawler; import com.badlogic.gdx.ApplicationAdapter; -import com.dungeoncrawler.view.View; -import com.dungeoncrawler.control.Controller; public class Main extends ApplicationAdapter { - View v; - Controller c; public Main(){ - v = new View(); - c = new Controller(); } } diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 49da034..56b4a12 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -19,14 +19,24 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ float movementX = 0f; float movementY = 0f; - public Controller(){ + @Override + public void create(){ v = new View(); p = new Player(0,0,0); d = new Dungeon(p); Gdx.input.setInputProcessor(this); } + @Override + public void render(){ + v.render(); + } + @Override + public void dispose () { + v.dispose(); + } + @Override public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 0bd2419..fb18b23 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -37,19 +37,18 @@ public class View extends ApplicationAdapter { player.setY(200); } - @Override + public void render () { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - - batch.begin(); + batch.begin(); title.draw(batch); button.draw(batch); player.draw(batch); - batch.end(); + batch.end(); } - - @Override + + public void dispose () { batch.dispose(); diff --git a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java index ffdbed2..1afbf38 100644 --- a/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java +++ b/desktop/src/com/dungeoncrawler/desktop/DesktopLauncher.java @@ -2,13 +2,13 @@ package com.dungeoncrawler.desktop; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; -import com.dungeoncrawler.view.View; +import com.dungeoncrawler.control.Controller; public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.width = 1600; config.height = 900; - new LwjglApplication(new View(), config); + new LwjglApplication(new Controller(), config); } } From 1e58fc09b38a5b39c0eda62dad54c072ae05c653 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Wed, 1 Apr 2020 20:11:12 +0200 Subject: [PATCH 03/16] Batch funktioniert --- .../com/dungeoncrawler/control/Controller.java | 8 ++++++-- core/src/com/dungeoncrawler/view/View.java | 18 ++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 56b4a12..9115f4d 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -4,15 +4,18 @@ * and open the template in the editor. */ package com.dungeoncrawler.control; + import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputProcessor; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.dungeoncrawler.view.View; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.entities.Player; public class Controller extends ApplicationAdapter implements InputProcessor{ + SpriteBatch batch; Dungeon d; View v; Player p; @@ -21,6 +24,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void create(){ + batch = new SpriteBatch(); v = new View(); p = new Player(0,0,0); d = new Dungeon(p); @@ -29,12 +33,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ - v.render(); + v.render(batch); } @Override public void dispose () { - v.dispose(); + batch.dispose(); } @Override diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index fb18b23..349471e 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -1,14 +1,12 @@ package com.dungeoncrawler.view; -import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.Sprite; -public class View extends ApplicationAdapter { - SpriteBatch batch; +public class View { Texture b; Texture t; Texture p; @@ -16,10 +14,7 @@ public class View extends ApplicationAdapter { Sprite title; Sprite player; - - @Override - public void create () { - batch = new SpriteBatch(); + public View() { b = new Texture("Button.png"); t = new Texture("Title.png"); p = new Texture("Player.png"); @@ -38,9 +33,10 @@ public class View extends ApplicationAdapter { } - public void render () { + public void render (SpriteBatch batch) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + batch.begin(); title.draw(batch); button.draw(batch); @@ -48,12 +44,6 @@ public class View extends ApplicationAdapter { batch.end(); } - - public void dispose () { - batch.dispose(); - - } - public void move(float x, float y){ player.setX(player.getX()+x); player.setY(player.getY()+y); From a532be9a46f93ada479ef2f80177606f72c1e35c Mon Sep 17 00:00:00 2001 From: GammelJan Date: Wed, 1 Apr 2020 18:25:02 +0200 Subject: [PATCH 04/16] movement works --- .../dungeoncrawler/control/Controller.java | 28 +++++++++++-------- core/src/com/dungeoncrawler/view/View.java | 11 +++----- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 9115f4d..9ef33a8 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -33,7 +33,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ - v.render(batch); + v.render(batch, movementX ,movementY); } @Override @@ -45,32 +45,36 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ movementX = -3f; - v.move(movementX, movementY); - System.out.println("EY"); + v.render(batch, movementX, movementY); } if(keycode == Input.Keys.RIGHT){ movementX = 3f; - v.move(movementX, movementY); + v.render(batch, movementX, movementY); } if(keycode == Input.Keys.UP){ - movementY = 3f; - v.move(movementX, movementY); + movementY = 4f; + v.render(batch, movementX, movementY); } if(keycode == Input.Keys.DOWN){ - movementY = -3f; - v.move(movementX, movementY); + movementY = -4f; + v.render(batch, movementX, movementY); } return true; } @Override - public boolean keyUp(int i) { - movementY = 0f; - movementX = 0f; - return true; + public boolean keyUp(int keycode) { + if(keycode == Input.Keys.LEFT || keycode == Input.Keys.RIGHT){ + movementX = 0f; + } + + if(keycode == Input.Keys.DOWN || keycode == Input.Keys.UP){ + movementY = 0f; + } + return true; } @Override diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 349471e..30cc3e1 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -33,10 +33,11 @@ public class View { } - public void render (SpriteBatch batch) { + public void render (SpriteBatch batch, float x, float y) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - + player.setX(player.getX()+x); + player.setY(player.getY()+y); batch.begin(); title.draw(batch); button.draw(batch); @@ -44,11 +45,7 @@ public class View { batch.end(); } - public void move(float x, float y){ - player.setX(player.getX()+x); - player.setY(player.getY()+y); - System.out.println("PRESS"); - } + } From 3dab2fd7cb10437b1be173760e8f22de101b2e4a Mon Sep 17 00:00:00 2001 From: GammelJan Date: Wed, 1 Apr 2020 18:53:24 +0200 Subject: [PATCH 05/16] movement works --- core/src/com/dungeoncrawler/view/View.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 30cc3e1..9473569 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -48,4 +48,4 @@ public class View { -} +} \ No newline at end of file From 5e4641c8731e09eadf78e9ad11dcd6f1a6b52e2d Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 11:45:51 +0200 Subject: [PATCH 06/16] little sprite animation works --- core/assets/animplay.png | Bin 0 -> 16282 bytes .../dungeoncrawler/control/Controller.java | 8 +- core/src/com/dungeoncrawler/view/View.java | 120 +++++++++++++++++- 3 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 core/assets/animplay.png diff --git a/core/assets/animplay.png b/core/assets/animplay.png new file mode 100644 index 0000000000000000000000000000000000000000..881f12f219f687270bda736221cddff42e959287 GIT binary patch literal 16282 zcmajGc{r4BANPOF7}@u=Bulc3REQX4NfAP*7>Xo>vSu2S$X1b*kfju%tVKyPV++}m z?9156J`^*Incq3p_j}*Z^W4Yr`@`WlX0AEU^V&Yk`}IC!txlP8vF~DsAc)KCxY20{ zg6T8>nxL}x1~Z?1iN^GiaIy7N;^fp>*e%Fu@Wg+3PzCedrvvuEONaZjveC$n;dg$OfU7^ zFv#JS1cz9n?WhsVe#;dW5O%In2?mL%a*Yn(-@kb3pKqJsAr;#(YXf68MVmq5zMmJq z@;V>w^qgeZr*2XEpGhg7|0rC3>==aoWkEkd1JhctNqW8J4gcgHZ_V<1Ud(Qc0W#vL z4|1G(q2WaEZ1dT=8sWW~24M1W0TeSb30m?TScVAax`-FZQF1fl%gFDsHFNCMz3Uai zrhk@x0&^KQ)b*C=SP^gpa=CT|9#%XBK{f{uzP}kPJV8Xpfa8_VRqcLgBk(0dAB>wt zE}%R^B-Y5~$qseoF1L{XK`B>a`D!R zCN1yzavND40E0%?X#Vc@u-|9Z+mIlGRl=aRU##1=%-mcaXgjxr4?KbePl6uFZk367 z#c%#V-b{IU=#Hi|Ez9DtImZQ^l`GyXeUlzu^G{W;WWq?XStgiWb3}W{5pp<}r5pWN zVu^WI$tR2mB!3bsLxLUm`C8+_rcVu6^_fBKnnU^_n#5}0E1dk4iL*pJK%-}G^)cH@KIsTzndWij6(*IVwz_s!!aVQ$$oS(np1Vv3aX zzmYHS-q^Bq*=)ZnMEm?k>0nsex=y{N9MOdK=)|_Eu>Q2$o}WKhde=^s`Oly5;Xb}A z%Om|bla_Q_6hfXt*FBbP^^^C{7SflXWx-au{V$C?a5Q@n<&ls_Xao|F}cfZi7 zAoIY}f=np;m7LW;L5LI|?W;tOdqdmHHcGKkX`d=C9w&6(H&4D;aP|Nx@GfiZ>dte4 zeEfJVa>ZKllR5CF1Z8>$eZF)3bPVx;-97RcMLRB$+&py<22GE|>r(tJ@61`2LKPZU zuUGG02sXFd%ZLK4EZGfrPX7#-fen55uz$JbXw&kO0u%6#5VML;qEB?wA0QHasp{R> zDj}Cx)Nb_ZEhjySGZ(n9f@8VhW%~H{6LDl2w7OC>(bo5NEBoE30P$!R+9kyjXWydg z0Bu|yL_n`F)%=hj=^He%III2`s;{h*ljxgzxZJ(Emt(YleQ�wB?7n!NBUBAYz1& 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 BAGQDh literal 0 HcmV?d00001 diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 9ef33a8..8c9180b 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -54,12 +54,12 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } if(keycode == Input.Keys.UP){ - movementY = 4f; + movementY = 3f; v.render(batch, movementX, movementY); } if(keycode == Input.Keys.DOWN){ - movementY = -4f; + movementY = -3f; v.render(batch, movementX, movementY); } return true; @@ -69,10 +69,14 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ public boolean keyUp(int keycode) { if(keycode == Input.Keys.LEFT || keycode == Input.Keys.RIGHT){ movementX = 0f; + v.trechtsstop(); + v.tlinksstop(); } if(keycode == Input.Keys.DOWN || keycode == Input.Keys.UP){ movementY = 0f; + v.tobenstop(); + v.tuntenstop(); } return true; } diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 9473569..cdc6e9f 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -5,6 +5,8 @@ import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.Sprite; +import com.badlogic.gdx.utils.Timer; +import com.badlogic.gdx.graphics.g2d.TextureRegion; public class View { Texture b; @@ -13,14 +15,21 @@ public class View { Sprite button; Sprite title; Sprite player; + int frame = 0; + int zeile = 0; + TextureRegion[][] regions; + Timer tunten; + Timer toben; + Timer tlinks; + Timer trechts; public View() { b = new Texture("Button.png"); t = new Texture("Title.png"); - p = new Texture("Player.png"); + p = new Texture("animplay.png"); button = new Sprite(b); title = new Sprite(t); - player = new Sprite(p); + float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); float wc = w/2; @@ -28,8 +37,86 @@ public class View { title.setY(h - 200); button.setX(wc - (button.getWidth()/2)); button.setY(400); + regions = TextureRegion.split(p, 32, 32); + player = new Sprite(regions[0][2]); player.setX(200); player.setY(200); + tunten = new Timer(); + toben = new Timer(); + tlinks = new Timer(); + trechts = new Timer(); + + tunten.scheduleTask(new Timer.Task() { + @Override + public void run() { + zeile = 2; + + if(frame == 9){ + frame = 0; + } + else{ + frame++; + } + + player.setRegion(regions[zeile][frame]); + + } + },0,1/5f); + tunten.stop(); + toben.scheduleTask(new Timer.Task() { + @Override + public void run() { + zeile = 2; + + if(frame == 9){ + frame = 0; + } + else{ + frame++; + } + + player.setRegion(regions[zeile][frame]); + + } + }, 0,1/5f); + toben.stop(); + tlinks.scheduleTask(new Timer.Task() { + @Override + public void run() { + zeile = 2; + + if(frame == 9){ + frame = 0; + } + else{ + frame++; + } + + player.setRegion(regions[zeile][frame]); + + } + }, 0,1/5f); + tlinks.stop(); + trechts.scheduleTask(new Timer.Task() { + @Override + public void run() { + zeile = 2; + + if(frame == 9){ + frame = 0; + } + else{ + frame++; + } + + player.setRegion(regions[zeile][frame]); + + } + }, 0,1/5f); + trechts.stop(); + + + } @@ -38,6 +125,19 @@ public class View { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); player.setX(player.getX()+x); player.setY(player.getY()+y); + if(x == 3f){ + trechts.start(); + } + if(x == -3f){ + tlinks.start(); + } + if(y == 3f){ + toben.start(); + } + if(y == -3f){ + tunten.start(); + } + batch.begin(); title.draw(batch); button.draw(batch); @@ -47,5 +147,17 @@ public class View { - -} \ No newline at end of file + public void tuntenstop(){ + tunten.stop(); + frame = 0;} + public void tobenstop(){ + toben.stop(); + frame = 0;} + public void tlinksstop(){ + tlinks.stop(); + frame = 0;} + public void trechtsstop(){ + trechts.stop(); + frame = 0;} + + } From 158f5e98afb5100c0214aa61b2c65d63a669c28d Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 11:56:42 +0200 Subject: [PATCH 07/16] flip of player not working --- core/src/com/dungeoncrawler/view/View.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index cdc6e9f..cc1d3cf 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -63,6 +63,7 @@ public class View { } },0,1/5f); tunten.stop(); + toben.scheduleTask(new Timer.Task() { @Override public void run() { @@ -80,42 +81,50 @@ public class View { } }, 0,1/5f); toben.stop(); + tlinks.scheduleTask(new Timer.Task() { @Override public void run() { zeile = 2; + if(player.isFlipY() == true){ + } + else{ + player.flip(false, true); + } if(frame == 9){ frame = 0; } else{ frame++; } - + player.setRegion(regions[zeile][frame]); } }, 0,1/5f); tlinks.stop(); + trechts.scheduleTask(new Timer.Task() { @Override public void run() { zeile = 2; - + if(player.isFlipY() == true){ + player.flip(false, false); + } if(frame == 9){ frame = 0; } else{ frame++; } + player.setRegion(regions[zeile][frame]); } }, 0,1/5f); trechts.stop(); - - } From 8963567558e466097ee8ef0a0f77b9c0fd3c20ec Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 11:58:24 +0200 Subject: [PATCH 08/16] flip of player not working - animation resets when stopping --- core/src/com/dungeoncrawler/view/View.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index cc1d3cf..6b4299a 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -158,15 +158,19 @@ public class View { public void tuntenstop(){ tunten.stop(); - frame = 0;} + frame = 0; + player.setRegion(regions[zeile][frame]);} public void tobenstop(){ toben.stop(); - frame = 0;} + frame = 0; + player.setRegion(regions[zeile][frame]);} public void tlinksstop(){ tlinks.stop(); - frame = 0;} + frame = 0; + player.setRegion(regions[zeile][frame]);} public void trechtsstop(){ trechts.stop(); - frame = 0;} + frame = 0; + player.setRegion(regions[zeile][frame]);} } From 4c8c5d4cc4857ba72706fc184fdf0004dde391d5 Mon Sep 17 00:00:00 2001 From: Jonathan Hager Date: Thu, 2 Apr 2020 14:43:05 +0200 Subject: [PATCH 09/16] =?UTF-8?q?Unsch=C3=B6ner=20Flip=20workaround?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/com/dungeoncrawler/view/View.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 6b4299a..341fd3e 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -86,11 +86,11 @@ public class View { @Override public void run() { zeile = 2; - if(player.isFlipY() == true){ + if(player.isFlipX() == true){ } else{ - player.flip(false, true); + player.flip(true, false); } if(frame == 9){ frame = 0; @@ -109,7 +109,7 @@ public class View { @Override public void run() { zeile = 2; - if(player.isFlipY() == true){ + if(player.isFlipX() == true){ player.flip(false, false); } if(frame == 9){ @@ -134,11 +134,21 @@ public class View { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); player.setX(player.getX()+x); player.setY(player.getY()+y); + if(x == 3f){ trechts.start(); + if(player.isFlipX() == true){ + player.flip(false, false); + } } if(x == -3f){ - tlinks.start(); + tlinks.start(); + if(player.isFlipX() == true){ + + } + else{ + player.flip(true, false); + } } if(y == 3f){ toben.start(); From ce2a39cdd0e2337e94f8493fd2a645d2a24a8181 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 12:59:23 +0200 Subject: [PATCH 10/16] player flips, stays flipped when moving left --- core/src/com/dungeoncrawler/view/View.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 341fd3e..57b4be9 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -177,7 +177,8 @@ public class View { public void tlinksstop(){ tlinks.stop(); frame = 0; - player.setRegion(regions[zeile][frame]);} + player.setRegion(regions[zeile][frame]); + player.flip(true, false);} public void trechtsstop(){ trechts.stop(); frame = 0; From 26a486a8f4d72481304a102ae2560317a35f87ac Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 13:02:29 +0200 Subject: [PATCH 11/16] player flips, stays flipped when moving left - bug fixed --- .../com/dungeoncrawler/control/Controller.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 8c9180b..8019303 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -67,17 +67,25 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean keyUp(int keycode) { - if(keycode == Input.Keys.LEFT || keycode == Input.Keys.RIGHT){ + if(keycode == Input.Keys.LEFT){ movementX = 0f; - v.trechtsstop(); v.tlinksstop(); } - if(keycode == Input.Keys.DOWN || keycode == Input.Keys.UP){ + if(keycode == Input.Keys.RIGHT){ + movementX = 0f; + v.trechtsstop(); + } + + if(keycode == Input.Keys.DOWN){ movementY = 0f; - v.tobenstop(); v.tuntenstop(); } + + if(keycode == Input.Keys.UP){ + movementY = 0f; + v.tobenstop(); + } return true; } From d2360cb33820fa1d873e1e015d90938b851bad47 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Thu, 2 Apr 2020 13:47:20 +0200 Subject: [PATCH 12/16] archer graphic added - no function yet --- core/assets/Archer.png | Bin 0 -> 756 bytes .../dungeoncrawler/control/Controller.java | 25 +++++++++++------- .../dungeoncrawler/model/entities/Archer.java | 2 ++ .../dungeoncrawler/model/entities/Player.java | 2 ++ core/src/com/dungeoncrawler/view/View.java | 10 +++++-- 5 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 core/assets/Archer.png diff --git a/core/assets/Archer.png b/core/assets/Archer.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a0506e9540c29d936467a0333aada5432226c7 GIT binary patch literal 756 zcmVEX>4Tx04R}tkv&MmKpe$i(@LdQ9PA+CkfAzR5EXHhDi*;)X)CnqU~=gfG-*gu zTpR`0f`cE6RRo)_Ex7zKj6K&xTf-^aGyIsyF8z?IhV*P6iWC+Urj z7Ciz6wtzHzJ-ip@n00006VoOIv0RI600RN!9r;`8x010qNS#tmY zE+YT{E+YYWr9XB6000McNliru3muX#$BX~~02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{007KML_t(o!|j*J5`-WOL|@|n|EvqQA#=eh4x%_q!ojZc zX8D>X!~mT#m<_UlT|C)f?)|QGfM0;}nX(Hv{_u4xlBK?N$N?xhI{QGC5d` zIKi7H#1VdILhC(ufCETf6H*y493_RV)lqZR&XkDN*D2_ouJwl$W^tC0Z#*weZUl00}ZV4Kcjtm4dCZ-29l!W$WOxzrDKid5f>9}6o~$~CX%#SgI-Q6 mhf_H+OK00QU=ffjIKUfGI$l)J|Fqr!0000 Date: Sat, 4 Apr 2020 13:20:02 +0200 Subject: [PATCH 13/16] Archer added (64x64) --- core/assets/Archer-64.png | Bin 0 -> 3621 bytes core/src/com/dungeoncrawler/model/Entity.java | 5 +- .../com/dungeoncrawler/model/Inventory.java | 10 ++- core/src/com/dungeoncrawler/model/Room.java | 12 ++-- core/src/com/dungeoncrawler/view/View.java | 62 +++++++++--------- 5 files changed, 52 insertions(+), 37 deletions(-) create mode 100644 core/assets/Archer-64.png diff --git a/core/assets/Archer-64.png b/core/assets/Archer-64.png new file mode 100644 index 0000000000000000000000000000000000000000..26ecf0024f6b07cb69aa2110ba3631e718ba9c5a GIT binary patch literal 3621 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 literal 0 HcmV?d00001 diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index c50a2a8..175557b 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -1,5 +1,7 @@ package com.dungeoncrawler.model; - +import com.dungeoncrawler.model.entities.Archer; +import com.dungeoncrawler.model.entities.Player; +import com.dungeoncrawler.model.entities.Swordsman; public abstract class Entity { @@ -31,6 +33,7 @@ public abstract class Entity { } + public int getxPos() { return xPos; } diff --git a/core/src/com/dungeoncrawler/model/Inventory.java b/core/src/com/dungeoncrawler/model/Inventory.java index 10f3d50..15a9362 100644 --- a/core/src/com/dungeoncrawler/model/Inventory.java +++ b/core/src/com/dungeoncrawler/model/Inventory.java @@ -4,7 +4,7 @@ package com.dungeoncrawler.model; public class Inventory { Item items[][]; - + Item equip; Inventory(int width, int height){ items = new Item[width][height]; @@ -24,6 +24,14 @@ public class Inventory { } } + public void equipItem(int x, int y){ + if(equip == null){ + equip = items[x][y]; + dropItem(x,y); + } + } + + public void dropItem(int x, int y){ items[x][y] = null; } diff --git a/core/src/com/dungeoncrawler/model/Room.java b/core/src/com/dungeoncrawler/model/Room.java index 69d1dfe..3984272 100644 --- a/core/src/com/dungeoncrawler/model/Room.java +++ b/core/src/com/dungeoncrawler/model/Room.java @@ -5,8 +5,6 @@ */ package com.dungeoncrawler.model; -import com.dungeoncrawler.model.Entity; - /** * * @author jonathan @@ -14,14 +12,18 @@ import com.dungeoncrawler.model.Entity; public class Room { private ItemContainer item; private Entity[] enemies; + int lvl; public Room(ItemContainer item, Entity[] enemies){ this.item = item; this.enemies = enemies; + } - public void spawnEnemies(int xPos, int yPos){ - // TODO: Zu Implementieren + + public void spawnEnemies(int xPos, int yPos, Entity enemy){ + enemy.setxPos(xPos); + enemy.setyPos(yPos); } public void spawnItem(int xPos, int yPos){ @@ -57,4 +59,6 @@ public class Room { } + + } diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 044ceb1..dcc2216 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -17,8 +17,8 @@ public class View { Sprite title; Sprite player; Sprite archer; - int frame = 0; - int zeile = 0; + int PlayerFrame = 0; + int PlayerZeile = 0; TextureRegion[][] regions; Timer tunten; Timer toben; @@ -29,7 +29,7 @@ public class View { b = new Texture("Button.png"); t = new Texture("Title.png"); p = new Texture("animplay.png"); - a = new Texture("Archer.png"); + a = new Texture("Archer-64.png"); button = new Sprite(b); title = new Sprite(t); archer = new Sprite(a); @@ -53,16 +53,16 @@ public class View { tunten.scheduleTask(new Timer.Task() { @Override public void run() { - zeile = 2; + PlayerZeile = 2; - if(frame == 9){ - frame = 0; + if(PlayerFrame == 9){ + PlayerFrame = 0; } else{ - frame++; + PlayerFrame++; } - player.setRegion(regions[zeile][frame]); + player.setRegion(regions[PlayerZeile][PlayerFrame]); } },0,1/5f); @@ -71,16 +71,16 @@ public class View { toben.scheduleTask(new Timer.Task() { @Override public void run() { - zeile = 2; + PlayerZeile = 2; - if(frame == 9){ - frame = 0; + if(PlayerFrame == 9){ + PlayerFrame = 0; } else{ - frame++; + PlayerFrame++; } - player.setRegion(regions[zeile][frame]); + player.setRegion(regions[PlayerZeile][PlayerFrame]); } }, 0,1/5f); @@ -89,21 +89,21 @@ public class View { tlinks.scheduleTask(new Timer.Task() { @Override public void run() { - zeile = 2; + PlayerZeile = 2; if(player.isFlipX() == true){ } else{ player.flip(true, false); } - if(frame == 9){ - frame = 0; + if(PlayerFrame == 9){ + PlayerFrame = 0; } else{ - frame++; + PlayerFrame++; } - player.setRegion(regions[zeile][frame]); + player.setRegion(regions[PlayerZeile][PlayerFrame]); } }, 0,1/5f); @@ -112,19 +112,19 @@ public class View { trechts.scheduleTask(new Timer.Task() { @Override public void run() { - zeile = 2; + PlayerZeile = 2; if(player.isFlipX() == true){ player.flip(false, false); } - if(frame == 9){ - frame = 0; + if(PlayerFrame == 9){ + PlayerFrame = 0; } else{ - frame++; + PlayerFrame++; } - player.setRegion(regions[zeile][frame]); + player.setRegion(regions[PlayerZeile][PlayerFrame]); } }, 0,1/5f); @@ -174,20 +174,20 @@ public class View { public void tuntenstop(){ tunten.stop(); - frame = 0; - player.setRegion(regions[zeile][frame]);} + PlayerFrame = 0; + player.setRegion(regions[PlayerZeile][PlayerFrame]);} public void tobenstop(){ toben.stop(); - frame = 0; - player.setRegion(regions[zeile][frame]);} + PlayerFrame = 0; + player.setRegion(regions[PlayerZeile][PlayerFrame]);} public void tlinksstop(){ tlinks.stop(); - frame = 0; - player.setRegion(regions[zeile][frame]); + PlayerFrame = 0; + player.setRegion(regions[PlayerZeile][PlayerFrame]); player.flip(true, false);} public void trechtsstop(){ trechts.stop(); - frame = 0; - player.setRegion(regions[zeile][frame]);} + PlayerFrame = 0; + player.setRegion(regions[PlayerZeile][PlayerFrame]);} } From f558d60fe72eb951544b25da2ac3f8ad38e1a69f Mon Sep 17 00:00:00 2001 From: GammelJan Date: Sun, 5 Apr 2020 21:17:33 +0200 Subject: [PATCH 14/16] =?UTF-8?q?Archer=20l=C3=A4uft=20nur=20nach=20rechts?= =?UTF-8?q?=20unten=20lol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/src/com/dungeoncrawler/control/Controller.java | 11 +++++++++++ core/src/com/dungeoncrawler/model/Entity.java | 5 +++-- .../src/com/dungeoncrawler/model/entities/Archer.java | 2 ++ .../com/dungeoncrawler/model/entities/Swordsman.java | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 6652911..ddc3645 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -37,7 +37,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ + switch((int) (Math.random() * 5)){ + case 0: //left + a.move(-3,0); + case 1: //right + a.move(3,0); + case 2: //up + a.move(0,3); + case 3: //down + a.move(0,-3); + } v.render(batch, movementX ,movementY, a.getxPos(), a.getyPos()); + } @Override diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 175557b..9ac5004 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -20,7 +20,7 @@ public abstract class Entity { public void attack(){ - + } public void update(){ @@ -29,7 +29,8 @@ public abstract class Entity { } public void move(int movementX, int movementY){ - + xPos = xPos + movementX; + yPos = yPos + movementY; } diff --git a/core/src/com/dungeoncrawler/model/entities/Archer.java b/core/src/com/dungeoncrawler/model/entities/Archer.java index bc0498e..361a710 100644 --- a/core/src/com/dungeoncrawler/model/entities/Archer.java +++ b/core/src/com/dungeoncrawler/model/entities/Archer.java @@ -16,4 +16,6 @@ public class Archer extends Entity{ + + } diff --git a/core/src/com/dungeoncrawler/model/entities/Swordsman.java b/core/src/com/dungeoncrawler/model/entities/Swordsman.java index d18f6fa..4c43211 100644 --- a/core/src/com/dungeoncrawler/model/entities/Swordsman.java +++ b/core/src/com/dungeoncrawler/model/entities/Swordsman.java @@ -24,4 +24,6 @@ public class Swordsman extends Entity { // TODO: Sinnvolle Werte finden } + + } From 1141b109bc9c6fca46af72e96cca147b091de221 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Sun, 5 Apr 2020 21:52:05 +0200 Subject: [PATCH 15/16] archer bewegt sich random TODO: movementX u. Y aus Controller in Entity umlagern --- .../dungeoncrawler/control/Controller.java | 21 ++++++-------- core/src/com/dungeoncrawler/model/Entity.java | 28 ++++++++++++++++--- core/src/com/dungeoncrawler/view/Map.java | 2 +- core/src/com/dungeoncrawler/view/View.java | 1 + 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index ddc3645..4732ca1 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -14,6 +14,7 @@ import com.dungeoncrawler.view.View; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.entities.Player; import com.dungeoncrawler.model.entities.Archer; +import com.badlogic.gdx.utils.Timer; public class Controller extends ApplicationAdapter implements InputProcessor{ SpriteBatch batch; @@ -23,7 +24,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ Archer a; float movementX = 0f; float movementY = 0f; - + Timer t; @Override public void create(){ @@ -33,22 +34,18 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ d = new Dungeon(p); a = new Archer(500, 200, 1); Gdx.input.setInputProcessor(this); + t = new Timer(); + t.scheduleTask(new Timer.Task() { + @Override + public void run() { + a.rdmMove(); + } + },0,0.1f); } @Override public void render(){ - switch((int) (Math.random() * 5)){ - case 0: //left - a.move(-3,0); - case 1: //right - a.move(3,0); - case 2: //up - a.move(0,3); - case 3: //down - a.move(0,-3); - } v.render(batch, movementX ,movementY, a.getxPos(), a.getyPos()); - } @Override diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 9ac5004..2f9a255 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -1,7 +1,5 @@ package com.dungeoncrawler.model; -import com.dungeoncrawler.model.entities.Archer; -import com.dungeoncrawler.model.entities.Player; -import com.dungeoncrawler.model.entities.Swordsman; + public abstract class Entity { @@ -11,13 +9,18 @@ public abstract class Entity { protected int maxhp; protected int dmg; protected int lvl; + protected int movementX; + protected int movementY; public Entity(int xPos, int yPos, int lvl){ this.xPos = xPos; this.yPos = yPos; this.lvl = lvl; + this.movementX = 0; + this.movementY = 0; } + public void attack(){ @@ -33,8 +36,25 @@ public abstract class Entity { yPos = yPos + movementY; } + public void rdmMove(){ + + switch((int) (Math.random() * 5)){ + case 0: //left + move(-3 , 0); + break; + case 1: //right + move(3 , 0); + break; + case 2: //up + move(0 , 3); + break; + case 3: //down + move(0 , -3); + break; + } + } - + public int getxPos() { return xPos; } diff --git a/core/src/com/dungeoncrawler/view/Map.java b/core/src/com/dungeoncrawler/view/Map.java index 7d2ad04..7da0f30 100644 --- a/core/src/com/dungeoncrawler/view/Map.java +++ b/core/src/com/dungeoncrawler/view/Map.java @@ -14,7 +14,7 @@ import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer; import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell; import com.badlogic.gdx.maps.tiled.tiles.StaticTiledMapTile; - +import com.badlogic.gdx.utils.Timer; /** * * @author jonathan diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index dcc2216..7b93095 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -140,6 +140,7 @@ public class View { player.setY(player.getY()+y); archer.setX(archerX); archer.setY(archerY); + if(x == 3f){ trechts.start(); if(player.isFlipX() == true){ From 7e2f3ff7cfccb8bfa6cbd92c0eea5bb370eda6c6 Mon Sep 17 00:00:00 2001 From: GammelJan Date: Sun, 5 Apr 2020 22:24:40 +0200 Subject: [PATCH 16/16] movementX u. Y aus Controller in Entity umgelagert --- .../dungeoncrawler/control/Controller.java | 24 ++++++--------- core/src/com/dungeoncrawler/model/Entity.java | 30 +++++++++++++++---- core/src/com/dungeoncrawler/view/View.java | 19 ++++++------ 3 files changed, 43 insertions(+), 30 deletions(-) diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 4732ca1..4cd6b54 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -22,8 +22,6 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ View v; Player p; Archer a; - float movementX = 0f; - float movementY = 0f; Timer t; @Override @@ -45,7 +43,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public void render(){ - v.render(batch, movementX ,movementY, a.getxPos(), a.getyPos()); + v.render(batch, p , a); } @Override @@ -56,23 +54,19 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean keyDown(int keycode) { if(keycode == Input.Keys.LEFT){ - movementX = -3f; - v.render(batch, movementX, movementY, a.getxPos(), a.getyPos()); + p.setMovementX(-3); } if(keycode == Input.Keys.RIGHT){ - movementX = 3f; - v.render(batch, movementX, movementY, a.getxPos(), a.getyPos()); + p.setMovementX(3); } if(keycode == Input.Keys.UP){ - movementY = 2f; - v.render(batch, movementX, movementY, a.getxPos(), a.getyPos()); + p.setMovementY(3); } if(keycode == Input.Keys.DOWN){ - movementY = -2f; - v.render(batch, movementX, movementY, a.getxPos(), a.getyPos()); + p.setMovementY(-3); } if(keycode == Input.Keys.W){ @@ -83,22 +77,22 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean keyUp(int keycode) { if(keycode == Input.Keys.LEFT){ - movementX = 0f; + p.setMovementX(0); v.tlinksstop(); } if(keycode == Input.Keys.RIGHT){ - movementX = 0f; + p.setMovementX(0); v.trechtsstop(); } if(keycode == Input.Keys.DOWN){ - movementY = 0f; + p.setMovementY(0); v.tuntenstop(); } if(keycode == Input.Keys.UP){ - movementY = 0f; + p.setMovementY(0); v.tobenstop(); } return true; diff --git a/core/src/com/dungeoncrawler/model/Entity.java b/core/src/com/dungeoncrawler/model/Entity.java index 2f9a255..07d13e1 100644 --- a/core/src/com/dungeoncrawler/model/Entity.java +++ b/core/src/com/dungeoncrawler/model/Entity.java @@ -31,7 +31,7 @@ public abstract class Entity { public void die(){ } - public void move(int movementX, int movementY){ + public void move(){ xPos = xPos + movementX; yPos = yPos + movementY; } @@ -40,16 +40,20 @@ public abstract class Entity { switch((int) (Math.random() * 5)){ case 0: //left - move(-3 , 0); + setMovementX(-3); + move(); break; case 1: //right - move(3 , 0); + setMovementX(3); + move(); break; case 2: //up - move(0 , 3); + setMovementY(3); + move(); break; case 3: //down - move(0 , -3); + setMovementY(-3); + move(); break; } } @@ -102,6 +106,20 @@ public abstract class Entity { public void setLvl(int lvl) { this.lvl = lvl; } + + public int getMovementX(){ + return movementX; + } + + public void setMovementX(int movementX){ + this.movementX = movementX; + } - + public int getMovementY(){ + return movementY; + } + + public void setMovementY(int movementY){ + this.movementY = movementY; + } } \ No newline at end of file diff --git a/core/src/com/dungeoncrawler/view/View.java b/core/src/com/dungeoncrawler/view/View.java index 7b93095..766a266 100644 --- a/core/src/com/dungeoncrawler/view/View.java +++ b/core/src/com/dungeoncrawler/view/View.java @@ -7,6 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.dungeoncrawler.model.entities.*; public class View { Texture b; @@ -133,21 +134,21 @@ public class View { } - public void render (SpriteBatch batch, float x, float y, int archerX, int archerY) { + public void render (SpriteBatch batch, Player p, Archer a) { Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); - player.setX(player.getX()+x); - player.setY(player.getY()+y); - archer.setX(archerX); - archer.setY(archerY); + player.setX(player.getX()+ (float) p.getMovementX()); + player.setY(player.getY()+ (float) p.getMovementY()); + archer.setX((float)a.getxPos()); + archer.setY((float)a.getyPos()); - if(x == 3f){ + if(p.getMovementX() == 3){ trechts.start(); if(player.isFlipX() == true){ player.flip(false, false); } } - if(x == -3f){ + if(p.getMovementX() == -3){ tlinks.start(); if(player.isFlipX() == true){ @@ -156,10 +157,10 @@ public class View { player.flip(true, false); } } - if(y == 3f){ + if(p.getMovementY() == 3){ toben.start(); } - if(y == -3f){ + if(p.getMovementY() == -3){ tunten.start(); }