Skip to content
Snippets Groups Projects
Commit f63d0de0 authored by marcus's avatar marcus
Browse files

Finished "Starting game" view, controller and state. also added a "back" button in assets

parent 6691c93d
No related branches found
No related tags found
No related merge requests found
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.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.states;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.wordbattle.game.WordBattle;
import com.wordbattle.game.controller.MainMenuController;
import com.wordbattle.game.controller.StartingGameController;
public class StartingGameState extends BaseState{
private StartingGameController controller;
public StartingGameState(StateManager gsm) {
super(gsm);
this.controller = new StartingGameController(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() {
}
@Override
public void dispose() {
controller.dispose();
}
}
package com.wordbattle.game.view;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import com.badlogic.gdx.math.Circle;
import com.badlogic.gdx.math.Rectangle;
import com.wordbattle.game.WordBattle;
public class StartingGameView {
private OrthographicCamera cam;
private Texture backgroundTexture;
private Texture backArrowTexture;
private Rectangle backArrowBounds;
private BitmapFont font;
public StartingGameView(OrthographicCamera cam) {
this.cam = cam;
backgroundTexture = new Texture("bg2.png");
backArrowTexture = new Texture("back_button.png");
backArrowBounds= new Rectangle(5,740,40,40);
// Load and set up font
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("Knewave-Regular.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 52;
font = generator.generateFont(parameter);
font.setColor(Color.PINK);
generator.dispose();
}
public void render(SpriteBatch spriteBatch){
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
cam.update();
spriteBatch.setProjectionMatrix(cam.combined);
spriteBatch.begin();
spriteBatch.draw(backgroundTexture,0,0, WordBattle.WIDTH,WordBattle.HEIGHT);
spriteBatch.draw(backArrowTexture,backArrowBounds.x,backArrowBounds.y,backArrowBounds.getWidth(),backArrowBounds.getHeight());
font.draw(spriteBatch,"Starting Game...", 60,400);
spriteBatch.end();
}
public Rectangle getBackArrosBounds() {
return backArrowBounds;
}
public void dispose(){
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment