hey guys i´m new here. Can anyone tell me how to sporn an actor on a random place?
thx for anser me


1 | addObject( new YourClassName(), Greenfoot.getRandomNumber(getWidth()), Greenfoot.getRandomNumber(getHeight())); |
1 | getWorld().addObject( new YourClassName(), Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight())); |
1 2 3 4 5 | public void act() { if (getWorld().getObjects(Walter. class ).isEmpty()) { getWorld().addObject( new Walter(), Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight())); } } |
1 2 3 4 5 6 7 8 9 | private int counter = 0 ; public void act() { counter++; if (counter > 500 ) { //this value depends on your scenario speed; I'm not shure which value is about 10 seconds; You'll have to try; getWorld().addObject( new Walter(), Greenfoot.getRandomNumber(getWorld().getWidth()), Greenfoot.getRandomNumber(getWorld().getHeight())); counter = 0 ; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | //in WORLD class // in 'act' method if (getObjects(Walter. class ).isEmpty()) spawnWalter(); // new method private void spawnWalter() { int x = Greenfoot.getRandomNumber(getWidth()); int y = Greenfoot.getRandomNumber(getHeight()); addObject( new Walter(), x, y); } // in WALTER class // instance field private int counter; // in 'act' method runCounter(); // new method private void runCounter() { counter++; if (counter == 500 ) getWorld().removeObject( this ); } // in MAIN actor class Walter walter = getOneIntersectingObject(Walter. class ); if (walter != null ) getWorld().removeObject(walter); |