Author Topic: Sparta GUI Library *Alpha*  (Read 5358 times)

0 Members and 1 Guest are viewing this topic.

Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Sparta GUI Library *Alpha*
« on: December 20, 2011, 11:36:35 pm »
Hello omnimaga, it's thydowulays here! I have decided to make a complete GUI library for Axe with (I'm planning to) have every GUI feature that is in DoorsCS 7. This project currently has:

- Perfect flickerless drawing and a legit library
- Several commands
- Only one program needed to use the library, just add prgmSPARTA at the bottom of your project after the Return statement

The commands are as follows: NOTE that commands with a * are still in development and are not featured in the Sample project for a reason.

DRF(r1) - This command draws a frame with r1 being a string. r1 is drawn to the top of the frame, as a title
DRB(r1,r2,r3,r4,r5,r6) : This command draws a button. r1 is the X position, r2 is the Y position, r3 is the button width, r4 is the button height, r5 is the text in the button, and r6 is a boolean (0 or 1), 0 making it a normal button, 1 making it an inverted button
DRM(r1,r2) : This command displays a mouse on the screen at positions X(r1) and Y(r2). I recommend you replace the r1 and r2 with a variable that you can change with getkey(1 2 3 and 4) statements.
CLR() : This command is added at the BEGINNING of your Repeat loop in your program or whatever your main loop is for no flickering
BUFF() : This command buffers the objects on the screen, and passes through the CLR() command to make them update, or move
DRDIA(r1,r2,r3,r4,r5) : As of Update #1, this command is finished. It displays a message dialog on the screen much like in DoorsCS 7.

This is indeed a library, not a program with subroutines in it.

First library release, sample project, and screenie are below. Tell me what you think of it! :) P.S. prgmSPARTA is the actual library, prgmTEST is the Sample project

Update #1 is out! Link here: http://ourl.ca/14569/273147

« Last Edit: December 21, 2011, 12:51:27 pm by thydowulays »
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #1 on: December 21, 2011, 12:07:32 am »
Bump for epicness?
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline saintrunner

  • Custom Spriter: You ask it! I'll Make it!
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1787
  • Rating: +115/-11
  • Flogging Molly
    • View Profile
    • Jonny K Music
Re: Sparta GUI Library *Alpha*
« Reply #2 on: December 21, 2011, 12:16:56 am »
looks pretty good :) I'll be checking out that code tomorrow ;)
My Sprites Thread   :Updated often :) for your viewing pleasure

GAMES:

Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #3 on: December 21, 2011, 12:19:34 am »
okay. I'm going to really start working on the DRDIA() command now. I plan to make it look like DoorsCS 7 dialog boxes, with the library's own little twist :)
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #4 on: December 21, 2011, 12:39:53 pm »
Update #1

In this update, I have completed the DRDIA() function.
It now has:
- 5 arguments: r1 is the title text, r2, r3, and r4 being the text inside the box, and r5 being whether its visible or not. 0 meaning it isn't, 1 meaning it is
- Fast popping up
- Flickerless
- Comes with everything you expect from a dialog box  :P

Enjoy the update! Screenie and downloads below.

Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline LincolnB

  • Check It Out Now
  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1115
  • Rating: +125/-4
  • By Hackers For Hackers
    • View Profile
Re: Sparta GUI Library *Alpha*
« Reply #5 on: December 21, 2011, 12:47:59 pm »
Wait, this is a library, but it's not a program with subroutines in it? How does that work?
Completed Projects:
   >> Spacky Emprise   >> Spacky 2 - Beta   >> Fantastic Sam
   >> An Exercise In Futility   >> GeoCore

My Current Projects:

Projects in Development:
In Medias Res - Contest Entry

Talk to me if you need help with Axe coding.


Spoiler For Bragging Rights:
Not much yet, hopefully this section will grow soon with time (and more contests)



Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #6 on: December 21, 2011, 12:49:29 pm »
Lol, Sparta is a library itself. That means its not an actual program that you can compile in Axe that has subroutines on the bottom. Meaning it has to have another program for it to be compiled
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline LincolnB

  • Check It Out Now
  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1115
  • Rating: +125/-4
  • By Hackers For Hackers
    • View Profile
