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

2019/12/19

finish scenario

1
2
Fuph Fuph

2019/12/19

#
Hey guys, I have a question. Im done with my game and want to save it in one file so that if someone else wants to play the game, he can do without opening the greenfoot launcher. Like a normal game. simply click on it and the game opens. I tried to "share" the game as a jar file but I cant open it. I hope you understood my problem and can help me. Thank you
danpost danpost

2019/12/19

#
Out of curiosity, what all do your classes import? Not sure, but they might have something to do with your issue.
Fuph Fuph

2019/12/19

#
Can you please explain what you mean, should I post my code or should I upload my scenario?
danpost danpost

2019/12/19

#
Fuph wrote...
Can you please explain what you mean, should I post my code or should I upload my scenario?
At the top of each of your classes are lines that begin with the word 'import'. Without repeating any, list all that you find.
Fuph Fuph

2019/12/19

#
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) This is the only line in all of my classes
danpost danpost

2019/12/19

#
Fuph wrote...
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
This is the only line in all of my classes
Hmm. Okay, let's take a look at your World subclass, first (show all lines).
Fuph Fuph

2019/12/19

#
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class MyWorld here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class MyWorld extends World
{

    /**
     * Constructor for objects of class MyWorld.
     * 
     */
    public MyWorld()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(1200, 675, 1);
        addObject(new Snoopy(), Greenfoot.getRandomNumber(200), Greenfoot.getRandomNumber(200));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
        addObject(new RedBaron(), Greenfoot.getRandomNumber(1000), Greenfoot.getRandomNumber(580));
    }
    
    public void act()
    { 
    if(getObjects(RedBaron.class).isEmpty())
        {
          addObject(new FinalScreen(), getWidth()/2, getHeight()/2);
          Greenfoot.playSound("Super Mario Bros. Music - Level Complete.wav");
          Greenfoot.stop();
          return;
        }
    }
    

}
thats the subclass
danpost danpost

2019/12/19

#
Fuph wrote...
<< Code Omitted >> thats the subclass
Okay -- no apparent issues here. Let's move on to the RedBaron class.
Fuph Fuph

2019/12/19

#
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class RedBaron here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class RedBaron extends Peanuts
{
    private int counter;
    public RedBaron()
    {
        counter = 0;
    }
    public void act() 
    {
        movement();
        eatSnoopy();
        this.checkCollision(); 
    }    
    
     public void movement()
    {
        if(Greenfoot.getRandomNumber(100)<10)
        {
            turn(Greenfoot.getRandomNumber(45));
        }
        
        move();
    }  
    
    public void checkCollision()
    {
        Actor meinWoodstock;
        meinWoodstock = this.getOneIntersectingObject(Woodstock.class);
        
        if(meinWoodstock != null)
        {
            this.getWorld().removeObject(this);
            counter = counter +1;
        }
        if(counter==15)
        {
            getWorld().setBackground("Win snoopy.png");
            Greenfoot.stop();
        }
    }
    
    public void eatSnoopy()
    {
        if(canSee(Snoopy.class))
        {
            eat(Snoopy.class);
            getWorld().setBackground("GameoverMario.png");
            Greenfoot.playSound("Super Mario Dies Sound Effect.wav");
            Greenfoot.stop();
        }
    }
}
RedBaron
danpost danpost

2019/12/19

#
Fuph wrote...
<< Code Omitted >> RedBaron
I see some unrelated issues here; but let's continue. Show the Peanuts class next and any other upper class up to, but not including (of course) the Actor class.
Fuph Fuph

2019/12/19

#
Snoopy 
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Snoopy here.
 * 
 * @author (your name) "space".equals(Greenfoot.getKey()))
 * @version (a version number or a date)
 */
public class Snoopy extends Peanuts
{
    public void act() 
    {
        checkKeypress();
    {
        if("space".equals(Greenfoot.getKey()))
        {
            Woodstock meinWoodstock = new Woodstock();
            this.getWorld().addObject(meinWoodstock, this.getX(), this.getY());
            meinWoodstock.setRotation(getRotation());
            Greenfoot.playSound("Moorhuhn Original - Gameplay.wav");
            
        }
    }
    }    
    
