Sprite.hpp
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_SPRITE_HPP
26#define SFML_SPRITE_HPP
27
29// Headers
31#include <SFML/System/Resource.hpp>
32#include <SFML/Graphics/Drawable.hpp>
33#include <SFML/Graphics/Rect.hpp>
34
35
36namespace sf
37{
38class Image;
39
44class SFML_API Sprite : public Drawable
45{
46public :
47
52 Sprite();
53
64 explicit Sprite(const Image& Img, const Vector2f& Position = Vector2f(0, 0), const Vector2f& Scale = Vector2f(1, 1), float Rotation = 0.f, const Color& Col = Color(255, 255, 255, 255));
65
72 void SetImage(const Image& Img);
73
81 void SetSubRect(const IntRect& SubRect);
82
91 void Resize(float Width, float Height);
92
100 void Resize(const Vector2f& Size);
101
108 void FlipX(bool Flipped);
109
116 void FlipY(bool Flipped);
117
124 const Image* GetImage() const;
125
132 const IntRect& GetSubRect() const;
133
140 Vector2f GetSize() const;
141
152 Color GetPixel(unsigned int X, unsigned int Y) const;
153
154protected :
155
160 virtual void Render(RenderTarget& Target) const;
161
162private :
163
165 // Member data
167 ResourcePtr<Image> myImage;
168 IntRect mySubRect;
169 bool myIsFlippedX;
170 bool myIsFlippedY;
171};
172
173} // namespace sf
174
175
176#endif // SFML_SPRITE_HPP
Color is an utility class for manipulating 32-bits RGBA colors.
Definition Color.hpp:41
void Scale(float FactorX, float FactorY)
Scale the object (take 2 values).
Definition Drawable.cpp:287
Drawable(const Vector2f &Position=Vector2f(0, 0), const Vector2f &Scale=Vector2f(1, 1), float Rotation=0.f, const Color &Col=Color(255, 255, 255, 255))
Default constructor.
Definition Drawable.cpp:39
Image is the low-level class for loading and manipulating images.
Definition Image.hpp:47
Safe pointer to a T resource (inheriting from sf::Resource<T>), its pointer is automatically reseted ...
Definition Resource.hpp:117
Color GetPixel(unsigned int X, unsigned int Y) const
Get the color of a given pixel in the sprite (point is in local coordinates).
Definition Sprite.cpp:158
void FlipX(bool Flipped)
Flip the sprite horizontally.
Definition Sprite.cpp:112
void SetImage(const Image &Img)
Change the image of the sprite.
Definition Sprite.cpp:63
void Resize(float Width, float Height)
Resize the sprite (by changing its scale factors) (take 2 values).
Definition Sprite.cpp:89
void SetSubRect(const IntRect &SubRect)
Set the sub-rectangle of the sprite inside the source image.
Definition Sprite.cpp:79
const Image * GetImage() const
Get the source image of the sprite.
Definition Sprite.cpp:130
virtual void Render(RenderTarget &Target) const
/see Drawable::Render
Definition Sprite.cpp:180
const IntRect & GetSubRect() const
Get the sub-rectangle of the sprite inside the source image.
Definition Sprite.cpp:139
void FlipY(bool Flipped)
Flip the sprite vertically.
Definition Sprite.cpp:121
Sprite()
Default constructor.
Definition Sprite.cpp:38
Vector2f GetSize() const
Get the sprite size.
Definition Sprite.cpp:148