Tuesday, June 29, 2010

Version 2 In Development

Right now I'm converting the whole project to a neater and more portable GameComponent so it does all of its work behind the scenes so you don't have to manually call the methods. I'm hoping to bring some big improvements that will really make the library more useful. I'll be posting more updates as I get more done but for now here's a list of things I plan to implement.

*Add portable components that can be used in other projects and are not dependent on the rest of the library, e.g. Framerate counters and other statistics gathering classes
*Storage handlers - This is primarily for the Xbox 360 but it will have its uses on the Windows platform.
*Xbox Guide helper
*Possibly an Exception handler class
*I'm going to try and create a primitives class that will make it easier to draw things such as boxes or lines - most likely will be strictly for debugging until I learn how to make it efficient at drawing a large quantity of them. Will be useful for things like collision detection.
*Data Serialization - I'd like to add a different way of serializing and deserializing data in other types of files other than XML since xml to me is a bit annoying to setup for serializing. Obviously it probably won't be as complex and will mainly be used for something such as writing scores to a file or simple user settings

Hopefully I'll come up with more stuff to add. Again if anyone has any ideas or comments email me! I'd love to hear anyone's ideas on what to add or just what they think of the project in general.

Sunday, June 27, 2010

Version 1.3 is up for download

Version 1.3 is up for download on the codeplex page along with the documentation for it.

Friday, June 25, 2010

V1.3 Update

I've just finished the new and improved Animation class. It is a complete rewrite from the old one.

Now supports:
*2 Dimensional Sprite Sheets - NOTE: They have to be even, if you have a 5x5 sprite sheet it must have 25 frames i plan to change this in the future.
*Allows an array of integers to be passed that controls how long that particular frame will be displayed. If you have 5 frames the array would look like...
int[] times = new int[] { 10,20,50,1,100 };
This will be make the first frame last for 10 milliseconds, the 2nd for 20 and so forth. All times are measured in Milliseconds.
*Positions are based off of Origin, however you can choose to draw as if it were at the upper left corner of the frame.
*You can choose to play between 2 sets of frames, eg for an attack you could have the inital attack and then something else. E.G.. animation.Play(1,5,6,10); This will play frames 1- 5 ONCE then loop through frames 6 - 10 until it is stopped. I'm going to add a feature that lets you decide weather it will loop the 2nd time or just stop as well.

There are numerous other updates and I will be writing a documentation for it when I release it. All of the code is documented so it shouldn't be very hard to read. It is not perfect at the moment though, I will be working to make it more efficient as I work on this release and future releases.

Again if anyone has any ideas or requests of things they would like added to the library please Email me at AB4@comcast.net

Happy Coding

Wednesday, June 23, 2010

V1.3 Update

Right now I'm working on V1.3, probably would have had it out sooner but I've been mainly working on my game and a few technique tests but I hope to have it released in a couple of days. Things I plan to add.

New ways to access items from the Variables class, eg a Load method so you do not need to use Variables.Content.Load ect instead you would just do Variables.Load(string)
Not sure how useful it will be but I've found it annoying as I've been using it in my game.

Several improvements to the animation class to make it much more flexible.
Right now I'm adding 2 dimensional sprite sheet support, more specific loop control such as first loop play frames 2-5 then on the second loop play frames 3 - 5. I'm not sure if I will get it working in this release but I would like to add the option to add how long to display each frame so if you have an idle animation that goes into a animation or one frame is very long you will only need to specify that in code and not make 30 copies of the same frame.

Sunday, June 20, 2010

Examples

I'm running low on ideas for the library so if anyone has any please email me.
Right now I'm working on my own game and have created my own little version of the library with things I've found that I've needed but most of it is propriety and cant be made universal so I might just make some tutorials on how you can modify it to suit your needs.

I plan to add things like a Sound manager class once I learn more about using them efficiently, upgrade the Animation class to support 2 dimensional sprite sheets and more control such as at the start playing frames 1 - 5 then loop through frames 3 - 5

Tuesday, June 15, 2010

V1.2 Released

V1.2 is now up for download on the codeplex page. I will be updating the documentation on the codeplex page right after I post this so it should be fully updated by the time anyone sees it.

Monday, June 14, 2010

Dev Update 6/14/2010

X86 upgrades to the project are done. Working on the Xbox changes, mainly just cut and paste from the X86 version with a few new features.

*Adding new extension setup for Rectangle and Texture2D extenders. The namespace is now split into 3 namespaces.

*AndrewsXnaHelpers.Extenders
-Contains extenders for calculations, can be used with other namespaces
*AndrewsXnaHelpers.Extenders.IndependentDrawing
-Contains draw methods for both Texture2D and Rectangles and call their own SpriteBatch.Begin and End 
*AndrewsXnaHelpers.Extenders.DependentDrawing
-Contains draw methods for both Texture2D and Rectangles, uses the passed spritebatch to draw. Begin and end must be called before and after a draw is called.

NOTE: The 2 drawing namespaces technically can be used together since they all have different arguments but I would recomend using one or the other. note that it can be more efficient to have a minimum number of SpriteBatch.Begin and End calls.

I plan to have it uploaded sometime tomorrow onto the codeplex website and I will have the documentation updated shortly after

Sunday, June 13, 2010

Dev Update 6/13/2010

Right now I'm running short on ideas and am currently working on my own game so I haven't been adding many new things. Since I've been using it in my game I've come up with some things to add that will hopefully make it more useful.

*Spritebatch dependent and independent - Since SpriteBatch.Begin and End can be costly if used in excess amounts I'm going to have 2 copies of the extenders namespace that are used for drawing, one has the begin and end included while the other will just draw it and use the begin and end that you called around it.

*Reference to the Game class - will make exiting the game and probably other things that I can't think of at the moment easier to do. A method has been implemented into the Variables class that will close the game.

These are the main ones, hopefully I will be able to come up with some other things to add or change. If anyone has any ideas please post or email me at AB4@comcast.net

Wednesday, June 9, 2010

Version 2 Update

For now I think I'm going to abandon the Screen Manager, after coding pieces of it and thinking of ways to make it useful in different situations I've decided to not implement it into the library. Instead, I will be posting tutorials and samples on how to create them in my Xna Tutorials blog. Link in sidebar.

Version 2 In development

I'm currently working on Version 2 for both Windows and the Xbox 360.
Right now I'm working on developing a screen manager that will have screens that are Xml Serializable so that one day I might be able to make an Editor for them. Once I get that done I will work on polishing it, e.g. making it fade to black when going to a different screen ect...
Hopefully once that is done I will be able to get a XboxGuide class working for the Xbox 360 version to aid in showing a players friends list and I plan to add a Gamertag helper to assist in getting things such as GamerPicture, Gamertag, and so forth.

Version Release

Version 1.1 has been released!
It now is written in for both Windows and the Xbox 360.
Additions can be found on the codeplex website along with the documentation but I will list a few here.

Windows & Xbox
Bar and Box manager
More texture2D and rectangle extenders
Xbox only
Methods for having the user select a storage device

There are links on the sidebar to the codeplex project along with one that goes directly to the documentation.

Dev blog

Development for my Xna Helpers project