When an actor reaches the edge i want to remove it. It works fine but i keep getting a terminal window. this is the code of the class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Kogel here. * * @author (your name) * @version (a version number or a date) */ public class Kogel extends Actor { int bijl = 1 ; int tellerAnimatie = 1 ; /** * Constructor die nieuwe actors maakt * */ public void act() { if (getWorld() != null ) doeKogelDingen(); if (getWorld() != null ) vermoordMonster(); if (getWorld() != null ) vermoordNachtbaas(); animatieBijl(); } /** * methode die animatie laat gebeuren */ public void animatieBijl() { move( 4 ); if (bijl<= 8 ) { if (tellerAnimatie == 5 ) { setImage( "AxeThrowing" + bijl + ".png" ); bijl++; tellerAnimatie= 1 ; } } else { bijl= 1 ; } tellerAnimatie++; } /** * methode die monsters vermoord en de counter update */ public void vermoordMonster() { Actor monster = getOneIntersectingObject(Monsters. class ); if (monster != null ) // als het monster niet gelijk is aan niks (dus hij is er wel), update de counter, verwijder de desbetreffende kogel en monster { updateScoreLevel1(); getWorld().removeObject(monster); getWorld().removeObject( this ); } } public void vermoordNachtbaas() { Actor nachtbaas = getOneIntersectingObject(Nachtbaas. class ); if (nachtbaas != null ) // als de nachtbaas niet gelijk is aan niks (dus hij is er wel), update de counter, en verwijder de desbetreffende kogel { updateScoreLevel2(); getWorld().removeObject( this ); setLocation(nachtbaas.getX() - 40 , nachtbaas.getY()- 40 ); } } /** * de methode wat de basis is van wat de kogel moet doen */ public void doeKogelDingen() { if (isAtEdge()) //als je aan de rand bent, verwijder de desbetreffend kogel { getWorld().removeObject( this ); } if (isTouching(Obstakel. class )) // als je een obstakel raakt, verwijder de desbetreffende kogel { getWorld().removeObject( this ); } } /** * de methode die de counter met 1 update */ private void updateScoreLevel1() { Level1 level1 = (Level1) getWorld(); Score score = level1.pakScore(); score.bumpCount( 1 ); } /** * de methode die de counter met 1 update */ private void updateScoreLevel2() { Level2 level2 = (Level2) getWorld(); Score2 score2 = level2.pakScore2(); score2.bumpCount2( 1 ); } } |