    public void checkKeypress()
    {
        if(Greenfoot.isKeyDown("up"))
        {
            setRotation(270);
            move();
        }
        if(Greenfoot.isKeyDown("left"))
        {
            setRotation(180);
            move();
        }
        if(Greenfoot.isKeyDown("right"))
        {
            setRotation(0);
            move();
        }
        if(Greenfoot.isKeyDown("down"))
        {
            setRotation(90);
            move();
        }
    }
}

Woodstock import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Woodstock here. * * @author (your name) * @version (a version number or a date) * public void removeEnemy() { Actor a = getOneIntersectingObject(RedBaron.class); if(a != null) { getWorld().removeObject(this); } } */ public class Woodstock extends Peanuts { /** * Act - do whatever the Woodstock wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { this.move(10); if(this.isAtEdge()) { this.getWorld().removeObject(this); } } } Snoopy import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Snoopy here. * * @author (your name) "space".equals(Greenfoot.getKey())) * @version (a version number or a date) */ public class Snoopy extends Peanuts { public void act() { checkKeypress(); { if("space".equals(Greenfoot.getKey())) { Woodstock meinWoodstock = new Woodstock(); this.getWorld().addObject(meinWoodstock, this.getX(), this.getY()); meinWoodstock.setRotation(getRotation()); Greenfoot.playSound("Moorhuhn Original - Gameplay.wav"); } } } public void checkKeypress() { if(Greenfoot.isKeyDown("up")) { setRotation(270); move(); } if(Greenfoot.isKeyDown("left")) { setRotation(180); move(); } if(Greenfoot.isKeyDown("right")) { setRotation(0); move(); } if(Greenfoot.isKeyDown("down")) { setRotation(90); move(); } } } Peanuts import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Peanuts here. * * @author (your name) * @version (a version number or a date) */ public class Peanuts extends Actor { private static final double WALKING_SPEED = 2.0; /** * Konstruktor für Animal - ohne Aufgabe. */ public Peanuts() { } /** * Leere Methode. Tiere verfügen über keine Standardaktionen. */ public void act() { } /** * Dreht 'angle' Grad nach rechts (im Uhrzeigersinn). */ public void turn(int angle) { setRotation(getRotation() + angle); } /** * Rückt vorwärts in die aktuelle Richtung. */ public void move() { double angle = Math.toRadians( getRotation() ); int x = (int) Math.round(getX() + Math.cos(angle) * WALKING_SPEED); int y = (int) Math.round(getY() + Math.sin(angle) * WALKING_SPEED); setLocation(x, y); } /** * Prüft, ob wir nahe an einem der Ränder der Welt sind. Liefert true zurück, wenn ja. */ public boolean atWorldEdge() { if(getX() < 20 || getX() > getWorld().getWidth() - 20) return true; if(getY() < 20 || getY() > getWorld().getHeight() - 20) return true; else return false; } /** * Liefert true zurück, wenn wir genau dort, wo wir sind, ein Objekt der Klasse 'clss' sehen. * False, wenn dort kein solches Objekt vorhanden ist. */ public boolean canSee(Class clss) { Actor actor = getOneObjectAtOffset(0, 0, clss); return actor != null; } /** * Versucht, ein Objekt der Klasse 'clss' zu fressen. Dies ist nur erfolgreich, wenn dort, * wo wir gerade sind, ein solches Objekt vorhanden ist. Andernfalls macht diese Methode * nichts. */ public void eat(Class clss) { Actor actor = getOneObjectAtOffset(0, 0, clss); if(actor != null) { getWorld().removeObject(actor); } } } FinalScreen import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class FinalScreen here. * * @author (your name) * @version (a version number or a date) */ public class FinalScreen extends Actor { /** * Act - do whatever the FinalScreen wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. } } I hope this is correct
Fuph Fuph

2019/12/19

#
Oh sorry, I didnt put it in code form
danpost danpost

2019/12/19

#
Fuph wrote...
<< Code Omitted >> I hope this is correct
It appears you have some code in the Woodstock class that is not within the class brackets.
Fuph Fuph

2019/12/19

#
Oh no sorry, that was just a "note", I tried something and I didnt want to write everything new. thats not important I think
danpost danpost

2019/12/19

#
Fuph wrote...
Oh no sorry, that was just a "note", I tried something and I didnt want to write everything new. thats not important I think
Oh, it is part of the comment -- sorry. Well, I do not see any reason why a jar would not work.
There are more replies on the next page.
1
2