Sign in to follow this  
superman3275

I present: SFML SimpleGUI v1.0

Recommended Posts

Hey guys, since I made pong I've been trying to make breakout, but I ran into problems with making a GUI. After a lot of thinking I decided to just make my own Set of Re-Usable classes for Render_Buttons's, Render_Menu's, and Render_Objects (So much more to be added, I've only had today to work on this!), all classes are easily customizable, of course. (Render_Object is there to establish a base for Render_Menu's and other parts of the GUI). It hasn't been completely tested yet, but fixing any bugs should be pretty easy for even a beginner to SFML. I'm having it autoupdate too!
[url="https://www.dropbox.com/sh/zrhgtq26e0gsvbs/X2offHcfHG"]DROPBOX DOWNLOAD[/url] (Download GUI_FRAMEWORK Folder)

This was just for personal use for me, but I figured why not let other beginners have it, so they don't have to figure this out themselves. I'll try to update it at least once a week with new features, but I'm hard at work on other games too right now.

Share this post


Link to post
Share on other sites
I think this thread belongs in the "Your Announcements" forum, but anyway:

If you want to present something that others will actually want to use, you need to start with good documentation. Without that, I doubt that anyone will even take a look at it.

Also, you should host your project on a service like github, which was designed for that. Edited by Goran Milovanovic

Share this post


Link to post
Share on other sites
Well I'm taking a look at it hehe. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
Just started looking at your Render_Button class.

If you use "using namespace sf" you don't need to put the 'fs::' infront of each fs function. [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]
Also when you start with animations there are some times you want to 'update' your Button.
Example: [url="http://www.yasudastudio.com/211ButtonBlu/ButtonBlueWM1.gif"]http://www.yasudastu...ttonBlueWM1.gif[/url]

so just call it: class Button. Render_Button seems like the button only can render. but has no actions. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] Naming classes is a hard part for me also [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img]

My Button looks something like this:
[CODE]class Button
{
public:
Button(int posX, int posY);
Button(Image& image, int posX, int posY);
~Button();

void Update();
void Draw();
bool IsHit(); // returns true if you hover your mouse over the button
bool IsPressed(); // returns true if you pressed with your left mouse button on the button

private:
int m_PositionX, m_PositionY;
Image m_Image;
int m_AnimationSpeed; // this name is terrible xD
};[/CODE]

Your button class is decent! [img]http://public.gamedev.net//public/style_emoticons/default/happy.png[/img] Features can be: rotating trough matrices, move in a formation, etc
I'm not going to look at your other classes, I don't have plenty of time left. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]


~EngineProgrammer

Share this post


Link to post
Share on other sites
Thanks for the tips, I'll try GitHub and some Documentation, but there's only 3 actual classes with very few functions, so I doubt it's hard to understand, but I guess I should start documentation now.
EDIT: Visual C++ 2010 keeps button as a Restricted Classname, so I set it to Render_Button because I didn't want to come up with a good name, sorry ;) Edited by superman3275

Share this post


Link to post
Share on other sites
[quote name='superman3275' timestamp='1349036529' post='4985474']
Visual C++ 2010 keeps button as a Restricted Classname, so I set it to Render_Button because I didn't want to come up with a good name, sorry ;)
[/quote]
That's where namespaces and/or prefixes come in. :)
SFML has the "sf" namespace to not confuse things like class names.
You could, for example, make a namespace "sg" standing for "Simple GUI".
[CODE]
namespace sg {
class Button {

};
}
[/CODE]
Or you could make a prefix.
[CODE]
class sgButton {

};
[/CODE]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this