Jag skall göra ett "tak" och ett "golv" till sett spel. Taket & golvet skall röra sig och det skall vara utfyllt ovanför.
import java.awt.Color;
import java.awt.Graphics;
class ApplicationHandler
{
private FigureHandler figureHandler;
public ApplicationHandler(FigureHandler fh)
{
figureHandler=fh;
}
public void insertFigures()
{
// Roof
figureHandler.insert(new Terrain(new Point(0,0), new Point(200,40)));
figureHandler.insert(new Terrain(new Point(200,40), new Point(400,20)));
figureHandler.insert(new Terrain(new Point(400,20), new Point(600,60)));
figureHandler.insert(new Terrain(new Point(600,60), new Point(900,50)));
figureHandler.insert(new Terrain(new Point(900,50), new Point(1000,10)));
// Ground
figureHandler.insert(new Terrain(new Point(0,1300), new Point(100,1250)));
figureHandler.insert(new Terrain(new Point(100,1250), new Point(300,1300)));
figureHandler.insert(new Terrain(new Point(300,1300), new Point(500,1200)));
figureHandler.insert(new Terrain(new Point(500,1200), new Point(700,1270)));
figureHandler.insert(new Terrain(new Point(700,1270), new Point(900,1290)));
figureHandler.insert(new Terrain(new Point(900,1290), new Point(1000,1300)));
}
public void toggleMove()
{
figureHandler.movementToggle();
}
public void tick() // a time step 10ms has occurred
{
}
public void keyAction(int button, boolean pressed)
{
}
public void mouseAction(int button, boolean pressed, int x, int y)
{
if(pressed)
{
Figure f = figureHandler.findFigureAt(x,y);
if(f!=null)
figureHandler.remove(f);
}
}
}
import java.awt.Graphics.*;
import javax.swing.*;
import java.awt.*;
public class Rect extends Figure
{
protected Point p1, p2, p3, p4, pc;
public Rect(Point p1, Point p2, Point p3, Point p4)
{
this.p1=p1;
this.p2=p2;
this.p3=p3;
this.p4=p4;
pc = new Point((p2.getCenterX()-p1.getCenterX())/2.0+p1.getCenterX(),(p1.getCenterY()-p4.getCenterY())/2.0+p4.getCenterY());
}
public void move(double dx, double dy)
{
p1.move(dx,dy);
p2.move(dx,dy);
p3.move(dx,dy);
p4.move(dx,dy);
pc.move(dx,dy);
}
public void rotate(double angle)
{
p1 = p1.rotate(p1, pc, angle);
p2 = p2.rotate(p2, pc, angle);
p3 = p3.rotate(p3, pc, angle);
p4 = p4.rotate(p4, pc, angle);
}
public double getCenterX()
{
return pc.getCenterX();
}
public double getCenterY()
{
return pc.getCenterY();
}
public void setCenterX(double x)
{
double dx = x-pc.getCenterX();
pc.move(dx,0);
p1.move(dx,0);
p2.move(dx,0);
p3.move(dx,0);
p4.move(dx,0);
}
public void setCenterY(double y)
{
double dy = y-pc.getCenterY();
pc.move(0,dy);
p1.move(0,dy);
p2.move(0,dy);
p3.move(0,dy);
p4.move(0,dy);
}
public String toString()
{
return "("+p1+","+p2+","+p3+","+p4+")";
}
public void draw(java.awt.Graphics g)
{
g.setColor(color);
g.drawLine((int)p1.getCenterX(),(int)p1.getCenterY(),(int)p2.getCenterX(),(int)p2.getCenterY());
g.drawLine((int)p2.getCenterX(),(int)p2.getCenterY(),(int)p3.getCenterX(),(int)p3.getCenterY());
g.drawLine((int)p3.getCenterX(),(int)p3.getCenterY(),(int)p4.getCenterX(),(int)p4.getCenterY());
g.drawLine((int)p4.getCenterX(),(int)p4.getCenterY(),(int)p1.getCenterX(),(int)p1.getCenterY());
}
public double getEnclosingRadius()
{
double dx=getCenterX()-p1.getCenterX();
double dy=getCenterY()-p1.getCenterY();
return Math.sqrt(dx*dx+dy*dy);
}
public boolean intersects(Figure t)
{
return false;
}
public boolean encloses(double x, double y)
{
return false;
}
}