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

2011/11/28

Opinions on Greenfoot?

wch wch

2011/11/28

#
I'm an undergrad doing some research on educational software to teach computer science, and I'm really interested in opinions from students, teachers, etc. What are your favorite and least favorite things about Greenfoot? What would you improve about Greenfoot (or redesign entirely) if you had the chance? Are there any inherent limitations on what Greenfoot can do? What types of projects, age groups, and kinds of students do you think Greenfoot is best suited for? Thanks for your time!
Morran Morran

2011/11/29

#
Greenfoot seems well suited to teach anybody. It's a great program. However, there are a few things that I would like to see changed in the future: Changes in the Code Editor: Right now, holding control(ctrl) while moving your cursor through the code makes your cursor skip past words. That's pretty good (example, in: " myInstanceVariable.attack(); ", it skips past " attack ", and stops on " ( ". Right now, it stops every symbol(". , / * - etc.), and every new word(the first letter after a space or symbol). If they could make it also stop at every new uppercase letter(in "myInstanceVariable" the cursor would stop twice), I would be very happy. Also, when holding ctrl and moving the cursor back, it seems to stop one character too far(it normally stops past the semicolon in "doSomething();"). But these are just small changes that you only notice if you code a lot. Changes in the program itself: A speed dial based upon frames per second instead of (what is it based on now? Something logarithmic?). It isn't very intuitive now, and doesn't give you fine control over speed. I also have noticed that a lot of people ask how many act() cycles happen per second, and having speed be off of frames per second would clear that up. An Actor that doesn't need an image. Sometimes you want a music handler, or an object spawner, that really should be invisible to the player of your game. Right now, you have to use an image, no ifs, ands, or buts about it. Although this is a long response, which makes it seem like I want a lot changed, it just means that I am trying to be more precise so that as little changes as possible. Like I said before, Greenfoot is great. It's gotten better with time. If I taught a computer science class, I'd definitely teach it using Greenfoot.
Morran Morran

2011/11/29

#
-Oh. And a keyReleased(String key) function in Greenfoot. Right now there is just a last key pressed function. A Greenfoot.keyReleased(String key) would be great.
davmac davmac

2011/11/29

#
Morran - you can get rid of the actor image by calling "setImage((GreenfootImage) null);" in the actor's constructor.
Morran Morran

2011/11/29

#
Oh. I didn't know that you could do that. I just thought that you had to set the transparency to zero, and thought that maybe there was a better way. By the way, is there any way to make an Actor that can't act? It would still have an image, and be able to be removed from the world, but wouldn't have an act() method, and so wouldn't eat up cpu time, like, for logs or other decorations for your game?
kiarocks kiarocks

2011/11/29

#
Yep, get rid of the act() method.
davmac davmac

2011/11/29

#
Honestly, you would need a *lot* of objects with an empty act method before it had any noticeable effect on cpu. If it was really a problem, you could draw stuff on to the world background, managing that separately from the actors. But, by the time you've got that far, and if you're that worried about performance, maybe it's time to move on from Greenfoot! It was designed for beginners and the API is deliberately kept simple. (If you do want to discuss it further, maybe you should start a new topic, too).
kiarocks kiarocks

2011/11/29

#
Greenfoot is suited for kids and adults beginning programming.
darkmist255 darkmist255

2011/11/29

#
Morran wrote...
-Oh. And a keyReleased(String key) function in Greenfoot. Right now there is just a last key pressed function. A Greenfoot.keyReleased(String key) would be great.
There's a very simple workaround for this in Greenfoot. Check if key is pressed, set variable "pressed" to true. Then, if "pressed" is true and the key is not pressed, you know it has just been released. Yeah I really think Greenfoot is great for almost anyone. More on topic, the only real limitation (that I know of) is that you don't have 100% control over the window and the act button etc, but that's a very minor concern. It's the perfect tool to learn with, especially with the act() method. I wouldn't get by without it. It also has a really nice API to get you started, and then some more advanced stuff in the API too.
You need to login to post a reply.