Waarschijnlijk de exception opgelost, ik krijg de expection zelf niet

This commit is contained in:
Remco
2015-05-27 20:10:28 +02:00
parent 6510d4b93a
commit ad447eedf8
4 changed files with 29 additions and 7 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ public class Main {
else
{
new Window(true);
}
}
}
}
+19 -2
View File
@@ -72,8 +72,25 @@ public class Enemy extends Person{
this.circle = circle;
}
public boolean hit(Bullet bullet){
if(color.equals(bullet.getColor()) && circle.getBounds2D().intersectsLine(bullet.bullet)){
/**
* Deze methode kijkt of de enemy is geraakt door een bullet
* @param bullet, een kogel om te kijken of hij deze enemy heeft geraakt
* @return, true = raakt, false = mis
*/
public boolean bulletHitMe(Bullet bullet){
if(circle.getBounds2D().intersectsLine(bullet.bullet)){
return true;
}
return false;
}
/**
* Hier kijk je of de bullet de juiste kleur heeft, om de enemy te vermoorden
* @param bullet, de kogel om te kije of hij de zelfde kleur heeft als deze enemy
* @return,true = zelfde kleur, false = andere kleur
*/
public boolean ColorHitMe(Bullet bullet){
if(this.color.equals(bullet.getColor())){
return true;
}
return false;
+2 -1
View File
@@ -8,6 +8,7 @@ import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -26,7 +27,7 @@ public class Player extends Person {
img = Images.getImage(Images.ImageType.player2);
width = img.getWidth();
height = img.getHeight();
bullets = new ArrayList<Bullet>();
bullets = Collections.synchronizedList(new ArrayList<Bullet>());
}
public void draw(Graphics2D g2){//
+7 -3
View File
@@ -5,6 +5,7 @@ import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -31,7 +32,7 @@ public class PlayState extends GameState{
super(gsm);
area = new PlayArea((int) borderRect.getX(),1024,1024,100);
infoPanel = new InfoPanel(0, 0);
enemys = new ArrayList<Enemy>();
enemys = Collections.synchronizedList(new ArrayList<Enemy>());
player = new Player(1280-1024+1024/2, 1024/2,area);
for(int i = 0; i < 8; i++){
Line2D line = area.getLine(i);
@@ -53,9 +54,12 @@ public class PlayState extends GameState{
Enemy e = enemyIterator.next();
Iterator<Bullet> bulletIterator = player.bullets.iterator();
while(bulletIterator.hasNext()){
if(e.hit(bulletIterator.next())){
enemyIterator.remove();
Bullet b = bulletIterator.next();
if(e.bulletHitMe(b)){ //kijkt of de enemy een bullet tegen komt, zoja verwijder de bullet.
bulletIterator.remove();
if(e.ColorHitMe(b)){ //kijkt of de bullet die de enemy heeft gehit, ook dezelfde kleur heeft als de enemy, zoja verwijder de enemy
enemyIterator.remove();
}
}
}
if(area.octagon.intersects(e.getCircle().getBounds2D())){