made it possible to move multiple characters
This commit is contained in:
@@ -10,12 +10,8 @@ import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import netwerkprog.game.client.game.characters.Agent;
|
||||
import netwerkprog.game.client.game.characters.Hacker;
|
||||
import netwerkprog.game.client.game.characters.SelectedCharacter;
|
||||
import netwerkprog.game.client.game.characters.abilities.BodySwap;
|
||||
import netwerkprog.game.client.game.characters.abilities.Implant;
|
||||
import netwerkprog.game.client.game.map.GameTile;
|
||||
import netwerkprog.game.client.game.map.Map;
|
||||
import netwerkprog.game.client.game.map.MapRenderer;
|
||||
import netwerkprog.game.client.game.map.GameInputProcessor;
|
||||
@@ -98,11 +94,14 @@ public class MainGame extends ApplicationAdapter {
|
||||
private void initCharacters() {
|
||||
Texture texture = new Texture(Gdx.files.internal("core/assets/characters.png"));
|
||||
TextureRegion[][] characters = TextureRegion.split(texture, 32, 32);
|
||||
this.testCharacter = new Hacker(characters[1][0], new BodySwap("test"));
|
||||
this.tree.insert(testCharacter);
|
||||
this.tree.insert(new Agent(characters[2][0], new Implant("test")));
|
||||
this.testCharacter = new Hacker("harry",characters[1][0], new BodySwap("test"));
|
||||
Character character2 = new Hacker("test2",characters[2][0], new BodySwap("test"));
|
||||
// this.tree.insert(testCharacter);
|
||||
// this.tree.insert(character2);
|
||||
// this.tree.insert(new Agent(characters[2][0], new Implant("test")));
|
||||
this.setSelectedCharacter(testCharacter);
|
||||
mapRenderer.getGameTiles()[1][1].setCharacter(testCharacter);
|
||||
mapRenderer.getGameTiles()[0][1].visit(testCharacter);
|
||||
mapRenderer.getGameTiles()[0][2].visit(character2);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import netwerkprog.game.util.game.Character;
|
||||
import netwerkprog.game.util.game.Faction;
|
||||
|
||||
public class Hacker extends Character {
|
||||
public Hacker(TextureRegion textureRegion, Ability... abilities) {
|
||||
super("Hacker", Faction.HACKER, textureRegion, abilities);
|
||||
public Hacker(String name, TextureRegion textureRegion, Ability... abilities) {
|
||||
super(name, Faction.HACKER, textureRegion, abilities);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,18 +127,21 @@ public class GameInputProcessor implements InputProcessor {
|
||||
for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) {
|
||||
GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col];
|
||||
if (gameTile.contains(touchPoint.x, touchPoint.y)) {
|
||||
System.out.println(gameTile + " row: " + row + ", col: " + col);
|
||||
if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) {
|
||||
System.out.println(mainGame.getSelectedCharacter());
|
||||
removeCharacterFromTile(mainGame.getSelectedCharacter());
|
||||
gameTile.setCharacter(mainGame.getSelectedCharacter());
|
||||
if (button == Input.Buttons.LEFT) {
|
||||
// System.out.println(gameTile + " row: " + row + ", col: " + col);
|
||||
if (mainGame.hasCharacterSelected() && !gameTile.containsCharacter()) {
|
||||
// System.out.println(mainGame.getSelectedCharacter());
|
||||
removeCharacterFromTile(mainGame.getSelectedCharacter());
|
||||
gameTile.visit(mainGame.getSelectedCharacter());
|
||||
}
|
||||
if (!mainGame.hasCharacterSelected() && gameTile.containsCharacter()) {
|
||||
mainGame.setSelectedCharacter(gameTile.getCharacter());
|
||||
}
|
||||
if (gameTile.containsCharacter() && !mainGame.getSelectedCharacter().equals(gameTile.getCharacter())) {
|
||||
mainGame.setSelectedCharacter(gameTile.getCharacter());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (!mainGame.hasCharacterSelected() && gameTile.containsCharacter()) {
|
||||
mainGame.setSelectedCharacter(gameTile.getCharacter());
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -151,9 +154,7 @@ public class GameInputProcessor implements InputProcessor {
|
||||
for (int col = 0; col < mainGame.mapRenderer.getGameTiles()[0].length; col++) {
|
||||
GameTile gameTile = mainGame.mapRenderer.getGameTiles()[row][col];
|
||||
if (gameTile.containsCharacter() && gameTile.getCharacter().equals(character)) {
|
||||
gameTile.setCharacter(null);
|
||||
System.out.println("set character of gametile " + gameTile + " to null");
|
||||
System.out.println("tile " + mainGame.mapRenderer.getGameTiles()[1][1] + " now has character " + mainGame.mapRenderer.getGameTiles()[1][1].getCharacter());
|
||||
gameTile.removeCharacter();
|
||||
break rowLoop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class GameTile extends Rectangle {
|
||||
* @param character the character to visit this tile
|
||||
* @return false if this tile already had a character on it.
|
||||
*/
|
||||
public boolean setCharacter(Character character) {
|
||||
public boolean visit(Character character) {
|
||||
if (this.character != null) return false;
|
||||
this.character = character;
|
||||
return true;
|
||||
|
||||
@@ -71,4 +71,12 @@ public abstract class Character implements Comparable<Character> {
|
||||
public int compareTo(Character o) {
|
||||
return this.name.compareTo(o.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Character{" +
|
||||
"name='" + name + '\'' +
|
||||
", faction=" + faction +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user