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

2017/5/3

Create Title Page

suge5 suge5

2017/5/3

#
Hi ALL, I want to create a title page, that once pressed leads to an instructions page, that once pressed turns into the game....at the bottom I have my attempts commented out, but im real confused.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
public class FrogWorld extends World
{
    Counter counter = new Counter("Score: "); //creates string to display you cumulative score
    Counter FrogLife = new Counter("Frogs Remaining: "); //Creats counter displaying the amont of frogs keft  
    private GreenfootSound Music = new GreenfootSound("Greenfoot Song.mp3"); //adds a background song to the game
    public FrogWorld(){   
        super(600, 600, 1); //create the area for the game to be played
        createWorldObjects(); // calls the method createWorldObjects
    }
    public void act() {
        //Background();
        //showMessage();
        scores(); //calls the method of scores
    }
    public void countHit(FrogsHit hit){
        counter.add(hit.getCount());
    }
    public void lose(){
        if(FrogLife.getValue()==1){ // if you have no lives left
            addObject(new ScoreLose(counter.getValue()), getWidth()/2, getHeight()/2); //displays a scoreboard from the ScoreLose class
            Greenfoot.playSound("Lose.wav"); //plays a clip that says "you lose"
            Greenfoot.stop(); // and stops the greenfoot game
        }
        else{ //if you have more than a life left
            FrogLife.subtract(1); //it takes away one life from
        }
    }
    public void win(){
        if(FrogLife.getValue()>=1 && FrogLife.getValue() < 10){ // if you have more than 1 life and less than 10
            FrogLife.add(1); //you are given an extra life when heart is hit
        }
    }
    private void createWorldObjects(){
        addObject(new FrogHunter(), 300,300); //calls frog hunter and starts baseball bat in middle of scree 
        addObject(counter, 90, 560); //shows the counter of score at places it on screen
        addObject(FrogLife, 170, 540); // shows "frogs left: " on screen and places in bottom corner
        FrogLife.add(5); //adds 5 lives to begin the game
    
    public void scores(){
        int score = counter.getValue(); // creates variable score which is the value of the counter
        int num = Greenfoot.getRandomNumber(100); // sets random number between 1-100     
        int num1 = Greenfoot.getRandomNumber(100); // sets random number between 1-100  
        int num2 = Greenfoot.getRandomNumber(200); // sets random number between 1-200
        int num3 = Greenfoot.getRandomNumber(750); // sets random number between 1-750
        if (score <= 250 ){ //whenever score is below or at 250
            if(num > 1 && num < 5){    
                addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-5 
            }
        }
         if (score > 250 && score <= 500){ //whenever score is between 250-500
            if(num > 1 && num < 6){   
                addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-6 
            }      
            if(num2 == 1 || num2 == 2){   
                addObject(new Fish(), Greenfoot.getRandomNumber(599), 600); //adds a fish when the random number is equal to 1 or 2
            }
        }
        if (score > 500 && score <= 2000){ //whenever score is between 500 and 2000
            if(num > 1 && num < 7){   
                addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-7 
            
            if(num2 == 1 || num2 == 2){   
                addObject(new Fish(), Greenfoot.getRandomNumber(599), 600); //adds a fish when the random number is equal to 1 or 2  
            }
            if(num2 == 3 || num2 == 4){   
                addObject(new PolarBear(), Greenfoot.getRandomNumber(599), 600); //adds a polar bear when the random number is equal to 3 or 4 
            }
        }
        if(score >= 0 && score < 3000){ //between 0 and 3000 or anytime game is being played
            if(num3 == 375){   
                addObject(new Fly(), 600, Greenfoot.getRandomNumber(599)); // adds a fly whenever random number 3 equals 1
            }
        }
        if (score > 2000 ){ //whenever score is above 2000
            if(num > 1 && num < 8){   
                addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-8  
            }
            if(num2 == 1 || num2 == 2){   
                addObject(new Fish(), Greenfoot.getRandomNumber(599), 600);   //adds a fish when the random number is equal to 1 or 2
            }
            if(num2 == 3|| num2 == 4){   
                addObject(new PolarBear(), Greenfoot.getRandomNumber(599), 600);  //adds a polar bear when the random number is equal to 3 or 4
            }
        }
        if (score == 499 || score == 999 || score == 1499 ||score == 1999 || score == 2499){
            addObject(new Life(), Greenfoot.getRandomNumber(599), 600); //adds a new heart (for new life) every 500 points
        }
        if((FrogLife.getValue()>=1  && score >= 3000)){ //if you have a life and a score above 3000
            addObject(new ScoreWin(counter.getValue()), getWidth()/2, getHeight()/2); //displays score board from the score win class
            Greenfoot.playSound("pop.wav"); //plays a winnner sound
            Greenfoot.stop(); //stops the game
        }
    }
        public void started(){
        Music.playLoop(); //startes playing the music
    }
    public void stopped(){
        Music.stop(); //stops playing the music
    }
    // public void Background(){
         // setBackground(new GreenfootImage("images.png"));     
    // }
    // public void showMessage(){
        // Font font = new Font("Comic sans", Font.BOLD, 30);
        // GreenfootImage BackGround = getBackground();
        // BackGround.setColor(Color.BLACK);
        // BackGround.setFont(font);
        // BackGround.drawString("Press Anywhere To Start", 120, 25);
    // }
    // public void createBackground(MouseInfo press){
        // while(G.mouseClicked(press))
        // {
           // setBackground(new GreenfootImage("LilyPad.jpg"));
        // }
        // while(Greenfoot.mouseClicked(press))
        // {
           // setBackground(new GreenfootImage("Pond.jpg"));
        // }
    // }
 
        // public void winner(){
        // int score = counter.getValue();
        // if((FrogLife.getValue()>=1  && score >= 5000)){
            // addObject(new ScoreWin(counter.getValue()), getWidth()/2, getHeight()/2);
            // Greenfoot.playSound("Pop.wav");
            // Greenfoot.stop();
        // }
    // }
danpost danpost

2017/5/3

#
Just use different worlds for the title and instruction pages. Start with the title world. When the 'Run' button is pressed, change to an instruction world (make use of the 'started' method in the title world to set a new instruction world active):
1
2
3
4
public void started()
{
    Greenfoot.setWorld(new Instructions(new FrogWorld()); // world to set active after instructions world as parameter
}
Add a field to the instruction world:
1
private World game;
to hold any current game in progress. Change the constructor to something like this:
1
2
3
4
public Instructions(World world)
{
    game = world;
}
and add an act method to the Instructions class for going to game world:
1
2
3
4
public void act()
{
    if (Greenfoot.mouseClicked(this)) Greenfoot.setWorld(world);
}
Now, if the user is able to view instructions during the game, you can use this:
suge5 suge5

2017/5/4

#
Hi, Thanks for all the help, but what I want it to do is... Go from a picture at the start saying "press anywhere to start" Then, a picture of the instructions "That says start to play" And finally the game.
  • public class FrogWorld extends World { Counter counter = new Counter("Score: "); //creates string to display you cumulative score Counter FrogLife = new Counter("Frogs Remaining: "); //Creats counter displaying the amont of frogs left //private World game; private GreenfootSound Music = new GreenfootSound("Greenfoot Song.mp3"); //adds a background song to the game public FrogWorld(){ super(600, 600, 1); //create the area for the game to be played createWorldObjects(); // calls the method createWorldObjects } public void act() { //Background(); //showMessage(); //if (Greenfoot.mouseClicked(this)) Greenfoot.setWorld(world); scores(); //calls the method of scores } public void countHit(FrogsHit hit){ counter.add(hit.getCount()); } public void lose(){ if(FrogLife.getValue()==1){ // if you have no lives left addObject(new ScoreLose(counter.getValue()), getWidth()/2, getHeight()/2); //displays a scoreboard from the ScoreLose class Greenfoot.playSound("Lose.wav"); //plays a clip that says "you lose" Greenfoot.stop(); // and stops the greenfoot game } else{ //if you have more than a life left FrogLife.subtract(1); //it takes away one life from } } public void win(){ if(FrogLife.getValue()>=1 && FrogLife.getValue() < 10){ // if you have more than 1 life and less than 10 FrogLife.add(1); //you are given an extra life when heart is hit } } private void createWorldObjects(){ addObject(new FrogHunter(), 300,300); //calls frog hunter and starts baseball bat in middle of scree addObject(counter, 90, 560); //shows the counter of score at places it on screen addObject(FrogLife, 170, 540); // shows "frogs left: " on screen and places in bottom corner FrogLife.add(5); //adds 5 lives to begin the game } public void scores(){ int score = counter.getValue(); // creates variable score which is the value of the counter int num = Greenfoot.getRandomNumber(100); // sets random number between 1-100 int num1 = Greenfoot.getRandomNumber(100); // sets random number between 1-100 int num2 = Greenfoot.getRandomNumber(200); // sets random number between 1-200 int num3 = Greenfoot.getRandomNumber(750); // sets random number between 1-750 if (score <= 250 ){ //whenever score is below or at 250 if(num > 1 && num < 5){ addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-5 } } if (score > 250 && score <= 500){ //whenever score is between 250-500 if(num > 1 && num < 6){ addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-6 } if(num2 == 1 || num2 == 2){ addObject(new Fish(), Greenfoot.getRandomNumber(599), 600); //adds a fish when the random number is equal to 1 or 2 } } if (score > 500 && score <= 2000){ //whenever score is between 500 and 2000 if(num > 1 && num < 7){ addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-7 } if(num2 == 1 || num2 == 2){ addObject(new Fish(), Greenfoot.getRandomNumber(599), 600); //adds a fish when the random number is equal to 1 or 2 } if(num2 == 3 || num2 == 4){ addObject(new PolarBear(), Greenfoot.getRandomNumber(599), 600); //adds a polar bear when the random number is equal to 3 or 4 } } if(score >= 0 && score < 3000){ //between 0 and 3000 or anytime game is being played if(num3 == 375){ addObject(new Fly(), 600, Greenfoot.getRandomNumber(599)); // adds a fly whenever random number 3 equals 1 } } if (score > 2000 ){ //whenever score is above 2000 if(num > 1 && num < 8){ addObject(new SwimmingFrog(), Greenfoot.getRandomNumber(599), 600); //adds a frog whenever the random number is between 1-8 } if(num2 == 1 || num2 == 2){ addObject(new Fish(), Greenfoot.getRandomNumber(599), 600); //adds a fish when the random number is equal to 1 or 2 } if(num2 == 3|| num2 == 4){ addObject(new PolarBear(), Greenfoot.getRandomNumber(599), 600); //adds a polar bear when the random number is equal to 3 or 4 } } if (score == 499 || score == 999 || score == 1499 ||score == 1999 || score == 2499){ addObject(new Life(), Greenfoot.getRandomNumber(599), 600); //adds a new heart (for new life) every 500 points } if((FrogLife.getValue()>=1 && score >= 30)){ //if you have a life and a score above 3000 addObject(new ScoreWin(counter.getValue()), getWidth()/2, getHeight()/2); //displays score board from the score win class Greenfoot.playSound("pop.wav"); //plays a winnner sound Greenfoot.stop(); //stops the game } } public void started(){ Music.playLoop(); //startes playing the music } public void stopped(){ Music.stop(); //stops playing the music } // public void Background(){ // setBackground(new GreenfootImage("images.png")); // } // public String Instructions(World world){ // game = world; // } // public void started(){ // Greenfoot.setWorld(new Instructions(new FrogWorld())); // world to set active after instructions world as parameter // } } // public void showMessage(){ // Font font = new Font("Comic sans", Font.BOLD, 30); // GreenfootImage BackGround = getBackground(); // BackGround.setColor(Color.BLACK); // BackGround.setFont(font); // BackGround.drawString("Press Anywhere To Start", 120, 25); // } // public void createBackground(MouseInfo press){ // while(G.mouseClicked(press)) // { // setBackground(new GreenfootImage("LilyPad.jpg")); // } // while(Greenfoot.mouseClicked(press)) // { // setBackground(new GreenfootImage("Pond.jpg")); // } // }
danpost danpost

2017/5/4

#
The started method along with the 'world' field should go in your title screen world (the picture saying "press anywhere to start"). Manually create the world after you move them into it. See my last post as to what to put in the Instructions world class.
You need to login to post a reply.