Skip to content
Snippets Groups Projects
Commit b711f374 authored by Thea Slemdal Bergersen's avatar Thea Slemdal Bergersen
Browse files

Merge branch 'main' into '8-create-lobby-page'

# Conflicts:
#   build.gradle
parents 31b9bc56 31254571
No related branches found
No related tags found
1 merge request!9creates LobbyView from CreateGameView
Showing
with 577 additions and 2 deletions
{
"project_info": {
"project_number": "188857427405",
"project_id": "wordbattle-96156",
"storage_bucket": "wordbattle-96156.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:188857427405:android:c7aa07f251b566d5069084",
"android_client_info": {
"package_name": "com.wordbattle.game"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyBS7VXFKq28L3XjgWtu6C0fTExZuv80c68"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}
\ No newline at end of file
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

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; 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.view.JoinGameView;
import com.wordbattle.game.view.MainMenuView;
public class JoinGameController { 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 CreateGameState(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,9 @@ import com.badlogic.gdx.math.Rectangle; ...@@ -7,7 +7,9 @@ import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.Null; import com.badlogic.gdx.utils.Null;
import com.wordbattle.game.states.CreateGameState; import com.wordbattle.game.states.CreateGameState;
import com.wordbattle.game.states.JoinGameState;
import com.wordbattle.game.states.MainMenuState; import com.wordbattle.game.states.MainMenuState;
import com.wordbattle.game.states.StartState;
import com.wordbattle.game.states.StateManager; import com.wordbattle.game.states.StateManager;
import com.wordbattle.game.view.MainMenuView; import com.wordbattle.game.view.MainMenuView;
...@@ -43,7 +45,7 @@ public class MainMenuController { ...@@ -43,7 +45,7 @@ public class MainMenuController {
// Button checks // Button checks
if (joinGameButtonBounds.contains(touchPos.x, touchPos.y)) { if (joinGameButtonBounds.contains(touchPos.x, touchPos.y)) {
System.out.println("Join Game Button Pressed"); 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)) { 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();
}
}
package com.wordbattle.game.states;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.controller.FinalLeaderBoardController;
public class FinalLeaderboardState extends BaseState {
FinalLeaderBoardController controller;
public FinalLeaderboardState(StateManager gsm) {
super(gsm);
this.controller = new FinalLeaderBoardController(this); // 'this' provides context
cam.setToOrtho(false, WordBattle.WIDTH, WordBattle.HEIGHT);
}
@Override
public void handleInput() {
}
@Override
public void update(float dt) {
controller.update(dt);
cam.update();
}
@Override
public void render(SpriteBatch sb) {
controller.render(sb);
}
@Override
public void enter() {
}
@Override
public void exit() {
}
public StateManager getStateManager() {
return gsm;
}
@Override
public void dispose() {
controller.dispose();
}
}
package com.wordbattle.game.states; package com.wordbattle.game.states;
public class JoinGameState { import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.controller.JoinGameController;
import com.wordbattle.game.controller.MainMenuController;
public class JoinGameState extends BaseState {
private JoinGameController controller;
public JoinGameState(StateManager gsm) {
super(gsm);
this.controller = new JoinGameController(this); // 'this' provides context
cam.setToOrtho(false, WordBattle.WIDTH, WordBattle.HEIGHT);
}
@Override
public void handleInput() {
}
@Override
public void update(float dt) {
controller.update(dt);
cam.update();
}
@Override
public void render(SpriteBatch sb) {
controller.render(sb);
}
@Override
public void enter() {
}
public StateManager getStateManager() {
return gsm;
}
@Override
public void exit() {
}
@Override
public void dispose() {
}
} }
package com.wordbattle.game.states;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.controller.LeaderBoardController;
import com.wordbattle.game.controller.MainMenuController;
public class LeaderBoardState extends BaseState {
LeaderBoardController controller;
public LeaderBoardState(StateManager gsm) {
super(gsm);
this.controller = new LeaderBoardController(this); // 'this' provides context
cam.setToOrtho(false, WordBattle.WIDTH, WordBattle.HEIGHT);
}
public StateManager getStateManager() {
return gsm;
}
@Override
public void handleInput() {
}
@Override
public void update(float dt) {
controller.update(dt);
cam.update();
}
@Override
public void render(SpriteBatch sb) {
controller.render(sb);
}
@Override
public void enter() {
}
@Override
public void exit() {
}
@Override
public void dispose() {
controller.dispose();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment