if (m_MovingLeft)
{
for (int i = 0; i < m_Array.size(); ++i)
{
m_Array[i].setPosition(m_Array[i].getGlobalBounds().left - m_SpeedMoving * dt.asSeconds(), m_Array[i].getGlobalBounds().top);
}
}
if (m_MovingRight)
{
for (int i = 0; i < m_Array.size(); ++i)
{
m_Array[i].setPosition(m_Array[i].getGlobalBounds().left + m_SpeedMoving * dt.asSeconds(), m_Array[i].getGlobalBounds().top);
}
}
if (Keyboard::isKeyPressed(Keyboard::Left))
{
classSprite.moveLeft();
}
else
{
classSprite.stopLeft();
}
if (Keyboard::isKeyPressed(Keyboard::Right))
{
classSprite.moveRight();
}
else
{
classSprite.stopRight();
}
#include <iostream>
#include<vector>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
using namespace sf;
using namespace std;
vector<Sprite> spriteArray;
float m_SpeedMoving = 600.0f;
const int numVertical = 2; //Number of vertical sprites to create
const int numHorizontal = 1; //Number of horizontal sprites to create
const int OffsetBottom = 20;
const int OffsetBottomOfScreen = 100;
const int OffsetLeft = 40;
void MakeSpriteArray(Texture& texture)
{
unsigned short colCounter = 0;
unsigned short numVert = 0;
for (int i = 0; i < (numVertical * numHorizontal); ++i)
{
spriteArray.push_back(Sprite());
spriteArray[i].setTexture(texture);
spriteArray[i].setScale(0.5, 0.5);
if (colCounter == 0) //First column of sprite
{
if (numVert == 0) //Bottom row of sprites just above the bottom of the screen
{
spriteArray[i].setPosition(0, (1080 - OffsetBottomOfScreen) - spriteArray[i].getGlobalBounds().height);
}
else
{
spriteArray[i].setPosition(0, spriteArray[i - 1].getGlobalBounds().top - (spriteArray[i].getGlobalBounds().height - OffsetBottom));
}
}
else
{
if (numVert == 0) //Bottom row of sprites just above the bottom of the screen
{
spriteArray[i].setPosition((spriteArray[i - numVertical].getGlobalBounds().left + spriteArray[i - numVertical].getGlobalBounds().width - OffsetLeft),
(1080 - OffsetBottomOfScreen) - spriteArray[i].getGlobalBounds().height);
}
else
{
spriteArray[i].setPosition((spriteArray[i - numVertical].getGlobalBounds().left + (spriteArray[i - numVertical].getGlobalBounds().width - OffsetLeft)),
(spriteArray[i - 1].getGlobalBounds().top - spriteArray[i].getGlobalBounds().height) + OffsetBottom);
}
}
++numVert;
if (numVert == numVertical)
{
++colCounter;
numVert = 0;
}
}
}
void MoveLeft(Time& TIME_PER_FRAME)
{
for (int i = 0; i < spriteArray.size(); ++i)
{
//spriteArray[i].setPosition(spriteArray[i].getGlobalBounds().left - m_SpeedMoving * dt.asSeconds(),
// spriteArray[i].getGlobalBounds().top);
spriteArray[i].setPosition(spriteArray[i].getGlobalBounds().left - m_SpeedMoving * TIME_PER_FRAME.asSeconds(),
spriteArray[i].getGlobalBounds().top);
//if (!Keyboard::isKeyPressed(Keyboard::Left))
// break;
}
}
void MoveRight(Time& TIME_PER_FRAME)
{
for (int i = 0; i < spriteArray.size(); ++i)
{
//spriteArray[i].setPosition(spriteArray[i].getGlobalBounds().left + m_SpeedMoving * dt.asSeconds(),
// spriteArray[i].getGlobalBounds().top);
spriteArray[i].setPosition(spriteArray[i].getGlobalBounds().left + m_SpeedMoving * TIME_PER_FRAME.asSeconds(),
spriteArray[i].getGlobalBounds().top);
//if (!Keyboard::isKeyPressed(Keyboard::Right))
// break;
}
}
int main()
{
//****************** WINDOW ******************
Vector2f resolution;
resolution.x = VideoMode::getDesktopMode().width;
resolution.y = VideoMode::getDesktopMode().height;
VideoMode vm(resolution.x, resolution.y);
RenderWindow window(vm, "TEST", Style::Default);
window.setFramerateLimit(60);
Texture texture;
texture.loadFromFile("graphics/Image1.png");
//****************** TEXT ******************
//****************** CONFIG ******************
Clock clock;
Time timeSinceLastUpdate = Time::Zero;
Time TIME_PER_FRAME = seconds(1.0f / 60.0f);
MakeSpriteArray(texture);
bool isMovingLeft = false;
bool isMovingRight = false;
while (window.isOpen())
{
//**********************************************************
//******************* KEYBOARD/MOUSE *******************
//**********************************************************
Event event;
//NEEDED, to prevent intial screen blue circle
while (window.pollEvent(event))
{
}
//ESC to exit game
if (Keyboard::isKeyPressed(Keyboard::Escape))
window.close();
////******************* KEYS *******************
if (Keyboard::isKeyPressed(Keyboard::Left))
{
isMovingLeft = true;
}
else
{
isMovingLeft = false;
}
if (Keyboard::isKeyPressed(Keyboard::Right))
{
isMovingRight = true;
}
else
{
isMovingRight = false;
}
//**********************************************************
//******************* UPDATE *******************
//**********************************************************
timeSinceLastUpdate += clock.restart();
//Time dt = clock.restart();
cout << TIME_PER_FRAME.asSeconds() << endl;
while (timeSinceLastUpdate > TIME_PER_FRAME)
{
timeSinceLastUpdate -= TIME_PER_FRAME;
if (isMovingLeft)
{
MoveLeft(TIME_PER_FRAME);
}
if (isMovingRight)
{
MoveRight(TIME_PER_FRAME);
}
}
//**********************************************************
//******************* DRAW *******************
//**********************************************************
window.clear();
//DRAW ALL
for (int i = spriteArray.size() - 1; i >= 0; --i)
{
window.draw(spriteArray[i]);
}
window.display();
}
return 0;
}
#include <iostream>
#include<vector>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
using namespace sf;
using namespace std;
float m_SpeedMoving = 600.0f;
int main()
{
//****************** WINDOW ******************
Vector2f resolution;
resolution.x = VideoMode::getDesktopMode().width;
resolution.y = VideoMode::getDesktopMode().height;
VideoMode vm(resolution.x, resolution.y);
RenderWindow window(vm, "TEST", Style::Default);
window.setFramerateLimit(60);
//****************** ******************
Texture texture;
texture.loadFromFile("graphics/Image1.png");
Sprite sprite1;
sprite1.setTexture(texture);
sprite1.setScale(.5, .5);
sprite1.setPosition(0, 400);
Sprite sprite2;
sprite2.setTexture(texture);
sprite2.setScale(.5, .5);
sprite2.setPosition(0, 480);
Sprite sprite3;
sprite3.setTexture(texture);
sprite3.setScale(.5, .5);
sprite3.setPosition(0, 560);
Sprite sprite4;
sprite4.setTexture(texture);
sprite4.setScale(.5, .5);
sprite4.setPosition(0, 640);
Sprite sprite5;
sprite5.setTexture(texture);
sprite5.setScale(.5, .5);
sprite5.setPosition(0, 720);
//FloatRect RectFloatSprite1 = sprite1.getGlobalBounds();
//FloatRect RectFloatSprite2 = sprite2.getGlobalBounds();
//FloatRect RectFloatSprite3 = sprite3.getGlobalBounds();
//FloatRect RectFloatSprite4 = sprite4.getGlobalBounds();
//FloatRect RectFloatSprite5 = sprite5.getGlobalBounds();
//FloatRect RectFloatSprite = sprite.getGlobalBounds();
//****************** TEXT ******************
//****************** CONFIG ******************
Clock clock;
Time timeSinceLastUpdate = Time::Zero;
Time TIME_PER_FRAME = seconds(1.0f / 60.0f);
bool isMovingLeft = false;
bool isMovingRight = false;
while (window.isOpen())
{
//**********************************************************
//******************* KEYBOARD/MOUSE *******************
//**********************************************************
Event event;
//NEEDED, to prevent intial screen blue circle
while (window.pollEvent(event))
{
}
//ESC to exit game
if (Keyboard::isKeyPressed(Keyboard::Escape))
window.close();
////******************* KEYS *******************
//Time dt = clock.restart();
if (Keyboard::isKeyPressed(Keyboard::Left))
{
isMovingLeft = true;
//sprite1.setPosition(sprite1.getPosition().x - m_SpeedMoving * dt.asSeconds(), sprite1.getPosition().y);
//sprite2.setPosition(sprite2.getPosition().x - m_SpeedMoving * dt.asSeconds(), sprite2.getPosition().y);
//sprite3.setPosition(sprite3.getPosition().x - m_SpeedMoving * dt.asSeconds(), sprite3.getPosition().y);
//sprite4.setPosition(sprite4.getPosition().x - m_SpeedMoving * dt.asSeconds(), sprite4.getPosition().y);
//sprite5.setPosition(sprite5.getPosition().x - m_SpeedMoving * dt.asSeconds(), sprite5.getPosition().y);
//RectFloatSprite1.left = RectFloatSprite1.left - m_SpeedMoving * dt.asSeconds();
//RectFloatSprite2.left = RectFloatSprite2.left - m_SpeedMoving * dt.asSeconds();
//RectFloatSprite3.left = RectFloatSprite3.left - m_SpeedMoving * dt.asSeconds();
//RectFloatSprite4.left = RectFloatSprite4.left - m_SpeedMoving * dt.asSeconds();
//RectFloatSprite5.left = RectFloatSprite5.left - m_SpeedMoving * dt.asSeconds();
////RectFloatSprite.left = RectFloatSprite.left - m_SpeedMoving * dt.asSeconds();
//sprite1.setPosition(RectFloatSprite1.left, RectFloatSprite1.top);
//sprite2.setPosition(RectFloatSprite2.left, RectFloatSprite2.top);
//sprite3.setPosition(RectFloatSprite3.left, RectFloatSprite3.top);
//sprite4.setPosition(RectFloatSprite4.left, RectFloatSprite4.top);
//sprite5.setPosition(RectFloatSprite5.left, RectFloatSprite5.top);
//sprite.setPosition(RectFloatSprite.left, RectFloatSprite.top);
}
else
{
isMovingLeft = false;
}
if (Keyboard::isKeyPressed(Keyboard::Right))
{
isMovingRight = true;
//sprite1.setPosition(sprite1.getPosition().x + m_SpeedMoving * dt.asSeconds(), sprite1.getPosition().y);
//sprite2.setPosition(sprite2.getPosition().x + m_SpeedMoving * dt.asSeconds(), sprite2.getPosition().y);
//sprite3.setPosition(sprite3.getPosition().x + m_SpeedMoving * dt.asSeconds(), sprite3.getPosition().y);
//sprite4.setPosition(sprite4.getPosition().x + m_SpeedMoving * dt.asSeconds(), sprite4.getPosition().y);
//sprite5.setPosition(sprite5.getPosition().x + m_SpeedMoving * dt.asSeconds(), sprite5.getPosition().y);
//RectFloatSprite1.left = RectFloatSprite1.left + m_SpeedMoving * dt.asSeconds();
//RectFloatSprite2.left = RectFloatSprite2.left + m_SpeedMoving * dt.asSeconds();
//RectFloatSprite3.left = RectFloatSprite3.left + m_SpeedMoving * dt.asSeconds();
//RectFloatSprite4.left = RectFloatSprite4.left + m_SpeedMoving * dt.asSeconds();
//RectFloatSprite5.left = RectFloatSprite5.left + m_SpeedMoving * dt.asSeconds();
////RectFloatSprite.left = RectFloatSprite.left + m_SpeedMoving * dt.asSeconds();
//sprite1.setPosition(RectFloatSprite1.left, RectFloatSprite1.top);
//sprite2.setPosition(RectFloatSprite2.left, RectFloatSprite2.top);
//sprite3.setPosition(RectFloatSprite3.left, RectFloatSprite3.top);
//sprite4.setPosition(RectFloatSprite4.left, RectFloatSprite4.top);
//sprite5.setPosition(RectFloatSprite5.left, RectFloatSprite5.top);
//sprite.setPosition(RectFloatSprite.left, RectFloatSprite.top);
}
else
{
isMovingRight = false;
}
//**********************************************************
//******************* UPDATE *******************
//**********************************************************
timeSinceLastUpdate += clock.restart();
//Time dt = clock.restart();
//cout << TIME_PER_FRAME.asSeconds() << endl;
while (timeSinceLastUpdate > TIME_PER_FRAME)
{
timeSinceLastUpdate -= TIME_PER_FRAME;
if (isMovingLeft)
{
sprite1.setPosition(sprite1.getPosition().x - m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite1.getPosition().y);
//sprite2.setPosition(sprite2.getPosition().x - m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite2.getPosition().y);
//sprite3.setPosition(sprite3.getPosition().x - m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite3.getPosition().y);
//sprite4.setPosition(sprite4.getPosition().x - m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite4.getPosition().y);
//sprite5.setPosition(sprite5.getPosition().x - m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite5.getPosition().y);
//RectFloatSprite1.left = RectFloatSprite1.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite2.left = RectFloatSprite2.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite3.left = RectFloatSprite3.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite4.left = RectFloatSprite4.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite5.left = RectFloatSprite5.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
////RectFloatSprite.left = RectFloatSprite.left - m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//sprite1.setPosition(RectFloatSprite1.left, RectFloatSprite1.top);
//sprite2.setPosition(RectFloatSprite2.left, RectFloatSprite2.top);
//sprite3.setPosition(RectFloatSprite3.left, RectFloatSprite3.top);
//sprite4.setPosition(RectFloatSprite4.left, RectFloatSprite4.top);
//sprite5.setPosition(RectFloatSprite5.left, RectFloatSprite5.top);
//sprite.setPosition(RectFloatSprite.left, RectFloatSprite.top);
}
if (isMovingRight)
{
sprite1.setPosition(sprite1.getPosition().x + m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite1.getPosition().y);
//sprite2.setPosition(sprite2.getPosition().x + m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite2.getPosition().y);
//sprite3.setPosition(sprite3.getPosition().x + m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite3.getPosition().y);
//sprite4.setPosition(sprite4.getPosition().x + m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite4.getPosition().y);
//sprite5.setPosition(sprite5.getPosition().x + m_SpeedMoving * TIME_PER_FRAME.asSeconds(), sprite5.getPosition().y);
//RectFloatSprite1.left = RectFloatSprite1.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite2.left = RectFloatSprite2.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite3.left = RectFloatSprite3.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite4.left = RectFloatSprite4.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//RectFloatSprite5.left = RectFloatSprite5.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
////RectFloatSprite.left = RectFloatSprite.left + m_SpeedMoving * TIME_PER_FRAME.asSeconds();
//sprite1.setPosition(RectFloatSprite1.left, RectFloatSprite1.top);
//sprite2.setPosition(RectFloatSprite2.left, RectFloatSprite2.top);
//sprite3.setPosition(RectFloatSprite3.left, RectFloatSprite3.top);
//sprite4.setPosition(RectFloatSprite4.left, RectFloatSprite4.top);
//sprite5.setPosition(RectFloatSprite5.left, RectFloatSprite5.top);
//sprite.setPosition(RectFloatSprite.left, RectFloatSprite.top);
}
}
//**********************************************************
//******************* DRAW *******************
//**********************************************************
window.clear();
window.draw(sprite1);
//window.draw(sprite2);
//window.draw(sprite3);
//window.draw(sprite4);
//window.draw(sprite5);
//window.draw(sprite);
window.display();
}
return 0;
}