#include <SFML\Graphics.hpp>
#include <iostream>
int main(int argc,char **argv)
{
int width=800,height=800;
sf::RenderWindow window(sf::VideoMode(width,height),”Game”);
// Texture and Sprite Load
sf::Texture textureBg;
textureBg.loadFromFile(“image/background.png”);
sf::Sprite spriteBg;
spriteBg.setTexture(textureBg);
spriteBg.setPosition(sf::Vector2f(50.f,100.f));
spriteBg.setColor(sf::Color(255,255,0,255));
sf::Texture texturePl;
texturePl.loadFromFile(“image/fungus.png”);
sf::Sprite spritePl;
spritePl.setTexture(texturePl);
spritePl.setPosition(200.f,300.f);
// Вид сцены
sf::View view;
view.reset(sf::FloatRect(0,0,width,height));
view.setViewport(sf::FloatRect(0,0,1.0f,1.0f)); // вместо 1.0f – можно 0.5f – половина области вида w,h
sf::Vector2f position (0.f,0.f);
// Игровой Цикл
while(window.isOpen())
{
sf::Event event;
while(window.pollEvent(event))
{
switch(event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::KeyPressed:
switch(event.key.code)
{
case sf::Keyboard::Right:
spritePl.move(1.5f,0.f);
break;
case sf::Keyboard::Left:
spritePl.move(-1.5f,0.f);
break;
case sf::Keyboard::Up:
spritePl.move(0.f,-1.5f);
break;
case sf::Keyboard::Down:
spritePl.move(0.f,1.5f);
break;
}
break;
}
}
// Обновление
// Обновление вида
position.x=spritePl.getPosition().x+10-(width/4); // по умолчанию в центр экрана width/2 писать
position.y=spritePl.getPosition().y+10-(height/4); // по умолчанию в центр экрана height/2 писать
if(position.x < 0)
position.x=0;
if(position.y < 0)
position.y=0;
view.reset(sf::FloatRect(position.x,position.y,width,height));
window.setView(view);
window.clear(sf::Color::Magenta);
window.draw(spriteBg);
window.draw(spritePl);
// window.setView(window.getDefaultView());
window.display();
}
return 0;
}