You may have to check to see if a rock is there first. Or (I don't know), maybe being on or under the rock might make you less prone to be infected.


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 | public class InfectWorld extends World { /** * Constructor for objects of class InfectWorld. * */ public InfectWorld() { super ( 13 , 13 , 60 ); prepare(); } Greenfoot.setSpeed(identifier expected)( 25 ); /** * Prepare the world for the start of the program. That is: create the initial * objects and add them to the world. */ private void prepare() { Rock rock = new Rock(); addObject(rock, 5 , 4 ); Rock rock2 = new Rock(); addObject(rock2, 8 , 5 ); Rock rock3 = new Rock(); addObject(rock3, 5 , 8 ); Rock rock4 = new Rock(); addObject(rock4, 2 , 9 ); Rock rock5 = new Rock(); addObject(rock5, 9 , 9 ); Rock rock6 = new Rock(); addObject(rock6, 10 , 6 ); Rock rock7 = new Rock(); addObject(rock7, 7 , 3 ); for ( int uninf = 0 ; uninf < 36 ; uninf++) { int myX = Greenfoot.getRandomNumber( 15 ); int myY= Greenfoot.getRandomNumber( 13 ); UnInfected uninfected = new UnInfected(); addObject(uninfected, myX, myY); } addObject(uninfected8, 5 , 2 ); InfectLv1 infectlv1 = new InfectLv1(); addObject(infectlv1, 11 , 1 ); InfectLv2 infectlv2 = new InfectLv2(); addObject(infectlv2, 13 , 3 ); } } |
1 2 3 4 5 6 7 8 9 10 11 | /** * Check to see if can be infected from Lv1 */ public boolean infect() { if (Image) =ppl3.png; { return false ;} else { return ((getObjectsInRange( 5 , InfectLv1. class )).size() != 0 ); } } |
1 2 | Rock rock = new Rock(); addObject(rock, myX, myY); |
1 | addObject( new Rock(), myX, myY); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // test for outside border if (x >= myWorld.getWidth() || y >= myWorld.getHeight()) { return false ; } else if (x < 0 || y < 0 ) { return false ; } List rocks = myWorld.getObjectsAt(x, y, Actor. class ); if (rocks.isEmpty()) return true ; else { return false ; } |
1 2 3 4 5 | // test for outside border if (x >= myWorld.getWidth() || y >= myWorld.getHeight()) { return false ; } if (x < 0 || y < 0 ) { return false ; } // test for Actors return ((myWorld.getObjectsAt(x, y, Actor. class )).size() == 0 ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | public void act() { if (canMove()) { move(); } else { turnRandom(); } {getinfected(); } {getinfected2(); } } |
1 2 3 4 5 6 | public void act() { if (canMove()) { move(); } else { turnRandom(); } getinfected(); getinfected2(); } |
1 | private boolean gotInfected = false ; |