SFML и C++ Уроки \ Разработка игр › Форумы › SFML готовые решения (сниппеты) и советы › view – Вид и Скроллинг карты относительно игрока
В этой теме 0 ответов, 1 участник, последнее обновление alexandr 8 года/лет, 6 мес. назад.
Просмотр 1 сообщения - с 1 по 1 (всего 1)
-
АвторСообщения
-
C++1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#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 Loadsf::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,hsf::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;}
-
АвторСообщения
Просмотр 1 сообщения - с 1 по 1 (всего 1)
Для ответа в этой теме необходимо авторизоваться.