master
Jonathan Hager 5 years ago
commit 5e40b74855

@ -35,6 +35,7 @@ public class Main extends Game{
Gdx.gl.glClearColor(0f, (0), (0), 1); Gdx.gl.glClearColor(0f, (0), (0), 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
screen.render(Gdx.graphics.getDeltaTime()); screen.render(Gdx.graphics.getDeltaTime());
//Gdx.app.exit();
} }
@Override @Override

@ -15,7 +15,11 @@ import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.FitViewport;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MapContainer { public class MapContainer {
@ -40,7 +44,7 @@ public class MapContainer {
p.setPosition(64, 64); p.setPosition(64, 64);
stage.addActor(p); stage.addActor(p);
stage.addActor(new MovingNpc(new Rectangle(20,20,400,400), 64, 64)); stage.addActor(new MovingNpc(new Rectangle(320,320,80,80), 340, 340));
//CREATION OF TILEDMAP //CREATION OF TILEDMAP
maploader = new TmxMapLoader(); maploader = new TmxMapLoader();
@ -80,6 +84,12 @@ public class MapContainer {
renderer.setView((OrthographicCamera)stage.getCamera()); renderer.setView((OrthographicCamera)stage.getCamera());
renderer.render(); renderer.render();
Actor[] old = stage.getActors().toArray();
stage.clear();
for(Actor a : sort(old)){
stage.addActor(a);
}
stage.act(f); stage.act(f);
stage.draw(); stage.draw();
if(Main.gamestate == 1) { if(Main.gamestate == 1) {
@ -128,5 +138,21 @@ public class MapContainer {
System.out.println("OLD MAP DIDNT FIND PLAYER"); System.out.println("OLD MAP DIDNT FIND PLAYER");
return null; return null;
} }
public Actor[] sort(Actor[] unsorted){
// TODO: Textboxes to the end of the Array to draw them last
for(int j = 0; j < unsorted.length-1; j++){
for(int i = unsorted.length-1; i >= 0; i--){
if(i > 0 && unsorted[i].getY() > unsorted[i-1].getY()){
Actor temp = unsorted[i-1];
unsorted[i-1] = unsorted[i];
unsorted[i] = temp;
}
}
}
return unsorted;
}
} }

@ -40,6 +40,13 @@ public class MovingNpc extends Actor{
collisionRect = new Rectangle(xPos + 16, yPos, 32, 48); collisionRect = new Rectangle(xPos + 16, yPos, 32, 48);
this.area = area; this.area = area;
speed = 1f; speed = 1f;
movementX = 0;
movementY = 0;
String[] ans = {"Antwort1", "Antwort2"};
this.t = new Textbox("Frage", ans, getX()+getWidth()/2, getY()+getHeight()/2, Main.CAMERA_WIDTH, Main.CAMERA_HEIGHT);
setBounds(xPos, yPos, animatedSprite.getSprite().getWidth(), animatedSprite.getSprite().getHeight()); setBounds(xPos, yPos, animatedSprite.getSprite().getWidth(), animatedSprite.getSprite().getHeight());
} }
@ -140,4 +147,8 @@ public class MovingNpc extends Actor{
return value; return value;
} }
public Textbox getTextbox(){
return t;
}
} }

@ -36,7 +36,6 @@ public class Player extends Actor{
Rectangle collisionRect; Rectangle collisionRect;
public Player(int xPos, int yPos){ public Player(int xPos, int yPos){
setName("player"); setName("player");
t = new Texture(Gdx.files.internal("player.png")); t = new Texture(Gdx.files.internal("player.png"));
playerSprite = new AnimatedSprite(t, 64, 64); playerSprite = new AnimatedSprite(t, 64, 64);
@ -74,11 +73,14 @@ public class Player extends Actor{
facing = 2; facing = 2;
} }
if(Gdx.input.isKeyJustPressed(Input.Keys.E)) { if(Gdx.input.isKeyJustPressed(Input.Keys.E)) {
Main.gamestate = 1; Actor a = collidingActor();
String[] ans = {"Antwort1", "Antwort2"}; if(a != null && a instanceof MovingNpc){
getStage().addActor(new Textbox("Frage", ans, getX()+getWidth()/2, getY()+getHeight()/2, Main.CAMERA_WIDTH, Main.CAMERA_HEIGHT)); Main.gamestate = 1;
movementX = 0; Textbox t = ((MovingNpc)a).getTextbox();
movementY = 0; getStage().addActor(new Textbox(t, getX()+32, getY()+32));
movementX = 0;
movementY = 0;
}
} }
} }
else if(Main.gamestate == 1) { else if(Main.gamestate == 1) {
@ -183,6 +185,19 @@ public class Player extends Actor{
} }
} }
} }
public Actor collidingActor(){
for(Actor a : getStage().getActors()){
if(a.getName().equals("npc")){
Rectangle p = new Rectangle(getX(), getY(), getWidth(), getHeight());
Rectangle npc = new Rectangle(a.getX(), a.getY(), a.getWidth(), a.getHeight());
if(Intersector.overlaps(p, npc)){
return a;
}
}
}
return null;
}
/* /*
public int getMovementAvailable(){ public int getMovementAvailable(){

@ -29,6 +29,7 @@ public class Textbox extends Actor{
int printLine; int printLine;
int printChar; int printChar;
ArrayList<String> splitted; ArrayList<String> splitted;
String toPring;
ShapeRenderer renderer; ShapeRenderer renderer;
@ -55,10 +56,26 @@ public class Textbox extends Actor{
font.setColor(Color.BLACK); font.setColor(Color.BLACK);
state = 0; state = 0;
splitted = getSplitted(toPrint, (int)getWidth()); splitted = getSplitted(toPrint, (int)getWidth());
for(String s : splitted){ }
System.out.println(s);
} public Textbox(Textbox t, float xPos, float yPos){
splitted = t.splitted;
r = new Rectangle(xPos - Main.CAMERA_WIDTH/2 + 20, yPos - Main.CAMERA_HEIGHT/2 + 20, Main.CAMERA_WIDTH - 40, Main.CAMERA_HEIGHT/5);
renderer = new ShapeRenderer();
printLine = 0;
printChar = 0;
this.ans = t.ans;
setName("textbox");
font = new BitmapFont();
setBounds(r.getX(), r.getY(), r.getWidth(), r.getHeight());
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("font.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();
parameter.size = 21;
font = generator.generateFont(parameter);
generator.dispose();
font.setColor(Color.BLACK);
} }
@Override @Override

Loading…
Cancel
Save