diff --git a/control/JoyStick.java b/control/JoyStick.java new file mode 100644 index 0000000..169eec5 --- /dev/null +++ b/control/JoyStick.java @@ -0,0 +1,5 @@ +package control; + +public class JoyStick { + +} diff --git a/model/drawObjects/enemy/Enemy.java b/model/drawObjects/enemy/Enemy.java new file mode 100644 index 0000000..b41191e --- /dev/null +++ b/model/drawObjects/enemy/Enemy.java @@ -0,0 +1,199 @@ +package model.drawObjects.enemy; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.geom.Line2D; +import java.awt.geom.Point2D; + +import model.drawObjects.DrawObject; + +public class Enemy extends DrawObject { + + + private int length,timeToClick = 5,currentTimeToClick; + private double speedX,speedY,lengthOf1Side;//lengthOf1Side wordt alleen gebruikt als de lijn een schuine lijn is. + public Line2D enemy; + private Color c; + private boolean clickable = false; + /** + * + * @param pathID + * @param lengthOfEnemy + * @param c + * @param beginPoint + * @param endPoint + * @param steptsToEndPoint + */ + public Enemy(int pathID,int lengthOfEnemy,Color c,double steptsToEndPoint,Point2D beginPoint,Point2D endPoint){ + super(); + this.length = lengthOfEnemy; +// System.out.println(this.length*this.length/2); +// System.out.println(Math.sqrt(Math.pow(this.length,2)/2)); + lengthOf1Side = Math.sqrt(Math.pow(lengthOfEnemy,2)/2); + this.c = c; + this.index = pathID; + double beginX, beginY,endX = 0,endY = 0; + beginX = beginPoint.getX(); + beginY = beginPoint.getY(); + endX = beginX; + endY = beginY; + + //the 8 richtingen van de octagon + switch(index){ + case 0: + endY -= this.length; + break; + case 1: + endY -= lengthOf1Side; + endX += lengthOf1Side; + break; + case 2: + endX -= this.length; + break; + case 3: + endY += lengthOf1Side; + endX += lengthOf1Side; + break; + case 4: + endY += this.length; + break; + case 5: + endY += lengthOf1Side; + endX -= lengthOf1Side; + break; + case 6: + endX += this.length; + break; + case 7: + endY -= lengthOf1Side; + endX -= lengthOf1Side; + break; + } + + + enemy = new Line2D.Double(beginX, beginY, endX, endY); + //bereken de lengte van de enemy tot het einde van de lijn + double distanceX,distanceY; + distanceX = (enemy.getX1() - endPoint.getX()); + distanceY = (enemy.getY1() - endPoint.getY()); + //de afstand mag niet negatief zijn + if(distanceX < 0){ + distanceX *= -1; + } + if(distanceY < 0){ + distanceY *= -1; + } +// System.out.println("Index: "+index+"\tX afstand: "+distanceX+"\tY afstand: "+distanceY); + //snelheid = afstand /tijd + speedX = (distanceX /steptsToEndPoint); + speedY = (distanceY /steptsToEndPoint); +// System.out.println("Index: "+index+"\tX speed: "+speedX+"\tY speed: "+speedY); + } + + @Override + public void draw(Graphics2D g2) { + g2.setPaint(c); + g2.draw(enemy); + } + + @Override + public void update() { + if(clickable){ + currentTimeToClick++; + } + double x1,x2,y1,y2; + x1 = enemy.getX1(); + x2 = enemy.getX2(); + y1 = enemy.getY1(); + y2 = enemy.getY2(); + + switch(index){ + case 0: + y1 += speedY; + y2 = y1 - length; + break; + case 1: + x1 -= speedX; + x2 = x1 + lengthOf1Side; + + y1 += speedY; + y2 = y1 - lengthOf1Side; + break; + case 2: + x1 -= speedX; + x2 = x1 + length; + break; + case 3: + x1 -= speedX; + x2 = x1 + lengthOf1Side; + + y1 -= speedY; + y2 = y1 + lengthOf1Side; + break; + case 4: + y1 -= speedY; + y2 = y1 + length; + break; + case 5: + x1 += speedX; + x2 = x1 - lengthOf1Side; + + y1 -= speedY; + y2 = y1 + lengthOf1Side; + break; + case 6: + x1 += speedX; + x2 = x1 - length; + break; + case 7: + x1 += speedX; + x2 = x1 - lengthOf1Side; + + y1 += speedY; + y2 = y1 - lengthOf1Side; + break; + } + enemy.setLine(x1, y1, x2, y2); + } + + + public Color getColor() { + return c; + } + + public void setColor(Color c) { + this.c = c; + } + + public Line2D getEnemy() { + return enemy; + } + + public void setBullet(Line2D bullet) { + this.enemy = bullet; + } + + public void clickable(){ + clickable = true; + } + + /** + * deze methode kijkt hoeveel frame je nog hebt om te klikken op het moment dat je bolletje in de hitzone zit + * @return + */ + public boolean finised(){ + if(currentTimeToClick >= timeToClick){ + return true; + } + return false; + } + + public boolean isClickable(){ + return clickable; + } + + public int getTimeLeftToClick() { + return currentTimeToClick; + } + +} diff --git a/model/gameState/MenuState.java b/model/gameState/MenuState.java index 57a5ece..f8ed07e 100644 --- a/model/gameState/MenuState.java +++ b/model/gameState/MenuState.java @@ -1,9 +1,5 @@ package model.gameState; -import image.Images; -import image.Images.ImageType; - -import java.awt.Color; import java.awt.Graphics2D; import java.util.ArrayList; @@ -12,14 +8,9 @@ import model.objects.MenuButton; import control.GameStateManager; import control.GameStateManager.State; import control.button.ButtonEvent; -import control.joystick.Joystick; import control.joystick.JoystickEvent; - - public class MenuState extends GameState { - private ArrayList buttons; - private int selected; int frame = 0; int maxFrames = 2560; @@ -35,6 +26,8 @@ public class MenuState extends GameState { } @Override public void init() { + // TODO Auto-generated method stub + } @Override diff --git a/model/objects/InfoPanel.java b/model/objects/InfoPanel.java index 765e0d3..2cd3cf9 100644 --- a/model/objects/InfoPanel.java +++ b/model/objects/InfoPanel.java @@ -34,7 +34,6 @@ public class InfoPanel { } public void draw(Graphics2D g2){ - g2.setColor(Color.BLACK); g2.fillRect(x, y, 256, 1024); Font scoreFont = new Font("OCR A Extended", Font.BOLD, 30); g2.setFont(scoreFont);