diff --git a/CheckersClient/.idea/caches/build_file_checksums.ser b/CheckersClient/.idea/caches/build_file_checksums.ser index 1a0a8571df95f63e454996879b32ed2351292e26..13675fdaaed4926c89b045bb8c396fb86f523650 100644 Binary files a/CheckersClient/.idea/caches/build_file_checksums.ser and b/CheckersClient/.idea/caches/build_file_checksums.ser differ diff --git a/CheckersClient/.idea/libraries/Gradle__CheckersClient_core_core_1_0.xml b/CheckersClient/.idea/libraries/Gradle__CheckersClient_core_core_1_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..2e993c7a07f916f7bff9867af2e7095dd6734a22 --- /dev/null +++ b/CheckersClient/.idea/libraries/Gradle__CheckersClient_core_core_1_0.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="Gradle: CheckersClient.core.core-1.0"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/core/build/libs/core-1.0.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/CheckersClient/android/assets/Menu/Click11.wav.asd b/CheckersClient/android/assets/Menu/Click11.wav.asd new file mode 100644 index 0000000000000000000000000000000000000000..bf1f98b27e67a96ebba6a054e49ec6db5ba82a58 Binary files /dev/null and b/CheckersClient/android/assets/Menu/Click11.wav.asd differ diff --git a/CheckersClient/android/assets/Menu/MenuLoop.mp3.asd b/CheckersClient/android/assets/Menu/MenuLoop.mp3.asd new file mode 100644 index 0000000000000000000000000000000000000000..affd8edeb9392f173dcaa97bb57f733610c90e8f Binary files /dev/null and b/CheckersClient/android/assets/Menu/MenuLoop.mp3.asd differ diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java b/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java index 12399ba956601fbb88adde78486a589b93fca353..3dcf8cb78b1be16c79349d39b56b0936f2615f66 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java @@ -59,5 +59,7 @@ public class PlayerController { public PlayerController getPlayerController(){ return this; } + public void leaveLobby(int id) { net.sendToServer(new cLobbyLeave(id)); } + public NetworkController getNetWorkController() { return net; } } diff --git a/CheckersClient/core/src/com/mygdx/game/model/Lobby.java b/CheckersClient/core/src/com/mygdx/game/model/Lobby.java index 15b522f8acd607e45d4c229b35ef205853d7674f..566dafa502ca56a463080682dbb7f9cbdad1e226 100644 --- a/CheckersClient/core/src/com/mygdx/game/model/Lobby.java +++ b/CheckersClient/core/src/com/mygdx/game/model/Lobby.java @@ -33,6 +33,14 @@ public class Lobby { return name; } + public int getMaxPlayers(){ + return MAX_PLAYERS; + } + + public ArrayList<Player> getPlayers(){ + return players; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/CheckersClient/core/src/com/mygdx/game/model/Player.java b/CheckersClient/core/src/com/mygdx/game/model/Player.java index 2797bc0136acc153b84b08f80ef547ddf9e8b8fe..e8200a4ff01d3bb3bbc6a2d8f71d9417ff93fdc4 100644 --- a/CheckersClient/core/src/com/mygdx/game/model/Player.java +++ b/CheckersClient/core/src/com/mygdx/game/model/Player.java @@ -36,7 +36,7 @@ public class Player { this.indexAvatar = indexAvatar; } - public int getPlayerAvatar(int indexAvatar){ + public int getIndexAvatar(){ return this.indexAvatar; } diff --git a/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java b/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java index d8a9299bfed09b47e6a87f68ec6a75a798fd604f..1d0ec33c9df0930b1f0e29b9a554ef3ac84e1965 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java @@ -5,7 +5,6 @@ import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -24,14 +23,16 @@ import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.utils.Align; import com.mygdx.game.controllers.PlayerController; import com.mygdx.game.model.Lobby; +import com.mygdx.game.model.Player; import com.mygdx.game.views.enums.LobbyAssets; import com.mygdx.game.views.enums.MenuAssets; +import com.mygdx.game.views.tokens.PlayerAvatar; import java.util.ArrayList; +import java.util.Arrays; public class LobbyView extends View{ - private final ArrayList<Lobby> lobbyList; private final ArrayList<Actor> mainUIActors = new ArrayList<>(); private ScrollPane scroller; private Table lobbyTable; @@ -42,9 +43,12 @@ public class LobbyView extends View{ private boolean startRocketTransition; private Button createLobbyButton; + private Button lobbyListBackButton; + private Button joinLobbyButton; private Button lobbyBackButton; + private Button lobbyListRefreshButton; private Button lobbyRefreshButton; - private Button joinLobbyButton; + private Button lobbyListButton; private Button setUserNameButton; private Button startLobbyButton; @@ -60,8 +64,6 @@ public class LobbyView extends View{ private Label mrServerBubbleLabel; private Label outputLabel; - private final Lobby lobby; - private Sound buttonClickAudio; private Texture background; @@ -75,9 +77,11 @@ public class LobbyView extends View{ private ShapeRenderer shapeRenderer; - public LobbyView(GameViewManager gvm, final PlayerController playerController, AssetManager assetManager, final Stage stage, Skin skin) { + public LobbyView(GameViewManager gvm, final PlayerController playerController, AssetManager assetManager, final Stage stage, Skin skin, ArrayList<PlayerAvatar> availableAvatars) { super(gvm, playerController, assetManager, stage, skin); + this.availableAvatars = availableAvatars; + Pixmap tablePixmap = new Pixmap(1,1, Pixmap.Format.RGB565); tablePixmap.setColor(1, 1, 1, 1); tablePixmap.fill(); @@ -102,11 +106,6 @@ public class LobbyView extends View{ lobbyListBubbleImage.setPosition(col_width*0.25f, row_height*5.5f); backgroundImage = new Image(background); - lobby = playerController.getLobby(); - lobbyList = playerController.getLobbyList(); - - //lobbyTable.setBackground(textureRegionDrawableBg); - outputLabel = new Label("Press a Button",skin,"black"); outputLabel.setSize(Gdx.graphics.getWidth(),row_height); outputLabel.setPosition(col_width*0.25f,row_height*11); @@ -123,9 +122,13 @@ public class LobbyView extends View{ createLobbyButton.setSize(col_width*1f,(float)(row_height*0.65)); createLobbyButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.1f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); - joinLobbyButton = new TextButton("Join Lobby",skin,"small"); - joinLobbyButton.setSize(col_width*1f,(float)(row_height*0.65)); - joinLobbyButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.6f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); + lobbyListButton = new TextButton("Join Lobby",skin,"small"); + lobbyListButton.setSize(col_width*1f,(float)(row_height*0.65)); + lobbyListButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.6f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); + + lobbyListRefreshButton = new TextButton("Refresh",skin,"small"); + lobbyListRefreshButton.setSize(col_width*1f,(float)(row_height*0.65)); + lobbyListRefreshButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.1f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); lobbyRefreshButton = new TextButton("Refresh",skin,"small"); lobbyRefreshButton.setSize(col_width*1f,(float)(row_height*0.65)); @@ -135,6 +138,14 @@ public class LobbyView extends View{ lobbyBackButton.setSize(col_width*1f,(float)(row_height*0.65)); lobbyBackButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.6f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); + lobbyListBackButton = new TextButton("Back",skin,"small"); + lobbyListBackButton.setSize(col_width*1f,(float)(row_height*0.65)); + lobbyListBackButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.6f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); + + joinLobbyButton = new TextButton("Back",skin,"small"); + joinLobbyButton.setSize(col_width*1f,(float)(row_height*0.65)); + joinLobbyButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.6f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*2); + startLobbyButton = new TextButton("Start",skin,"small"); startLobbyButton.setSize(col_width*1f,(float)(row_height*0.65)); startLobbyButton.setPosition(lobbyListBubbleImage.getX()+lobbyListBubbleImage.getWidth()*0.1f,lobbyListBubbleImage.getY()+lobbyListBubbleImage.getHeight()*0.125f+row_height*1); @@ -146,12 +157,12 @@ public class LobbyView extends View{ lobbyCreateTextField = new TextField("", skin); lobbyCreateTextField.setMessageText("Enter lobby name."); lobbyCreateTextField.setSize(col_width*1f,row_height*1f); - lobbyCreateTextField.setPosition(lobbyRefreshButton.getX(), lobbyRefreshButton.getY()+row_height*1.25f); + lobbyCreateTextField.setPosition(lobbyListRefreshButton.getX(), lobbyListRefreshButton.getY()+row_height*1.25f); lobbyCreateSizeSelectBox =new SelectBox<>(skin); lobbyCreateSizeSelectBox.setItems(2, 4, 6, 8); - lobbyCreateSizeSelectBox.setPosition(lobbyBackButton.getX(), lobbyCreateTextField.getY()); - lobbyCreateSizeSelectBox.setSize(lobbyBackButton.getWidth(), lobbyBackButton.getHeight()); + lobbyCreateSizeSelectBox.setPosition(lobbyListBackButton.getX(), lobbyCreateTextField.getY()); + lobbyCreateSizeSelectBox.setSize(lobbyListBackButton.getWidth(), lobbyListBackButton.getHeight()); backgroundImage.setZIndex(1); lobbyListBubbleImage.setZIndex(2); @@ -165,7 +176,7 @@ public class LobbyView extends View{ stage.addActor(exhaustImage); stage.addActor(lobbyListBubbleImage); mainUIActors.add(createLobbyButton); - mainUIActors.add(joinLobbyButton); + mainUIActors.add(lobbyListButton); mainUIActors.add(mrServerBubbleLabel); for (Actor actor: mainUIActors){ stage.addActor(actor); @@ -185,10 +196,57 @@ public class LobbyView extends View{ buttonClickAudio.play(0.8f); outputLabel.setText("Create Lobby"); showCreateLobbyWindow(); + } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("createLobbyButton"); + } + }); + lobbyListButton.addListener(new InputListener(){ + @Override + public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + return true; + } + @Override + public void touchUp (InputEvent event, float x, float y, int pointer, int button) { + buttonClickAudio.play(0.8f); + showLobbyListWindow(); + } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyListButton"); + } + }); + lobbyListBackButton.addListener(new InputListener(){ + @Override + public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + return true; + } + @Override + public void touchUp (InputEvent event, float x, float y, int pointer, int button) { + buttonClickAudio.play(0.8f); + Gdx.input.setOnscreenKeyboardVisible(false); + stage.unfocusAll(); + try{ + if(lobby.getPlayers().size() == 1){ + playerController.deleteLobby(lobby.getID()); + } + else{ + playerController.leaveLobby(lobby.getID()); + } + + }catch(NullPointerException e){ + } + + showMainLobbyWindow(); + } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyListBackButton"); } }); - joinLobbyButton.addListener(new InputListener(){ + lobbyListRefreshButton.addListener(new InputListener(){ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { return true; @@ -196,10 +254,15 @@ public class LobbyView extends View{ @Override public void touchUp (InputEvent event, float x, float y, int pointer, int button) { buttonClickAudio.play(0.8f); - outputLabel.setText("Touch up a Button"); - showJoinLobbyWindow(); + outputLabel.setText("Lobby refreshed!"); + lobbyListRefresh(); + } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyListRefreshButton"); } }); + lobbyBackButton.addListener(new InputListener(){ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -208,12 +271,70 @@ public class LobbyView extends View{ @Override public void touchUp (InputEvent event, float x, float y, int pointer, int button) { buttonClickAudio.play(0.8f); - outputLabel.setText("Back button"); Gdx.input.setOnscreenKeyboardVisible(false); stage.unfocusAll(); + try{ + if(lobby.getPlayers().size() == 1){ + playerController.deleteLobby(lobby.getID()); + } + else{ + playerController.leaveLobby(lobby.getID()); + } + + }catch(NullPointerException e){ + + } + mainUIActors.clear(); + showMainLobbyWindow(); } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyListBackButton"); + } + }); + + joinLobbyButton.addListener(new InputListener(){ + @Override + public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + return true; + } + @Override + public void touchUp (InputEvent event, float x, float y, int pointer, int button) { + if(lobby != null) playerController.leaveLobby(lobby.getID()); + + if(lobbyListStrings.getSelectedIndex()>=0){ + Thread thread2 = new Thread(){ + public void run(){ + playerController.joinLobby(lobbyListStrings.getSelectedIndex()); + System.out.println("joining lobby"); + while (playerController.getLobby() == null) { + System.out.println("Waiting for lobby"); + } + Lobby lobby = playerController.getLobby(); + System.out.println("Lobby loaded " + lobby); + } + }; + thread2.start(); + try { + thread2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + Gdx.input.setOnscreenKeyboardVisible(false); + showLobbyWindow(); + lobbyRefresh(); + } + else{ + outputLabel.setText("Lobby has no name, hehe"); + } + } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyListBackButton"); + } }); + lobbyRefreshButton.addListener(new InputListener(){ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -225,7 +346,12 @@ public class LobbyView extends View{ outputLabel.setText("Lobby refreshed!"); lobbyRefresh(); } + @Override + public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) { + outputLabel.setText("lobbyRefreshButton"); + } }); + lobbyCreateTextField.addListener(new InputListener(){ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { @@ -249,8 +375,26 @@ public class LobbyView extends View{ public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { buttonClickAudio.play(0.80f); if(!lobbyCreateTextField.getText().isEmpty()){ - + Thread thread2 = new Thread(){ + public void run(){ + playerController.createLobby(lobbyCreateTextField.getText(), lobbyCreateSizeSelectBox.getSelected()); + System.out.println("Creating lobby"); + while (playerController.getLobby() == null) { + System.out.println("Waiting for lobby"); + } + Lobby lobby = playerController.getLobby(); + System.out.println("Lobby loaded " + lobby); + } + }; + thread2.start(); + try { + thread2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + Gdx.input.setOnscreenKeyboardVisible(false); showLobbyWindow(); + lobbyRefresh(); } else{ outputLabel.setText("Lobby has no name, hehe"); @@ -281,49 +425,129 @@ public class LobbyView extends View{ } private ScrollPane scrollPane; - public void lobbyRefresh(){ - List<String> myList = new List(skin, "plain"); - myList.setColor(1f, 1f, 1f, 1); + private volatile ArrayList<Lobby> lobbyList; + private List<String> lobbyListStrings; + + public void lobbyListRefresh(){ + + Thread thread2 = new Thread(){ + public void run(){ + playerController.lobbyGetList(); + while (playerController.getLobbyList() == null) { + System.out.println("Waiting for lobby" + lobbyList); + } + lobbyList = playerController.getLobbyList(); + System.out.println("Lobby loaded " + lobbyList); + } + }; + thread2.start(); + try { + thread2.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + - String[] strings = new String[50]; - for (int i = 0, k = 0; i < 50; i++) { - strings[k++] = "String: " + i; + lobbyListStrings = new List(skin, "plain"); + lobbyListStrings.setColor(1f, 1f, 1f, 1); + ArrayList<String> listText = new ArrayList<>(); + if(lobbyList.size() > 0){ + for (Lobby lobby: lobbyList) { + listText.add(lobby.getName() + "\t" + lobby.getPlayers().size()+ "/" + lobby.getMaxPlayers()); + } + } + else{ + listText.add("No lobbies currently available"); } - myList.setItems(strings); - scrollPane = new ScrollPane(myList); + + String[] strings = new String[listText.size()]; + strings = listText.toArray(strings); + + lobbyListStrings.setItems(strings); + scrollPane = new ScrollPane(lobbyListStrings); scrollPane.setBounds(0, 0, col_width*4f, row_height*4); scrollPane.setPosition(col_width*0.25f, row_height*6); scrollPane.setSmoothScrolling(false); scrollPane.setTransform(true); - stage.addActor(scrollPane); + + mainUIActors.add(scrollPane); + for (Actor actor: mainUIActors){ + stage.addActor(actor); + } } private void showCreateLobbyWindow(){ clearActors(); - mainUIActors.add(lobbyBackButton); + mainUIActors.add(lobbyListBackButton); mainUIActors.add(lobbyCreateTextField); mainUIActors.add(lobbyCreateSizeSelectBox); mainUIActors.add(startLobbyButton); + lobbyListBackButton.setY(startLobbyButton.getY()); + for (Actor actor: mainUIActors){ stage.addActor(actor); } } - private void showJoinLobbyWindow(){ + private void showLobbyListWindow(){ clearActors(); - /* - mainUIActors.add(lobbyScrollTable); - mainUIActors.add(lobbyBackButton); - mainUIActors.add(lobbyRefreshButton); - */ + mainUIActors.add(lobbyListBackButton); + mainUIActors.add(lobbyListRefreshButton); + mainUIActors.add(joinLobbyButton); + joinLobbyButton.setPosition(col_width*4, row_height*3); + lobbyListRefreshButton.setY(row_height*3); + lobbyListBackButton.setY(row_height*3); + for (Actor actor: mainUIActors){ stage.addActor(actor); } - lobbyRefresh(); + lobbyListRefresh(); + } + + Lobby lobby; + ArrayList<Player> playersInLobby; + float[] player1Pos = {col_width*3.75f, row_height*2}; + float[] player2Pos = {col_width*3.5f, row_height*1.5f}; + + float[] player3Pos = {col_width*4.3f, row_height*2}; + float[] player4Pos = {col_width*4.1f, row_height*1.5f}; + + float[] player5Pos = {col_width*5, row_height*2}; + float[] player6Pos = {col_width*4.8f, row_height*1.5f}; + ArrayList<float[]> playerPositions= new ArrayList<>(Arrays.asList(player1Pos, player2Pos, player3Pos, player4Pos, player5Pos, player6Pos));; + + private final ArrayList<PlayerAvatar> availableAvatars; + private ArrayList<PlayerAvatar> lobbyAvatars = new ArrayList<>(); + + private void lobbyRefresh(){ + try{ + lobbyAvatars.clear(); + lobby = playerController.getLobby(); + playersInLobby = lobby.getPlayers(); + System.out.println("My avatar Index: "+ playerController.getPlayer().getIndexAvatar()); + System.out.println("Number of players in lobby: "+ lobby.getPlayers().size()); + + + for(int i = 0; i<playersInLobby.size(); i++){ + System.out.println("This players ID: "+ playersInLobby.get(i).getID() + " avatarIndex: "+ playersInLobby.get(i).getIndexAvatar()); + PlayerAvatar pa = availableAvatars.get(playersInLobby.get(i).getIndexAvatar()); + pa.setScale(0.3f, 0.3f); + pa.setOrigin(0, 0); + pa.setPosition(playerPositions.get(i)[0], playerPositions.get(i)[1]); + lobbyAvatars.add(pa); + } + }catch (Exception e){ + System.out.println("Cannot refresh lobby at this time."); + } } + private void showLobbyWindow(){ clearActors(); - mainUIActors.add(lobbyBackButton); + lobby = playerController.getLobby(); + playerController.joinLobby(lobby.getID()); + mainUIActors.add(lobbyListBackButton); + mainUIActors.add(lobbyRefreshButton); + for (Actor actor: mainUIActors){ stage.addActor(actor); } @@ -332,11 +556,9 @@ public class LobbyView extends View{ clearActors(); mainUIActors.add(createLobbyButton); mainUIActors.add(createLobbyButton); - mainUIActors.add(joinLobbyButton); + mainUIActors.add(lobbyListButton); mainUIActors.add(mrServerBubbleLabel); - Button tempButton = new TextButton("some text", skin); - tempButton.setPosition(col_width*5, row_height*5); - mainUIActors.add(tempButton); + for (Actor actor: mainUIActors){ stage.addActor(actor); } @@ -355,14 +577,12 @@ public class LobbyView extends View{ if(Gdx.input.isTouched()) { int x = Gdx.input.getX(); int y = Gdx.input.getY(); - }/* - if(Gdx.input.isButtonJustPressed(1)){ - sound.stop(); - gvm.set(new PlayView(gvm, playerController, assetManager)); - dispose(); } - */ } + + float updateAvatarTimer = 0; + float updateAvatarFrequency = 0.110f; //update every 250ms + @Override public void render(float dt) { Gdx.gl.glClearColor(1, 1, 1, 1); @@ -378,16 +598,32 @@ public class LobbyView extends View{ else if(startRocketTransition){ } - stage.draw(); + updateAvatarTimer += dt; + + stage.getBatch().begin(); + for(PlayerAvatar playerAvatar : lobbyAvatars){ + + if(updateAvatarTimer>= updateAvatarFrequency){ + + //System.out.println("Updating avatars. Number of avatars: "+ lobbyAvatars.size()); + playerAvatar.updateTexture(); + updateAvatarTimer=0; + System.out.println("AvPos"+ playerAvatar.getX()+ ", " +playerAvatar.getY()); + + } + + + playerAvatar.draw(stage.getBatch()); + } + stage.getBatch().end(); drawGrid(); } + @Override public void update(float dt) { stage.act(dt); handleInput(); - } - } diff --git a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java index 25b378399c7523549bee37fce8d4b9dda071b297..ad888dd4475fa15c2291c451b613b53434bf422b 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java @@ -308,10 +308,12 @@ public class MenuView extends View{ outputLabel.setText("alphaFadeValue: " +alphaFadeValue); if(alphaFadeValue >= 1){ startFadeFromBlankToWhite = false; - gvm.push(new LobbyView(gvm, playerController, assetManager, stage, skin)); + gvm.push(new LobbyView(gvm, playerController, assetManager, stage, skin, availableAvatars)); } } + + if(playerController.getPlayer() != null){ stage.addActor(connectionBarGreenCircle); connectionBarRedCircle.remove(); diff --git a/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java b/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java index 734783144b1389d3619b9c3738f4593bc9c4ff96..9d3a3777e46d3bae5cf50bf061fec5fd610a789a 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java +++ b/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java @@ -17,9 +17,11 @@ public class PlayerAvatar extends Sprite { private boolean reversed = false; public PlayerAvatar(ArrayList<Texture> textureArray, Texture portrait, String name) { + super(textureArray.get(0)); this.textureArray = textureArray; this.portrait = portrait; this.name = name; + setTexture(textureArray.get(currentTexture)); } public void updateTexture() { @@ -34,7 +36,8 @@ public class PlayerAvatar extends Sprite { this.reversed = true; } } - + //System.out.println("Updating texture. Current texture Int: " + currentTexture + " numOfTextures: " + textureArray.size()); + setTexture(textureArray.get(currentTexture)); } public ArrayList<Texture> getTextures() { diff --git a/CheckersServer/.idea/caches/build_file_checksums.ser b/CheckersServer/.idea/caches/build_file_checksums.ser index 21fb499a8226c93d00ce84e50814bc30d0a87bd9..306c41ebd02f90133c9b46f655a16932aa659bf9 100644 Binary files a/CheckersServer/.idea/caches/build_file_checksums.ser and b/CheckersServer/.idea/caches/build_file_checksums.ser differ diff --git a/CheckersServer/.idea/libraries/Gradle__CheckersServer_core_core_1_0.xml b/CheckersServer/.idea/libraries/Gradle__CheckersServer_core_core_1_0.xml new file mode 100644 index 0000000000000000000000000000000000000000..50fec341c8000eb96f59c19192ccb94fd1f8912d --- /dev/null +++ b/CheckersServer/.idea/libraries/Gradle__CheckersServer_core_core_1_0.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="Gradle: CheckersServer.core.core-1.0"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/core/build/libs/core-1.0.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java b/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java index 67c82138b38dfcb71dc591ce3412e74402d64a53..4b4d469923db9d04fb2b08f037191c95d40cda64 100644 --- a/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java +++ b/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java @@ -14,7 +14,7 @@ import java.util.ArrayList; public class NetworkController { private final int MAX_PLAYERS = 2; - private final int MAX_LOBBIES = 2; + private final int MAX_LOBBIES = 40; private ArrayList<Player> players; private ArrayList<Lobby> lobbies;