Jan Ehehalt 6 years ago
parent 5eb77f5074
commit 6e66f9edd3

@ -18,9 +18,7 @@ import com.badlogic.gdx.maps.MapObjects;
import com.badlogic.gdx.maps.objects.RectangleMapObject;
import com.badlogic.gdx.math.Intersector;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.utils.viewport.FillViewport;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.badlogic.gdx.utils.viewport.StretchViewport;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.dungeoncrawler.view.*;
import com.dungeoncrawler.model.Dungeon;
@ -29,7 +27,6 @@ import com.dungeoncrawler.model.entities.*;
import com.dungeoncrawler.model.Entity;
import com.badlogic.gdx.utils.Timer;
import com.dungeoncrawler.model.ItemContainer;
import com.sun.org.apache.xpath.internal.operations.Or;
import java.util.ArrayList;
@ -1016,28 +1013,22 @@ public class Controller extends ApplicationAdapter implements InputProcessor{
}
if(gs != null){
switch(gs.click(screenX, screenY)){ // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown
case 0:
if(!d.getPlayer().isToDelete()){
d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed());
}
break;
case 1:
if(!d.getPlayer().isToDelete()){
d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed());
}
break;
case 2:
if(!d.getPlayer().isToDelete()){
d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed());
}
break;
case 3:
if(!d.getPlayer().isToDelete()){
d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed());
}
break;
}
if(!d.getPlayer().isToDelete()){
switch(gs.click(screenX, screenY)){ // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown
case 0:
d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed());
break;
case 1:
d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed());
break;
case 2:
d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed());
break;
case 3:
d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed());
break;
}
}
}
return true;

@ -2,6 +2,7 @@ package com.dungeoncrawler.view;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.math.Rectangle;
public class Button {
@ -11,9 +12,11 @@ public class Button {
int width;
int height;
int id;
private Rectangle rect;
public Button(String texture, int x, int y, int id) {
this.sprite = new Sprite(new Texture(texture));
rect = sprite.getBoundingRectangle();
this.xPos = x;
this.yPos = y;
this.width = (int) sprite.getWidth();
@ -70,4 +73,18 @@ public class Button {
public void setId(int id) {
this.id = id;
}
/**
* @return the rect
*/
public Rectangle getRect() {
return rect;
}
/**
* @param rect the rect to set
*/
public void setRect(Rectangle rect) {
this.rect = rect;
}
}

@ -179,8 +179,8 @@ public class GameScreen {
// CONTROLS
controls = new ArrayList();
int hudX = -170;
int hudY = 20;
int hudX = -160;
int hudY = 25;
controls.add(new Button("sprites/controls/arrowLeft.png", hudX + 0, hudY + 50, 0));
controls.add(new Button("sprites/controls/arrowUp.png", hudX + 50, hudY + 100, 1));
controls.add(new Button("sprites/controls/arrowRight.png", hudX + 100, hudY + 50, 2));
@ -528,8 +528,9 @@ public class GameScreen {
}
}
public int click(int x, int y){
x = (int)((float)x / (float)Gdx.graphics.getWidth() * 1600f) - 170;
y = 900-(int)((float)y / Gdx.graphics.getHeight() * 900);
x = (int)((float)x / (float)Gdx.graphics.getWidth() * 1600f) - 160;
y = 900-(int)((float)y / Gdx.graphics.getHeight() * 900) + 25;
System.out.println("X: "+x+"| Y: "+y);
Rectangle mouse = new Rectangle(x,y,1,1);
for(Button button : controls){
if(Intersector.overlaps(mouse, button.getSprite().getBoundingRectangle())){

Loading…
Cancel
Save