This site requires JavaScript, please enable it in your browser!
Greenfoot back
joost.bosma@hotmail.com
joost.bosma@hotmail.com wrote ...

2017/2/3

Let an enemey die

Hello I have a question. can somebody help me I want to let an enemy disappear when a bullet hits the enemy. this is my code for the enemey import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Enemey here. * * @author (your name) * @version (a version number or a date) */ public class Enemey extends Actor { /** * Act - do whatever the Enemey wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { move(Greenfoot.getRandomNumber(20)); // Zorgt er voor dat er een draai komt en een snelheid per px: turn(10 - Greenfoot.getRandomNumber(20)); // zorgt ervoor in welke richting die gaat bewegen if (getX() <=5 || getX() >= getWorld().getWidth() - 5)// { turn (180); // zorgt er voor dat die 180 graden draait als die de X as raakt } if (getY() <=5 || getY() >= getWorld().getHeight() - 5) { turn (180); // zorgt er voor dat die 180 graden draait als die de y as raakt } } } this is the code for the player import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Player here. * * @author (Joost Bosma) * @version (a version number or a date) */ public class Player extends Actor { /** * Act - do whatever the Player wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ boolean space = false; public void act() { if(Greenfoot.isKeyDown("right")){ // wanneer je op het rechter pijltje drukt gat die naar rechts setLocation(getX()+2, getY()); // +2 bepaalt de snelheid naar rechts en x en y as is de plaats waar die komt } if(Greenfoot.isKeyDown("left")){ // wanneer je op het linker pijltje drukt gat die naar links setLocation(getX()-2, getY()); // - 2 bepaalt de snelheid naar links x en y is de as waar op die komt } if(Greenfoot.isKeyDown("up")){ // wanneer je op het boven pijltje drukt gat die naar boven setLocation(getX(), getY()-2); // - 2 bepaalt de snelheid naar boven x en y is de as waar op die komt } if(Greenfoot.isKeyDown("down")){ // wanneer je op het beneden pijltje drukt gat die naar beneden setLocation(getX(), getY()+2); // + 2 bepaalt de snelheid naar beneden, x en y is de as waar op die komt } if(!space && Greenfoot.isKeyDown("space")){ space = true; Bullet myBullet = new Bullet(); getWorld().addObject(myBullet, getX(), getY()); // ยง1()-2);()+3, }else if(!Greenfoot.isKeyDown("space")){ space = false; } Actor Enemey; // zorgt ervoor dat de code wordt gerelateerd aan de player Enemey = getOneObjectAtOffset(0,0,Enemey.class);// geeft de coordinaten aan de Enemey in de geval alleen waar je hem plaatst // zorgt er ook voor dat als er een botsing komt, dat straks de Enemey weg gaat if(Enemey !=null) // { World world; // maakt een variabale world = getWorld(); // pakt de variable world.removeObject(Enemey); // zorgt er voor dat de enemey als die gehit word word geremoved Greenfoot.playSound("kristiaan.wav"); // zorgt ervoor dat die de sound uit je bestanden pakt en dan gaat afspelen als je een enemey raakt Scoreboard scoreboard = (Scoreboard) (getWorld().getObjects(Scoreboard.class).get(0)); scoreboard.score = scoreboard.score + 1; } } } this is the code for the bullet import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Bullet here. * * @author (your name) * @version (a version number or a date) */ public class Bullet extends Actor { /** * Act - do whatever the Bullet wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { move(3); if(this.isAtEdge()){ getWorld().removeObject(this); } } }
davmac davmac

2017/2/3

#
Welcome to the Greenfoot forums. Please read the code posting primer and use appropriate formatting tags in future posts.
Super_Hippo Super_Hippo

2017/2/3

#
You can use the following at the end of the Bullets act method:
else if (isTouching(Enemey.class))
{
    removeTouching(Enemey.class);
    getWorld().removeObject(this);
}
Did you mean like this? import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Bullet here. * * @author (your name) * @version (a version number or a date) */ public class Bullet extends Actor { /** * Act - do whatever the Bullet wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { move(3); if(this.isAtEdge()){ getWorld().removeObject(this); } else if (isTouching(Enemey.class));{ removeTouching(Enemey.class); getWorld().removeObject(this); } } }
Super_Hippo Super_Hippo

2017/2/4

#
Yes.
because when I do this My bullet doesn't move anymore. By the way thanks for your tip
danpost danpost

2017/2/4

#
joost.bosma@hotmail.com wrote...
because when I do this My bullet doesn't move anymore. By the way thanks for your tip
Remove the semi-colon immediately following the 'if' condition in the following line:
else if (isTouching(Enemey.class));{
thank you verry much, I have looking for this problem for almost three weeks. Your all verry good programmers. Thanks a lot again
You need to login to post a reply.