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

2013/5/21

Enemys can't kill actor.

Parrybo Parrybo

2013/5/21

#
My moving enemies can't kill the player i dont no why because it works with non-moving enemies. It's like my enemies are just empty images moving around. But my non-moving enemies are like obstacles and the game stops when my player touches them.
Gevater_Tod4711 Gevater_Tod4711

2013/5/21

#
The code of your moving enemys would be helpfull to see what is the problem.
Parrybo Parrybo

2013/5/21

#
Kannst du deutsch gevater?
Parrybo Parrybo

2013/5/21

#
Here the code for my moving enemies:
 public void act() 
    { move(-7);  
        if (atWorldEdge()){ 
        turn (17) ; }
       int Zufallz = Greenfoot.getRandomNumber (100); 
       if (Greenfoot.getRandomNumber (100)<5) if (Zufallz <5) { turn (45); turn (45) ; } }   
  
    public void LookForCrab()
    { if (canSee(Crab.class))
        { eat(Crab.class);
            Greenfoot.stop () ;
        }

    }
Parrybo Parrybo

2013/5/21

#
Here the code for the not working enemy this code is in the editor of the player:
      
   public void LookForLobster () 
  { if (canSee (Lobster.class)) { Greenfoot.playSound("smb_mariodie.wav");
Greenfoot.stop(); }
    } 
    
  
    }    
Parrybo Parrybo

2013/5/21

#
And here the code in the players editor of the working enemy:
  public void lookForEvilShroom ()
    {  if (canSee(EvilShroom.class)){
        Actor EvilShroom=sees (Actor.class); 
        GreenfootSound ton=new GreenfootSound ("smb_mariodie.wav") ;
       ton.play () ;
      EvilShroom.setLocation( Greenfoot.getRandomNumber (450 ), Greenfoot.getRandomNumber (450)); 
      Greenfoot.stop () ; }
    
    
    }
Gevater_Tod4711 Gevater_Tod4711

2013/5/21

#
Ja ich spreche auch deutsch. Die einzelnen Methoden sind ziemlich zusammenhanglos. Ist schwer da das problem zu erkennen. Kannst du den quelltext der ganzen Klasse posten? Am besten den der Klassen deines Spielers und die Klasse des Gegners der nicht funktioniert.
Parrybo Parrybo

2013/5/21

#
Ok hier der Spieler ( Bin halt ein Nobb das is nur für die Schule ^^ ) :
import greenfoot.*;  // (World, Actor, GreenfootImage, and Greenfoot)

/**
 * This class defines a crab. Crabs live on the beach.
 */
public class Crab extends Animal
{
    private GreenfootImage image1;
    private GreenfootImage image2;
    int zaehler;

   public Crab()
   {
       zaehler=0;
       }

    public void act()
    {
        
        if (atWorldEdge()){ 
        turn (17) ; }
     
         
     
      if (Greenfoot.isKeyDown ("w") ){
      move (10) ; }
      if (Greenfoot.isKeyDown ("s") ) {
       move (-10) ; }
      if (Greenfoot.isKeyDown ("d") ) {
      turn (10) ; }
      if (Greenfoot.isKeyDown ("a") ) {
      turn (-10) ; }
      lookForWorm () ;
      lookForPowerUP () ;
      lookForEvilShroom () ;
    }
    
    public void lookForWorm ()
    { if (canSee(Worm.class)){
        Actor wurm=sees (Actor.class); 
        GreenfootSound ton=new GreenfootSound ("cat_meow_x.wav") ;
       ton.play () ;
       wurm.setLocation( Greenfoot.getRandomNumber (450 ), Greenfoot.getRandomNumber (450));
      zaehler =zaehler+1 ;
      CrabWorld welt=(CrabWorld) getWorld();
      Label l =welt.getLabel();
      l.setText("Punkte:  "+zaehler);
      
    }
    
    }
    
    
       public void lookForPowerUP ()
    { if (canSee(PowerUP.class)){
        Actor PowerUP=sees (Actor.class); 
        GreenfootSound ton=new GreenfootSound ("smb_powerup.wav") ;
       ton.play () ;
       PowerUP.setLocation( Greenfoot.getRandomNumber (450 ), Greenfoot.getRandomNumber (450)); 
       zaehler =zaehler+10 ;
      CrabWorld welt=(CrabWorld) getWorld();
      Label l =welt.getLabel();
      l.setText("Punkte:  "+zaehler); }
    
    
    }
    
    public void lookForEvilShroom ()
    {  if (canSee(EvilShroom.class)){
        Actor EvilShroom=sees (Actor.class); 
        GreenfootSound ton=new GreenfootSound ("smb_mariodie.wav") ;
       ton.play () ;
      EvilShroom.setLocation( Greenfoot.getRandomNumber (450 ), Greenfoot.getRandomNumber (450)); 
      Greenfoot.stop () ; }
    
    
    }
         
   public void LookForLobster () 
  { if (canSee (Lobster.class)) { Greenfoot.playSound("smb_mariodie.wav");
Greenfoot.stop(); }
    } 
    
  
    }    
Parrybo Parrybo

2013/5/21

#
Das ist so ein Crab-World Scenario weiß nicht ob du das kennst da müssen wir halt Sachen dazu programmieren und hier der Text vom nicht funktionierenden Gegner :
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Lobster here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Lobster  extends Animal
{
    
        
      /**
     * Act - do whatever the Lobster wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    { move(-7);  
        if (atWorldEdge()){ 
        turn (17) ; }
       int Zufallz = Greenfoot.getRandomNumber (100); 
       if (Greenfoot.getRandomNumber (100)<5) if (Zufallz <5) { turn (45); turn (45) ; } }   
  
    public void LookForCrab()
    { if (canSee(Crab.class))
        { eat(Crab.class);
            Greenfoot.stop () ;
        }

    }
}
    
    
Gevater_Tod4711 Gevater_Tod4711

2013/5/21

#
Ja das crab-world Scenario kenn ich. Ist ja eins der standart Szenarien. Deine Methoden an sich sind eigentlich richtig. Aber wenn du sie nicht aus der act-Methode aufrufst wird der code nicht ausgeführt und dann hilft dir die richtige Methode leider auch nicht viel. Du solltest in der act-Methode der Klasse Crab die Methode LookForLobster aufrufen. Dann sollte alles funktionieren.
Parrybo Parrybo

2013/5/21

#
Boah Danke! Du bist mein Retter! Es hat endlich funktioniert! Hab schon alle ( inklusive mich) damit verrückt gemacht xD Super vielen vielen Dank!! *feier* :D
jakster1234711 jakster1234711

2013/5/21

#
yolo
You need to login to post a reply.