Re: Sparta GUI Library *Alpha*
« Reply #7 on: December 21, 2011, 12:53:04 pm »
Gotcha. So it works the same way as Zedd.
Completed Projects:
   >> Spacky Emprise   >> Spacky 2 - Beta   >> Fantastic Sam
   >> An Exercise In Futility   >> GeoCore

My Current Projects:

Projects in Development:
In Medias Res - Contest Entry

Talk to me if you need help with Axe coding.


Spoiler For Bragging Rights:
Not much yet, hopefully this section will grow soon with time (and more contests)



Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #8 on: December 21, 2011, 12:55:10 pm »
Exactly, I tried making this before, but after taking a look at Zedd I saw that that way was much more lightweight and efficient :)
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Sparta GUI Library *Alpha*
« Reply #9 on: December 21, 2011, 03:25:11 pm »
I'm pleased Zedd made an impact on you ^^  And this project is looking good! 

One question though, you included clrDraw() and clrDraw()r in your CLR() routine, even though none of your drawing routines use the backbuffer.  Similarly, in your BUF() command (which seems to only update the screen?) you have both DispGraph() and DispGraph()r.  This will actually display the screen twice, and a different way each time, which I do believe should cause flicker.  The first DispGraph displays normally, so all the text should be black, but the second DispGraph()r is a greyscale display routine, and since the backbuffer is clear, all of your text and graphics will be dithered. 

My suggestion in regards to the CLR() and BUF() commands is to let the user take care of when they wan't to update or clear the screen.  Most programs are going to include those commands anyway, so there is no reason to put them in a subroutine unless you are executing some custom code to do some special display.

Other than that though, this is looking good!  I assume you plan to keep the library in monochrome and not expand it to greyscale?

Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #10 on: December 23, 2011, 03:54:32 pm »
Thank you BuilderBoy! Actually, the reason I have ClrDraw and ClrDrawr in there is to keep it completely compatible with other users custom GUI. Meaning, If there is a feature thats not in Sparta, and it uses grayscale, Sparta can take care of it. I'm thinking of keeping it in Monochrome yes, but it may include greyscale. Also, the reason I included the CLR() and BUFF() commands is to keep it flickerless for the most part, because before including those I couldn't use the built in mouse command because it would flicker. But yes, Zedd really had an influence on this project, I greatly admire your work :)
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Sparta GUI Library *Alpha*
« Reply #11 on: December 23, 2011, 04:00:11 pm »
Why would it flicker if the user clears and displays the screen themselves?  They would be using the same exact routines.  Also, displaying the screen twice with two different display routines is going to make flicker itself.  In addition, you say you wanted to include the backbuffer routines to improve compatibility, but what if the user wanted a constant greyscale background image?  By using your own CLR() routine, they would have to redraw it every frame, whereas if they were given control of clearing and displaying the buffers themselves, they would be able to just keep the image on the backbuffer.  Not to mention it would be smaller and faster. 

Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #12 on: December 23, 2011, 04:02:24 pm »
Hmm, I'm quite confused by this. I am pretty new to Axe so I don't know a lot of the features. But the users don't have to use the commands. How are you suggesting I change the CLR() and BUFF() commands?
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus




Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Sparta GUI Library *Alpha*
« Reply #13 on: December 23, 2011, 04:04:12 pm »
I would suggest not including them at all, as it is smaller, faster, and provides more compatibility to simply let the user take care of clearing and displaying the screen themselves. 

Offline thydowulays

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 184
  • Rating: +12/-1
  • Don't gimme dat lip
    • View Profile
    • Thy Gaming Forum
Re: Sparta GUI Library *Alpha*
« Reply #14 on: December 23, 2011, 04:06:53 pm »
Okay, thanks. Do you have any suggestions for any new commands? I'm trying to do as much as possible
Current Projects:
-Sparta GUI Library: 25% - Alpha Stage
-Grapher - 75% - Beta Stage *on hiatus