Skip to content
Snippets Groups Projects
Commit 31f1473a authored by Sixten Müller's avatar Sixten Müller
Browse files

Merge branch 'main' into '5-set-up-firebase'

# Conflicts:
#   build.gradle
parents 62e9f5f3 e4360344
Branches
No related tags found
1 merge request!6Resolve "Set up Firebase"
Showing
with 422 additions and 7 deletions
......@@ -15,7 +15,9 @@ android {
}
packagingOptions {
exclude 'META-INF/robovm/ios/robovm.xml'
resources {
excludes += ['META-INF/robovm/ios/robovm.xml']
}
}
defaultConfig {
applicationId "com.wordbattle.game"
......
assets/BackToStartButton.png

17.6 KiB

assets/Guess!.png

38.8 KiB

assets/NextRoundButton.png

17 KiB

assets/Nr1Emoji.png

2.98 KiB

assets/Nr2Emoji.png

2.67 KiB

assets/Nr3Emoji.png

3.03 KiB

assets/RightArrow.png

295 B

assets/WaitingForPlayers.png

19.8 KiB

assets/back_button.png

3.65 KiB

buildscript {
repositories {
mavenLocal()
mavenCentral()
......@@ -31,7 +29,6 @@ allprojects {
aiVersion = '1.8.2'
gdxControllersVersion = '2.2.1'
libGDXVersion = '1.9.12' // Replace with the version you're using
}
repositories {
......@@ -48,7 +45,6 @@ allprojects {
project(":desktop") {
apply plugin: "java-library"
dependencies {
implementation project(":core")
api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
......@@ -101,7 +97,6 @@ project(":android") {
project(":core") {
apply plugin: "java-library"
dependencies {
api "com.badlogicgames.gdx:gdx:$gdxVersion"
api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
......
package com.wordbattle.game.controller;
import com.wordbattle.game.states.ConnectingLobbyState;
public class ConnectingLobbyController {
private ConnectingLobbyState state;
public ConnectingLobbyController(ConnectingLobbyState state) {
this.state = state;
}
public void update(float dt) {
// Logic for updating the connecting lobby state
// For example, checking if all players have joined or handling any networking tasks
}
public void dispose() {
// Clean up any resources when exiting the state
}
}
......@@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector3;
import com.wordbattle.game.states.BaseState;
import com.wordbattle.game.states.ConnectingLobbyState;
import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.view.CreateGameView;
import com.wordbattle.game.view.MainMenuView;
......@@ -35,6 +36,11 @@ public class CreateGameController {
selectedLevel = "hard";
createGameView.setSelectedLevel(selectedLevel);
}
if (createGameView.getCreateGameBounds().contains(touchPos.x, touchPos.y)) {
state.getStateManager().setState(new ConnectingLobbyState(state.getStateManager(), createGameView.getPin()));
}
}
}
......
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector3;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.states.FinalLeaderboardState;
import com.wordbattle.game.view.FinalLeaderBoardView;
public class FinalLeaderBoardController {
private FinalLeaderboardState state;
private FinalLeaderBoardView finalLeaderBoardView;
private int lenLeaderBordPage;
public FinalLeaderBoardController(FinalLeaderboardState state) {
this.state=state;
finalLeaderBoardView = new FinalLeaderBoardView(state.getCam());
lenLeaderBordPage=2400; //testing variable until firebase is implemented
finalLeaderBoardView.setNumBackgroundRenders(calculateBackgroundRenders()); //Tells view how many backgroundTextures to load
}
int mouseYCoordinate;
public void handleInput(){
if (Gdx.input.justTouched()){
mouseYCoordinate =Gdx.input.getY();
Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
state.getCam().unproject(touchPos); // convert from screen coordinates to world coordinates
if (finalLeaderBoardView.getBackToStartBounds().contains(touchPos.x, touchPos.y)){
state.getStateManager().setState(new CreateGameState(state.getStateManager())); //midlertidlig
}
}
if (Gdx.input.isTouched()){
int scrollDistance=mouseYCoordinate-Gdx.input.getY();
mouseYCoordinate=Gdx.input.getY();
if( (finalLeaderBoardView.getCam().viewportHeight/2 + finalLeaderBoardView.getCam().position.y) -scrollDistance < WordBattle.HEIGHT && ( (-finalLeaderBoardView.getCam().viewportHeight/2) + finalLeaderBoardView.getCam().position.y) -scrollDistance > WordBattle.HEIGHT-lenLeaderBordPage ){
finalLeaderBoardView.getCam().translate(0,-scrollDistance);
}
}
}
public void render(SpriteBatch sb){
finalLeaderBoardView.render(sb);
}
public void update(float dt){
handleInput();
}
public int calculateBackgroundRenders(){
return 1 +lenLeaderBordPage / WordBattle.HEIGHT;
}
public void dispose(){
}
}
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3;
import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.states.JoinGameState;
import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.StartingGameState;
import com.wordbattle.game.states.WaitingLobbyState;
import com.wordbattle.game.view.JoinGameView;
import com.wordbattle.game.view.MainMenuView;
public class JoinGameController {
private JoinGameState state;
private JoinGameView joinGameView;
private String pin; //just for testing since we dont have database yet
public JoinGameController(JoinGameState state) {
this.state = state;
this.joinGameView = new JoinGameView(state.getCam());
pin="1234";//testing
}
public void handleInput() {
if (Gdx.input.justTouched()) {
Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
state.getCam().unproject(touchPos);
Rectangle joinGameButtonBounds = joinGameView.getJoinGameButtonBounds();
if (joinGameButtonBounds.contains(touchPos.x, touchPos.y)) {
System.out.println("Join Game Button Pressed");
if (confirmNickname() && confirmPin()){
state.getStateManager().setState(new StartingGameState(state.getStateManager()));//needs to be changed to lobbyState when it is ready
}
}
}
}
public void update(float dt) {
handleInput();
}
public void render(SpriteBatch sb){
joinGameView.render(sb);
}
public boolean confirmPin(){
if (joinGameView.getPin().equals(pin)){
return true;
}
else{
joinGameView.setPinMessage("Wrong PIN");
return false;
}
}
public boolean confirmNickname(){
String Nickname = joinGameView.getNickname();
if (Nickname.trim().isEmpty()) { //does not allow empty string or only whitespace
joinGameView.setNicknameMessage("Nickname must be filled out");
return false;
}
else{
return true;
}
}
public void dispose() {
joinGameView.dispose();
}
}
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector3;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.states.LeaderBoardState;
import com.wordbattle.game.view.LeaderBoardView;
public class LeaderBoardController {
private LeaderBoardState state;
private LeaderBoardView leaderBoardView;
private int lenLeaderBordPage;
public LeaderBoardController(LeaderBoardState state) {
this.state=state;
leaderBoardView = new LeaderBoardView(state.getCam());
lenLeaderBordPage=2400; //testing variable until firebase is implemented
leaderBoardView.setNumBackgroundRenders(calculateBackgroundRenders()); //Tells view how many backgroundTextures to load
}
int mouseYCoordinate;
public void handleInput(){
if (Gdx.input.justTouched()){
mouseYCoordinate =Gdx.input.getY();
Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
state.getCam().unproject(touchPos); // convert from screen coordinates to world coordinates
if (leaderBoardView.getNextRoundBounds().contains(touchPos.x, touchPos.y)){
state.getStateManager().setState(new CreateGameState(state.getStateManager())); //midlertidlig
}
}
if (Gdx.input.isTouched()){
int scrollDistance=mouseYCoordinate-Gdx.input.getY();
mouseYCoordinate=Gdx.input.getY();
if( (leaderBoardView.getCam().viewportHeight/2 + leaderBoardView.getCam().position.y) -scrollDistance < WordBattle.HEIGHT && ( (-leaderBoardView.getCam().viewportHeight/2) + leaderBoardView.getCam().position.y) -scrollDistance > WordBattle.HEIGHT-lenLeaderBordPage ){
leaderBoardView.getCam().translate(0,-scrollDistance);
}
}
}
public void render(SpriteBatch sb){
leaderBoardView.render(sb);
}
public void update(float dt){
handleInput();
}
public int calculateBackgroundRenders(){
return 1+ lenLeaderBordPage / WordBattle.HEIGHT;
}
public void dispose(){
}
}
......@@ -7,7 +7,10 @@ import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.Null;
import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.states.JoinGameState;
import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.StartState;
import com.wordbattle.game.states.StartingGameState;
import com.wordbattle.game.states.StateManager;
import com.wordbattle.game.view.MainMenuView;
......@@ -43,7 +46,7 @@ public class MainMenuController {
// Button checks
if (joinGameButtonBounds.contains(touchPos.x, touchPos.y)) {
System.out.println("Join Game Button Pressed");
state.getStateManager().setState(new CreateGameState(state.getStateManager()));
state.getStateManager().setState(new JoinGameState(state.getStateManager()));
}
if (newGameButtonBounds.contains(touchPos.x, touchPos.y)) {
......
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.states.JoinGameState;
import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.StartState;
import com.wordbattle.game.view.StartView;
public class StartController {
StartState state;
StartView startView;
public StartController(StartState state) {
this.state = state;
startView= new StartView(state.getCam());
}
public void handleInput(){
//click anywhere to go to next state, temporary solution until firebase is set up
if (Gdx.input.justTouched()) {
state.getStateManager().setState(new MainMenuState(state.getStateManager()));
System.out.println("clicked on screen");
}
}
public void update(float dt){
handleInput();
}
public void render(SpriteBatch spriteBatch){
startView.render(spriteBatch);
}
public void dispose(){
startView.dispose();
}
}
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector3;
import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.StartingGameState;
import com.wordbattle.game.view.MainMenuView;
import com.wordbattle.game.view.StartingGameView;
public class StartingGameController {
private StartingGameState state;
private StartingGameView startingGameViewView;
public StartingGameController(StartingGameState state) {
this.state = state;
startingGameViewView= new StartingGameView(state.getCam());
}
public void handleInput(){
if (Gdx.input.justTouched()) {
Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
System.out.println("Screen touch: " + touchPos.x + ", " + touchPos.y);
state.getCam().unproject(touchPos); // convert from screen coordinates to world coordinates
if(startingGameViewView.getBackArrosBounds().contains(touchPos.x,touchPos.y)){
System.out.println("back button pressed");
}
}
}
public void update(float dt){
handleInput();
}
public void render(SpriteBatch sb){
startingGameViewView.render(sb);
}
public void dispose(){
startingGameViewView.dispose();
}
}
package com.wordbattle.game.controller;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.states.JoinGameState;
import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.WaitingLobbyState;
import com.wordbattle.game.view.WaitingLobbyView;
public class WaitingLobbyController {
WaitingLobbyState state;
WaitingLobbyView waitingLobbyView;
public WaitingLobbyController(WaitingLobbyState state) {
this.state = state;
waitingLobbyView= new WaitingLobbyView(state.getCam());
}
public void handleInput(){
if (Gdx.input.justTouched()) {
state.getStateManager().setState(new MainMenuState(state.getStateManager()));
}
}
public void update(float dt){
handleInput();
}
public void render(SpriteBatch spriteBatch){
waitingLobbyView.render(spriteBatch);
}
public void dispose(){
waitingLobbyView.dispose();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment