Skip to main content
GameDev.net gamedev.net
🔒 Locked

C++ Function to center image?

Started by dynamiteandy Apr 5, 2013 at 2:27 PM 1 replies 5.8k views
Original Post
dynamiteandy
dynamiteandy

Hey,
So i'm working with a game engine that was wrote by charles kelly for his book programming 2D games.

His engine is rather good, however positioning images is rather bad as it does it as x = left corner and y = top of image
I don't want to do the maths to center an image in the position x,y i'd much rather write a function for it..

there's already functions for getting the center x and center y.

however how would i go about writing a function so that it takes int x, int y and moves the image so that its center is x,y?


// Return center X.
    virtual float getCenterX()      {return spriteData.x + spriteData.width/2*getScale();}

    // Return center Y.
    virtual float getCenterY()      {return spriteData.y + spriteData.height/2*getScale();}

// getScale() incase needed
// Return scale factor.
    virtual float getScale()    {return spriteData.scale;}

14o6l9e.png

The image to above shows what im after..

red = current setting.

blue = what im after

SimonForsman
SimonForsman

I think this should work.


virtual void setCenteredPosition(float x, float y) {
    spriteData.x = x - spriteData.width/2*getScale();
    spriteData.y = y - sprideData.height/2*getScale();
}
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.