Added new keyboard controls
This commit is contained in:
+32
-4
@@ -27,23 +27,51 @@ public class Keyboard implements KeyListener {
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_LEFT) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX()-5,panel.getSelectedObject().getPosition().getY()));
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX()-5,panel.getSelectedObject().getPosition().getY()), true);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_RIGHT) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX()+5,panel.getSelectedObject().getPosition().getY()));
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX()+5,panel.getSelectedObject().getPosition().getY()), true);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_UP) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX(),panel.getSelectedObject().getPosition().getY()-5));
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX(),panel.getSelectedObject().getPosition().getY()-5), true);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_DOWN) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX(),panel.getSelectedObject().getPosition().getY()+5));
|
||||
panel.getSelectedObject().setPosition(new Point2D.Double(panel.getSelectedObject().getPosition().getX(),panel.getSelectedObject().getPosition().getY()+5), true);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_ADD) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setScale(panel.getSelectedObject().getScale()+0.2);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_SUBTRACT) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setScale(Math.max(panel.getSelectedObject().getScale()-0.2, 0.2));
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_COMMA) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setRotation((panel.getSelectedObject().getRotation()-5)%360);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_PERIOD) {
|
||||
if(panel.getSelectedObject() != null)
|
||||
panel.getSelectedObject().setRotation((panel.getSelectedObject().getRotation()+5)%360);
|
||||
panel.checkCollision();
|
||||
panel.getPP().update();
|
||||
}
|
||||
else if(e.getKeyCode() == e.VK_ENTER) {
|
||||
if(panel.getClickedOption().equals("Path")) {
|
||||
|
||||
+2
-30
@@ -129,36 +129,8 @@ public class Mouse extends MouseAdapter
|
||||
{
|
||||
if(panel.getDragObject() != null) {
|
||||
if(panel.getDragObject().getRectangleColor() != Color.RED) {
|
||||
if(panel.getDragObject() instanceof Entrance)
|
||||
{
|
||||
Rectangle2D rect = panel.getDragObject().getRectangle();
|
||||
double xl = (panel.getFieldWidth()/2) + rect.getMinX();
|
||||
double xr = panel.getFieldWidth() - xl+rect.getWidth();
|
||||
double yt = (panel.getFieldHeight()/2) + rect.getMinY();
|
||||
double yb = panel.getFieldHeight() - yt+rect.getHeight();
|
||||
if(xl < xr && xl < yt && xl < yb)
|
||||
{
|
||||
panel.getDragObject().setPosition(new Point2D.Double(-panel.getFieldWidth()/2, rect.getMinY()));
|
||||
}
|
||||
else if(xr < xl && xr < yt && xr < yb)
|
||||
{
|
||||
panel.getDragObject().setPosition(new Point2D.Double(panel.getFieldWidth()/2 - rect.getWidth(), rect.getMinY()));
|
||||
}
|
||||
else if(yt < xl && yt < xr && yt < yb)
|
||||
{
|
||||
panel.getDragObject().setPosition(new Point2D.Double(rect.getMinX(), -panel.getFieldHeight()/2));
|
||||
}
|
||||
else if(yb < xl && yb < yt && yb < xr)
|
||||
{
|
||||
panel.getDragObject().setPosition(new Point2D.Double(rect.getMinX(), panel.getFieldHeight()/2 - rect.getHeight()));
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.getDragObject().setPosition(new Point2D.Double(-panel.getFieldWidth()/2, -panel.getFieldHeight()/2));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
panel.getDragObject().setPosition(panel.getDragObject().getPosition(), true);
|
||||
panel.getPP().update();
|
||||
panel.setDragObject(null);
|
||||
panel.setClickedOption("drag");
|
||||
}
|
||||
|
||||
@@ -234,6 +234,10 @@ public abstract class DrawObject implements Serializable
|
||||
{
|
||||
this.position = position;
|
||||
}
|
||||
public void setPosition(Point2D position, boolean b)
|
||||
{
|
||||
this.position = position;
|
||||
}
|
||||
|
||||
public double getRotation()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package Objects;
|
||||
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
import Applicatie.Panel;
|
||||
|
||||
public class Entrance extends DrawObject
|
||||
{
|
||||
@@ -15,5 +18,35 @@ public class Entrance extends DrawObject
|
||||
{
|
||||
return "Entrance";
|
||||
}
|
||||
|
||||
public void setPosition(Point2D position, boolean b)
|
||||
{
|
||||
//this.position = position;
|
||||
Rectangle2D rect = getRectangle();
|
||||
double xl = (Panel.getFieldWidth()/2) + rect.getMinX();
|
||||
double xr = Panel.getFieldWidth() - (Panel.getFieldWidth()/2 + rect.getMaxX());
|
||||
double yt = (Panel.getFieldHeight()/2) + rect.getMinY();
|
||||
double yb = Panel.getFieldHeight() - (Panel.getFieldHeight()/2 + rect.getMaxY());
|
||||
if(xl < xr && xl < yt && xl < yb)
|
||||
{
|
||||
this.position = new Point2D.Double(-Panel.getFieldWidth()/2, position.getY());
|
||||
}
|
||||
else if(xr < xl && xr < yt && xr < yb)
|
||||
{
|
||||
this.position = new Point2D.Double(Panel.getFieldWidth()/2 - rect.getWidth(), position.getY());
|
||||
}
|
||||
else if(yt < xl && yt < xr && yt < yb)
|
||||
{
|
||||
this.position = new Point2D.Double(position.getX(), -Panel.getFieldHeight()/2);
|
||||
}
|
||||
else if(yb < xl && yb < yt && yb < xr)
|
||||
{
|
||||
this.position = new Point2D.Double(position.getX(), Panel.getFieldHeight()/2 - rect.getHeight());
|
||||
}
|
||||
else
|
||||
{
|
||||
this.position = new Point2D.Double(-Panel.getFieldWidth()/2, -Panel.getFieldHeight()/2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user