gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > DSOL, an OO library for ds, version 0.01

#169467 - vuurrobin - Tue Jul 14, 2009 12:08 am

hello everybody,

I am creating a library for the nds. it is object orientated, and easy to use while still allowing a lot of control if you want it. I have already done some stuff on it, but it still needs a lot of work. and therefore I have some questions:

1. [s]it currently has no name. I'm currently thinking about something like libDSOOP, but somewhere it sounds really stupid. does anybody have some ideas?[/s] and I'l probably need an icon sooner or later. (I chose the name DSOL (DS OOP Layer))

2. does the library seem good to use? (not to hard and not to limiting) there are still alot of things I need to do, but I want to know if I'm on the correct path here.

3. is the code well organised and commented? (apart from the fact that I'm including everything, I will fix this later)

4. are there any features that I should include or exclude?

5. I use vram A-D for sprites and backgrounds, and F-I for extended palettes. currently E is unused, any ideas on where I can use it for?

6. currently, the oam (and soon other stuff) is updated in a vblank function that the user has to call every time. another way to do this is by letting that function be called by an interupt. is there 1 way better than the other, or doesn't it matter that much. if its done by an interupt, then everything will stay upto date, but maybe it would get in the way of other stuff the user is doing or updating thing even if the user doesn't want it.

7. [s]there is a SimpleVector class in the library that is a smaller version of the std::Vector. however, it currently doesn't preserve the order of the items stored in it. is this okay, or should I change the class to preserve the order of the items. [/s] (SimpleVector has been renamed to LiteVector, and it preserves the order now)

8. currently, either the user or the sprite class needs to reserve a SpriteAffineMatrix index. originally this was to allow the user some control about which index he/she uses. but would it matter if the class reserves its own index without letting the user set it manually? you will still be able to get the index and use 1 matrix with multiple sprites, so I don't see a problem in this.


whew, that were the questions, and hopefully I can get some anwsers :)

anyway, here is an example on how you can put a sprite easely on the screen:

Code:
#include <DSOL.hpp>

//generated with grit
#include "pacman.h"
const uint                        pacmanOAMIndex      = 0;
const SpriteSize               pacmanSize              = SpriteSize_8x8;
const SpriteColorFormat        pacmanColorFormat    = SpriteColorFormat_16Color;


int main()
{
   using namespace DSOL;

        init2d();

   Sprites::Sprite pacman(pacmanOAMIndex,
                pacmanTiles, pacmanTilesLen, pacmanPal, pacmanPalLen, //generated with grit
                pacmanSize, pacmanColorFormat,
                true,               //main oam (defaults to top screen)
                false);             //no rotation, scaling ect

   pacman.setPosition(10, 10);
   pacman.setVerticalFlip(true);
   pacman.setFrame(1);//frames start with 0, so this is the 2nd frame
   pacman.update();

   sleepForever();//updates the oam and then runs an endless loop.

        return 0;
}


and here is a page with downloads, documentation and installing instructions:

http://vuurrobin.100webcustomers.com/?page_id=2

and a direct link to the doxygen documentation:

http://vuurrobin.100webcustomers.com/DSOL/docs/



so, what do you guys/girls think.


Last edited by vuurrobin on Thu Sep 10, 2009 7:20 pm; edited 1 time in total

#169883 - vuurrobin - Sat Aug 08, 2009 8:22 pm

I have released a new version of the library. the library has been named DSOL (DS OOP Layer) (thanks fincs for that), it is now an actual library instead of some header files, documentation has been generated with doxygen and examples has been created and included with the library.

I haven't changed anything big at the library, but I've improved a lot of small stuff and fixed alot of bugs.

I have also started a blog with a page about DSOL with download links, an online version of the documentation and instructions on installing it.


here is the page with downloads, documentation and installing instructions:

http://vuurrobin.100webcustomers.com/?page_id=2

and here is a direct link to the doxygen documentation:

http://vuurrobin.100webcustomers.com/DSOL/docs/

#170238 - vuurrobin - Thu Sep 10, 2009 7:21 pm

It took me a bit longer than expected, but a new version of DSOL is out.

changelog:

    -added code for using keys and touchscreen
    -changed IUpdater name to IUpdate, to be consistend with the update function
    -changed the update function so that it returns a reference of itself
    -changed AffineMatrix to have more functions, like getting the scale of a sprite
    -improved documentation


download is on the DSOL page (see first post, my previous post or the link in my sig).
_________________
my blog:
http://vuurrobin.100webcustomers.com/