This site requires JavaScript, please enable it in your browser!
Greenfoot back
ZigZagNinja
ZigZagNinja wrote ...

2017/11/5

remove all actors of one kind

ZigZagNinja ZigZagNinja

2017/11/5

#
so i have a game where the longer the game goes on the more rocks spawn. At the end of the game they should all disappear, but the players chrakter which is also an actor should not disappear any way of doing this? Thanks in advance
Super_Hippo Super_Hippo

2017/11/5

#
To remove all instances of Stein from the world: Called from world:
1
removeObject(Stein.class);
Called from actor in the world:
1
getWorld().removeObject(Stein.class);
ZigZagNinja ZigZagNinja

2017/11/5

#
i got an error : incompatible types: java.lang.Class<Stein> cannot be converted to greenfoot.Actor
danpost danpost

2017/11/5

#
The 'removeObject' method requires an Actor object, not a Class object for its parameter. It is used to remove one Actor object at a time. The 'removeObjects' (with an 's' at the end) method is used to remove a list of Actor objects from the world. To get a list of Stein objects in your wold, use 'getObjects(Stein.class)' or 'getWorld().getObjects(Stein.class) if coding in an Actor subclass instead of a World subclass.
ZigZagNinja ZigZagNinja

2017/11/5

#
so how exactly am i supposed to write it if i want to get rid of all of the Stein class? (sorry if im beeing stupid) heres my code : import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Spieler wird gesteuert, sammelt Muenzen ein und stirbt wenn er einen Stein berührt * * @author * @version (a version number or a date) */ public class Spieler extends Actor { public int anzahlMuenzenEingesammelt = 0; public int spielerAmLeben = 1; public void act() { if(spielerAmLeben == 1) { if(Greenfoot.isKeyDown("up")) nachObenBewegen(); if(Greenfoot.isKeyDown("down")) nachUntenBewegen(); if(Greenfoot.isKeyDown("right")) nachRechtsBewegen(); if(Greenfoot.isKeyDown("left")) nachLinksBewegen(); } //Spieler sammelt Muenze ein wenn er auf sie trifft muenzeEinsammeln(); //Spiler hölt an wenn er einen Stein trifft spielerTrifftStein(); wennSpielerTodIst(); spielerTrifftPowerUp(); //getWorld().showText(""+anzahlMuenzenEingesammelt, 10, 10); } public void nachObenBewegen() { setLocation(getX(), getY()-5); setImage("PlayerHinten.png"); } public void nachUntenBewegen() { setLocation(getX(), getY()+5); setImage("PlayerVorne.png"); } public void nachRechtsBewegen() { setLocation(getX()+5, getY()); setImage("PlayerRechts.png"); } public void nachLinksBewegen() { setLocation(getX()-5, getY()); setImage("PlayerLinks.png"); } public void muenzeEinsammeln() { Actor Muenze; Muenze = getOneIntersectingObject(Muenze.class); if(Muenze != null) { World world; world = getWorld(); world.removeObject(Muenze); if(spielerAmLeben == 1) { anzahlMuenzenEingesammelt = anzahlMuenzenEingesammelt +1; Greenfoot.playSound("MuenzeEinsammeln.wav"); } } } public void spielerTrifftStein() { Actor Stein; Stein = getOneObjectAtOffset(0, 0, Stein.class); //Stein = getOneIntersectingObject(Stein.class); if(Stein != null) { spielerAmLeben = 0; } } public void spielerTrifftPowerUp() { Actor PowerUp; PowerUp = getOneIntersectingObject(PowerUp.class); if(PowerUp != null) { World world; world = getWorld(); world.removeObject(PowerUp); } } public void wennSpielerTodIst() { if(spielerAmLeben == 0) { setImage("gameOver.jpg"); setLocation(310, 180); getWorld().getObjects(Stein.class); } } }
ZigZagNinja ZigZagNinja

2017/11/5

#
doesnt matter i got it to work thanks for the help
You need to login to post a reply.