The screen is blank, no sprite shows up and I dunno what to do.
Main.cpp:
</p><div>#include <SFML/Graphics.hpp></div>
<div> </div>
<div>#define SCREENWIDTH 800</div>
<div>#define SCREENHEIGHT 600</div>
<div> </div>
<div>#include "Animation.h"</div>
<div>#include "Player.h"</div>
<div> </div>
<div>int main()</div>
<div>{</div>
<div> sf::RenderWindow Window(sf::VideoMode(SCREENWIDTH,SCREENHEIGHT,32), "SFML ADVANCED ANIMATION TUTORIAL");</div>
<div> </div>
<div> Player player;</div>
<div> </div>
<div> player.Initialize();</div>
<div> player.LoadContent();</div>
<div> </div>
<div> while(Window.isOpen())</div>
<div> {</div>
<div> sf::Event Event;</div>
<div> </div>
<div> while(Window.pollEvent(Event))</div>
<div> {</div>
<div> if(Event.type == sf::Event::Closed || sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))</div>
<div> Window.close();</div>
<div> }</div>
<div> player.Update(Window);</div>
<div> player.Draw(Window);</div>
<div> </div>
<div> Window.clear();</div>
<div> Window.display();</div>
<div> </div>
<div> }</div>
<div> </div>
<div> return 0;</div>
<div>}</div>
<div> </div>
Animation.h:
</p><div>#ifndef ANIMATION_H</div>
<div>#define ANIMATION_H</div>
<div> </div>
<div>#include <SFML/Graphics.hpp></div>
<div> </div>
<div>class Animation</div>
<div>{</div>
<div>public:</div>
<div>Animation();</div>
<div>~Animation();</div>
<div> </div>
<div>void Initialize(float x,float y, int FrameX, int FrameY);</div>
<div>void isOpen();</div>
<div>void Update(sf::RenderWindow &Window);</div>
<div>void Draw(sf::RenderWindow &Window);</div>
<div> </div>
<div>bool getActive();</div>
<div>void setActive(bool value);</div>
<div> </div>
<div>int getCurrentFrame(int axis);</div>
<div>void setCurrentFrame(int axis, int value);</div>
<div> </div>
<div>float getPosition(int axis);</div>
<div>float setPosition(int axis, int value);</div>
<div> </div>
<div>void setTexture(sf::Texture &spriteTexture);</div>
<div> </div>
<div> </div>
<div>protected:</div>
<div>int getFrameWidth();</div>
<div>int getFrameHeight();</div>
<div>private:</div>
<div>sf::Texture spriteTexture;</div>
<div>sf::Sprite spriteImage;</div>
<div>sf::Clock Clock;</div>
<div>int currentFrameX, currentFrameY;</div>
<div>float frameCounter, switchFrame;</div>
<div>float frameTime;</div>
<div>int amountOfFramesX, amountOfFramesY;</div>
<div>float x, y;</div>
<div>bool active;</div>
<div>};</div>
<div> </div>
<div>#endif //ANIMATION_H</div>
Animation.cpp:
</p><div>#include <SFML/Graphics.hpp></div>
<div>#include <iostream></div>
<div>#include "Animation.h"</div>
<div> </div>
<div>Animation::Animation()</div>
<div>{</div>
<div> </div>
<div>}</div>
<div> </div>
<div>Animation::~Animation()</div>
<div>{</div>
<div> </div>
<div>}</div>
<div> </div>
<div>int Animation::getFrameWidth()</div>
<div>{</div>
<div>return spriteTexture.getSize().x / amountOfFramesX;</div>
<div>}</div>
<div> </div>
<div>int Animation::getFrameHeight()</div>
<div>{</div>
<div>return spriteTexture.getSize().y / amountOfFramesY;</div>
<div>}</div>
<div> </div>
<div>bool Animation::getActive()</div>
<div>{</div>
<div>return active;</div>
<div>}</div>
<div> </div>
<div>void Animation::setActive(bool value)</div>
<div>{</div>
<div>active = value;</div>
<div>}</div>
<div> </div>
<div>int Animation::getCurrentFrame(int axis)</div>
<div>{</div>
<div>if(axis == 1)</div>
<div>return currentFrameX;</div>
<div>else</div>
<div>return currentFrameY;</div>
<div>}</div>
<div> </div>
<div>void Animation::setCurrentFrame(int axis, int value)</div>
<div>{</div>
<div>if(axis == 1)</div>
<div>currentFrameX = value;</div>
<div>else</div>
<div>currentFrameY = value;</div>
<div> </div>
<div>}</div>
<div> </div>
<div>float Animation::getPosition(int axis)</div>
<div>{</div>
<div>if(axis == 1)</div>
<div>return x;</div>
<div>else</div>
<div>return y;</div>
<div>}</div>
<div> </div>
<div>float Animation::setPosition(int axis, int value)</div>
<div>{</div>
<div>if(axis == 1)</div>
<div>x = value;</div>
<div>else</div>
<div>y = value;</div>
<div>}</div>
<div> </div>
<div>void Animation::setTexture(sf::Texture &spriteTexture)</div>
<div>{</div>
<div> spriteImage.setTexture(spriteTexture);</div>
<div> std::cout << "loaded 2\n";</div>
<div>}</div>
<div> </div>
<div>void Animation::Initialize(float x,float y, int FrameX, int FrameY)</div>
<div>{</div>
<div>frameCounter = 0;</div>
<div>switchFrame = 1;</div>
<div>active = false;</div>
<div>this->x = x;</div>
<div>this->y = y;</div>
<div>this->amountOfFramesX = FrameX;</div>
<div>this->amountOfFramesY = FrameY;</div>
<div>std::cout << "init2\n";</div>
<div> </div>
<div>}</div>
<div> </div>
<div>void Animation::isOpen()</div>
<div>{</div>
<div>Clock.restart();</div>
<div>}</div>
<div> </div>
<div>void Animation::Update(sf::RenderWindow &Window)</div>
<div>{</div>
<div>frameTime = Clock.getElapsedTime().asSeconds();</div>
<div> </div>
<div> </div>
<div>if(active)</div>
<div>frameCounter += frameTime;</div>
<div>else</div>
<div>frameCounter = 0;</div>
<div> </div>
<div>if(frameCounter >= switchFrame)</div>
<div>{</div>
<div>frameCounter = 0;</div>
<div>currentFrameX += getFrameWidth();</div>
<div>if(currentFrameX >= spriteTexture.getSize().x)</div>
<div>currentFrameX = 0;</div>
<div>}</div>
<div>spriteImage.setTextureRect(sf::IntRect(currentFrameX, currentFrameY * getFrameHeight(), currentFrameX + getFrameWidth(), currentFrameY * getFrameHeight() + getFrameHeight()));</div>
<div>spriteImage.setPosition(x, y);</div>
<div>}</div>
<div> </div>
<div>void Animation::Draw(sf::RenderWindow &Window)</div>
<div>{</div>
<div>Window.draw(spriteImage);</div>
<div> </div>
<div>}</div>
<div> </div>
Player.h:
</p><div>#ifndef PLAYER_H</div>
<div>#define PLAYER_H</div>
<div> </div>
<div>#include <SFML/Graphics.hpp></div>
<div>#include "Animation.h"</div>
<div> </div>
<div>class Player</div>
<div>{</div>
<div>public:</div>
<div>Player();</div>
<div>~Player();</div>
<div> </div>
<div>void Initialize();</div>
<div> </div>
<div>void LoadContent();</div>
<div>void Update(sf::RenderWindow &Window);</div>
<div>void Draw(sf::RenderWindow &Window);</div>
<div> </div>
<div>protected:</div>
<div> Animation playerAnimation;</div>
<div> </div>
<div>private:</div>
<div>sf::Texture playerTexture;</div>
<div>sf::Clock clock;</div>
<div>float x, y;</div>
<div>int currentFrameX, currentFrameY;</div>
<div>float moveSpeed;</div>
<div>};</div>
<div> </div>
<div>#endif //PLAYER_H</div>
Player.cpp:
</p><div>#include <SFML/Graphics.hpp></div>
<div>#include <iostream></div>
<div>#include "Player.h"</div>
<div> </div>
<div>Player::Player()</div>
<div>{</div>
<div> </div>
<div>}</div>
<div> </div>
<div> </div>
<div>Player::~Player()</div>
<div>{</div>
<div> </div>
<div>}</div>
<div> </div>
<div>void Player::Initialize()</div>
<div>{</div>
<div> x = 0;</div>
<div> y = 0;</div>
<div> moveSpeed = 200;</div>
<div> currentFrameX = 0;</div>
<div> currentFrameY = 0;</div>
<div> playerAnimation.Initialize(x,y,3,4);</div>
<div> std::cout << "init\n";</div>
<div>}</div>
<div> </div>
<div> </div>
<div>void Player::LoadContent()</div>
<div>{</div>
<div> if(playerTexture.loadFromFile("C:/Program Files (x86)/CodeBlocks/Projects/SFML Animation Advanced tutorial/resource/Animation/Cloaked dude.png"))</div>
<div> playerAnimation.setTexture(playerTexture);</div>
<div> std::cout << "loaded" << std::endl;</div>
<div>}</div>
<div> </div>
<div>void Player::Update(sf::RenderWindow &Window)</div>
<div>{</div>
<div> if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) //UP</div>
<div> {</div>
<div> y -= moveSpeed * clock.getElapsedTime().asSeconds();</div>
<div> currentFrameY = 3;</div>
<div> std::cout << "moved up\n";</div>
<div> }</div>
<div> else if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) //DOWN</div>
<div> {</div>
<div> y += moveSpeed * clock.getElapsedTime().asSeconds();</div>
<div> currentFrameY = 0;</div>
<div> std::cout << "moved down\n";</div>
<div> }</div>
<div> else if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) //LEFT</div>
<div> {</div>
<div> x -= moveSpeed * clock.getElapsedTime().asSeconds();</div>
<div> currentFrameY = 1;</div>
<div> std::cout << "moved left\n";</div>
<div> }</div>
<div> else if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) //RIGHT</div>
<div> {</div>
<div> x += moveSpeed * clock.getElapsedTime().asSeconds();</div>
<div> currentFrameY = 2;</div>
<div> std::cout << "moved right\n";</div>
<div> }</div>
<div> else</div>
<div> {</div>
<div> playerAnimation.setActive(false); //if player not pressing any button</div>
<div> }</div>
<div> </div>
<div> playerAnimation.setPosition(1,x);</div>
<div> playerAnimation.setPosition(2,y);</div>
<div> playerAnimation.setCurrentFrame(2,currentFrameY);</div>
<div> playerAnimation.Update(Window);</div>
<div>}</div>
<div> </div>
<div>void Player::Draw(sf::RenderWindow &Window)</div>
<div>{</div>
<div> playerAnimation.Draw(Window);</div>
<div>}</div>
<div> </div>






