From cc37fc28581bc54db3cd843ed3d3546473b84699 Mon Sep 17 00:00:00 2001 From: MickWerf Date: Mon, 25 May 2020 20:58:06 +0200 Subject: [PATCH] Expanded Character to include sprites and positions. Added George sprites for testing. TestCode for George --- core/assets/george.png | Bin 0 -> 2021 bytes .../game/client/game/characters/DevTest1.java | 10 +++++- .../game/client/game/characters/DevTest2.java | 8 ++++- .../game/client/game/characters/DevTest3.java | 10 ++++++ .../netwerkprog/game/util/game/Character.java | 29 ++++++++++++++++-- .../netwerkprog/game/util/game/Faction.java | 9 ++++++ core/src/test/java/CharacterLoadingTest.java | 15 +++++++++ 7 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 core/assets/george.png create mode 100644 core/src/netwerkprog/game/client/game/characters/DevTest3.java create mode 100644 core/src/test/java/CharacterLoadingTest.java diff --git a/core/assets/george.png b/core/assets/george.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb0825091795d73f5bc49b04407adc89f137fee GIT binary patch literal 2021 zcmV?uV6zY*6f*z+ ztyeZlCp{govwAw+o?NS*&CD3vg$?P>l$a)i!C){L42FLZaf&DKonTB~PIHa>H~*77 z=H0!RP|PvsbzS*|>mdjH8dw`L%*AwQ1p99zA_WlA&o6rlHnyki*LURp5O7=bn|;=# zv;G(%Wb`AzI-b#WH_!ZUzl<{5Os=!U;3IvJ0uMNx%QG6!+A>~4;;r?XuW2;%5ra!J zyff%$bU3{Z#Eiy{^(CVp*Kus!DwfCDT>Ift;dPjQ^SS;E)@5*yTl;t{^^cAa^Uu6J zoK2deY60wH*M9z80(T?gZT^E2ocZ&970<@#47qPP`cW^!+C#iAKwdvc=W=Qc{1Uw+l#)V zA9n`SlD>cvneHC2Phh*-S75&l3FO^-p-`#R0fFj$YG$#N5?gY~`_33&Dy)Bfm9L5r zzHCt-P&)+16^L8$R3^mvg?wti1T>-bYa_ES5cs0xwy)YH?d!IE|Nj2xyC5^4YT^X@ zH!^hGzAp2*EyBLr70n&|CajWL5b5{#w)IPZ8TDJ`l3 zEcju`cvVGAX00tBjx|`tw2se|_N&ylM{~hw&!46#OCQPNg~Drzjz5rPF7D3YdqbNK zBluTJ$AHnc3kKvGUn&(UXYnI0Q8-CN=~FZtQ)AR4P)U9q0JhtSI;_`3yH;slslDZ= z7}MlJ3_P#&!nF(HGZJ1VJXeJRjnj8C=rUin_kMN)1;B-Qc9Z6*3jEJ=2>3L>FN_oX zx1voL797VC{HGG;1!jqW|Cc#PHFK24vVegi{}f;uK!Jg)WeG`Sfc!BGqr?~B(_ZaIZQyiEZbQg)hQtfAf!iSh#zr??nH{n-&k|nl{}V z4!eW0vB_|zm8^aEit;X)8W)yXnbAb+cc!FN*0c*@K8dwvT8VE6>RjIaJ2mGJlpDpq zHJ<-z8e2#85BjH0U@#aA27|$1`0HVMp>Y7y3z=T%v^Kqv>4ju- z(+k~K*z`iC7n)2jWO||7giJ4FdZ8NvrWZ23&}UbhUTDC;^g;qY^g>B|M)E{2G&%PN zdLi#g38Q+dLQ0Q|UMS3|sPsZ1?2+UEbNHbbl1uhL1<-^EFTlO(Z~Qz=B`CpmUi?)r zl!QO12NFIT85`v=F4*!XJhxJZc(qSe+j7}}V8a`?tmZ>@2vSfvkTJppV zN_wZ|0fB`DUdn|=Y9tm^sR-b0lS7jxz2XM`XSIKR4}~SharDoqc`q%>l6kg&q=tcg zsagS0bN*0p;~(2Udy48V4}Fkm-d^YtsvvUPv}Kz0iGy zO)q46p~>_@rWd+R$n-*{7rG%}dLh#beRj3!g$4{vFC^eYFC;%BvGaxOe4(p4i)$bXuEU$n-+8x#@-OD{Oip z(+f?e7c#xjZ9=9OGQH3Z0n-baUg)!{O)oTHV0xi3(tlkqBpk2O4i}=cRc4i5s3g+b zoO&V6U*BUSaYATE42c2W^+KYAz|&bT?Q9j**)yfQ)I!W#L4Xc0+Vw*6Sw6_;su#jo zq2-8iSm?l=;r{l+|8c+&#>#Rh+N~)79nmAtQIo?QdLeA>MO51?bT&^=DsI?+6FgB; zVN;|;o~hfkXBeG&AtzS==1V&+NUddXb5lG~kyF(i+T?vRUz|DsNqMM=6sxAv5+L_l zy^U)}3k98j9>M1kfrC!3vY-7!nk1*%R|2ogf;IX)oC>jyj#=R6nk{F(U21VaYH|0VtdkpdQyschCG00000NkvXXu0mjf DeLKGk literal 0 HcmV?d00001 diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest1.java b/core/src/netwerkprog/game/client/game/characters/DevTest1.java index 8a6cb7c..eca2e34 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest1.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest1.java @@ -1,4 +1,12 @@ package netwerkprog.game.client.game.characters; -public class DevTest1 { +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest1 extends Character { + public DevTest1() { + super("DevTest1", Faction.HACKER, new Texture(Gdx.files.internal("core/assets/george.png"))); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest2.java b/core/src/netwerkprog/game/client/game/characters/DevTest2.java index b4d78fa..058ff40 100644 --- a/core/src/netwerkprog/game/client/game/characters/DevTest2.java +++ b/core/src/netwerkprog/game/client/game/characters/DevTest2.java @@ -1,4 +1,10 @@ package netwerkprog.game.client.game.characters; -public class DevTest2 { +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest2 extends Character { + public DevTest2() { + super("DevTest2", Faction.MEGACORPORATION, null); + } } diff --git a/core/src/netwerkprog/game/client/game/characters/DevTest3.java b/core/src/netwerkprog/game/client/game/characters/DevTest3.java new file mode 100644 index 0000000..7e28fff --- /dev/null +++ b/core/src/netwerkprog/game/client/game/characters/DevTest3.java @@ -0,0 +1,10 @@ +package netwerkprog.game.client.game.characters; + +import netwerkprog.game.util.game.Character; +import netwerkprog.game.util.game.Faction; + +public class DevTest3 extends Character { + public DevTest3() { + super("DevTest3", Faction.AI, null); + } +} diff --git a/core/src/netwerkprog/game/util/game/Character.java b/core/src/netwerkprog/game/util/game/Character.java index 21bc8bd..191fec9 100644 --- a/core/src/netwerkprog/game/util/game/Character.java +++ b/core/src/netwerkprog/game/util/game/Character.java @@ -1,19 +1,30 @@ package netwerkprog.game.util.game; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Actor; + import java.util.Arrays; import java.util.HashSet; -public abstract class Character { +public abstract class Character extends Actor { protected String name; protected Faction faction; protected HashSet abilities; + protected TextureRegion[] sprites; protected boolean override; + protected int x; + protected int y; + private final int maxSize = 1; - public Character(String name, Faction faction, Ability... abilities) { + + public Character(String name, Faction faction, Texture spriteSheet, Ability... abilities) { this.name = name; this.faction = faction; + this.sprites = new TextureRegion[this.maxSize]; this.abilities = new HashSet<>(Arrays.asList(abilities)); this.override = false; + loadSprites(spriteSheet); } public void addAbilities(Ability ability) { @@ -27,4 +38,18 @@ public abstract class Character { public void changeControl() { this.override = !this.override; } + + private void loadSprites(Texture spriteSheet) { + int counter = 0; + TextureRegion[][] temp = TextureRegion.split(spriteSheet,32,32); + for (TextureRegion[] array : temp) { + for (TextureRegion sprite : array) { + this.sprites[counter] = sprite; + counter++; + if (counter >= this.maxSize) { + break; + } + } + } + } } diff --git a/core/src/netwerkprog/game/util/game/Faction.java b/core/src/netwerkprog/game/util/game/Faction.java index dd347f5..08520a5 100644 --- a/core/src/netwerkprog/game/util/game/Faction.java +++ b/core/src/netwerkprog/game/util/game/Faction.java @@ -1,4 +1,13 @@ package netwerkprog.game.util.game; public enum Faction { + MEGACORPORATION("MegaCorp"), + HACKER("Hacker"), + AI("AI"); + + String name; + + Faction(String name) { + this.name = name; + } } diff --git a/core/src/test/java/CharacterLoadingTest.java b/core/src/test/java/CharacterLoadingTest.java new file mode 100644 index 0000000..51962f4 --- /dev/null +++ b/core/src/test/java/CharacterLoadingTest.java @@ -0,0 +1,15 @@ +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import netwerkprog.game.client.game.characters.DevTest1; +import netwerkprog.game.util.game.Character; +import org.junit.Test; + +public class CharacterLoadingTest { + + @Test + public void george() { + String path = "core/assets/george.png"; + Texture texture = new Texture(Gdx.files.internal(path)); + Character george = new DevTest1(); + } +}