Hello, i got a problem. I want to remove an Object after 10 seconds but i dont want to use Greenfoot.delay(10) because it pauses the game.
My Code:
I already tried it like this but it doesnt worked for me :
import greenfoot.*; public class NPC1 extends NPC { public void act() { move(); if(Greenfoot.isKeyDown("e"))reden(); } public void move(){ if(random1()==1){ setLocation(getX()-2, getY()); setRotation(180); } if(random1()==2){ setLocation(getX()+2, getY()); setRotation(0); } if(random1()==3){ setLocation(getX(), getY()-2); setRotation(270); } if(random1()==4){ setLocation(getX(), getY()+2); setRotation(90); } } public void reden(){ Text errormsg=new Text(); getWorld().addObject(errormsg, 600, 220); errormsg.setText("You cannot take coke with a penny"); //getWorld().removeObject(errormsg); } private int random1(){ int random1 = Greenfoot.getRandomNumber(150)+1; return random1; } }
import greenfoot.*; public class NPC1 extends NPC { int cooldown = 0; public void act() { move(); cooldown--; reden(); } public void move(){ if(random1()==1){ setLocation(getX()-2, getY()); setRotation(180); } if(random1()==2){ setLocation(getX()+2, getY()); setRotation(0); } if(random1()==3){ setLocation(getX(), getY()-2); setRotation(270); } if(random1()==4){ setLocation(getX(), getY()+2); setRotation(90); } } public void reden(){ if(Greenfoot.isKeyDown("e")){ Text errormsg=new Text(); getWorld().addObject(errormsg, 600, 220); errormsg.setText("You cannot take coke with a penny"); cooldown = 70; if(cooldown<1)getWorld().removeObject(errormsg); } } private int random1(){ int random1 = Greenfoot.getRandomNumber(150)+1; return random1; } }