Проблема белого квадрата




Загрузка текстуры

#include <SFML/Graphics.hpp>

 

using namespace sf;

 

int main()

{

// Объект, который, собственно, является главным окном приложения

RenderWindow window(VideoMode(150, 100), "SFML Works!");

 

// Главный цикл приложения: выполняется, пока открыто окно

while (window.isOpen())

{

// Обрабатываем события в цикле

Event event;

while (window.pollEvent(event))

{

// Пользователь нажал на «крестик» и хочет закрыть окно?

if (event.type == Event::Closed)

// тогда закрываем его

window.close();

}

// Установка цвета фона - белый

window.clear(Color::White);

 

// Создаём переменную текстуры

Texture texture;

 

// Подгружаем нашу текстуру из файла texture.png

texture.loadFromFile("C:\\dev\\SFML_Tutorial\\Debug\\texture.png");

 

// Создаём спрайт и устанавливаем ему нашу текстуру

Sprite sprite(texture);

// Отрисовка спрайта

window.draw(sprite);

 

// Отрисовка окна

window.display();

}

 

return 0;

}

 

Сглаживание

#include <SFML/Graphics.hpp>

 

using namespace sf;

 

int main()

{

// Объект, который, собственно, является главным окном приложения

RenderWindow window(VideoMode(150, 100), "SFML Works!");

 

// Главный цикл приложения: выполняется, пока открыто окно

while (window.isOpen())

{

// Обрабатываем события в цикле

Event event;

while (window.pollEvent(event))

{

// Пользователь нажал на «крестик» и хочет закрыть окно?

if (event.type == Event::Closed)

// тогда закрываем его

window.close();

}

// Установка цвета фона - белый

window.clear(Color::White);

 

// Создаём переменную текстуры

Texture texture;

 

// Подгружаем нашу текстуру из файла texture.png

texture.loadFromFile("C:\\dev\\SFML_Tutorial\\Debug\\texture.png");

 

// Включаем режим сглаживания для нашей текстуры

texture.setSmooth(true);

 

// Создаём спрайт и устанавливаем ему нашу текстуру

Sprite sprite(texture);

// Отрисовка спрайта

window.draw(sprite);

 

// Отрисовка окна

window.display();

}

 

return 0;

}

 

многократно повторять текстуру в пределах одного спрайта

#include <SFML/Graphics.hpp>

 

using namespace sf;

 

int main()

{

// Объект, который, собственно, является главным окном приложения

RenderWindow window(VideoMode(500, 300), "SFML Works!");

 

// Главный цикл приложения: выполняется, пока открыто окно

while (window.isOpen())

{

// Обрабатываем события в цикле

Event event;

while (window.pollEvent(event))

{

// Пользователь нажал на «крестик» и хочет закрыть окно?

if (event.type == Event::Closed)

// тогда закрываем его

window.close();

}

// Установка цвета фона - белый

window.clear(Color::White);

 

// Создаём переменную текстуры

Texture texture;

 

// Подгружаем нашу текстуру из файла texture.png

texture.loadFromFile("C:\\dev\\SFML_Tutorial\\Debug\\texture.png");

 

// Включаем режим повторения для текстуры

texture.setRepeated(true);

 

// Создаём спрайт размером 400х198 и присваиваем ему нашу текстуру (текстура имеет размер 100х100)

Sprite sprite(texture, IntRect(0, 0, 400, 198));

 

// Отрисовка спрайта

window.draw(sprite);

// Отрисовка окна

window.display();

}

 

return 0;

}

 

 

изменить и цвет самого спрайта, который будет мультипликативно складываться с текущей текстурой

#include <SFML/Graphics.hpp>

 

using namespace sf;

 

int main()

{

// Объект, который, собственно, является главным окном приложения

RenderWindow window(VideoMode(750, 300), "SFML Works!");

 

// Главный цикл приложения: выполняется, пока открыто окно

while (window.isOpen())

{

// Обрабатываем события в цикле

Event event;

while (window.pollEvent(event))

{

// Пользователь нажал на «крестик» и хочет закрыть окно?

if (event.type == Event::Closed)

// тогда закрываем его

window.close();

}

// Установка цвета фона - белый

window.clear(Color::White);

 

// Создаём переменную текстуры

Texture texture;

 

// Подгружаем нашу текстуру из файла texture.png

texture.loadFromFile("C:\\dev\\SFML_Tutorial\\Debug\\texture.png");

 

// Создаём семь спрайтов для примера

Sprite sprite1(texture);

Sprite sprite2(texture);

Sprite sprite3(texture);

Sprite sprite4(texture);

Sprite sprite5(texture);

Sprite sprite6(texture);

Sprite sprite7(texture);

// Первый спрайт остаётся на месте в качестве образца

 

// Сдвигаем второй спрайт вправо на 105 пикселей

sprite2.move(105, 0);

// Устанавливаем ему цвет - зелёный

sprite2.setColor(Color::Green);

// Сдвигаем третий спрайт вправо на 210 пикселей

sprite3.move(210, 0);

// Устанавливаем ему цвет - красный

sprite3.setColor(Color::Red);

 

// Сдвигаем четвёртый спрайт вправо на 315 пикселей

sprite4.move(315, 0);

// Устанавливаем ему цвет - жёлтый

sprite4.setColor(Color::Yellow);

 

// Сдвигаем пятый спрайт вправо на 420 пикселей

sprite5.move(420, 0);

// Устанавливаем ему цвет – белый + прозрачность 128

sprite5.setColor(Color(255, 255, 255, 128));

 

// Сдвигаем шестой спрайт вправо на 525 пикселей

sprite6.move(525, 0);

// Устанавливаем ему цвет – белый + прозрачность 64

sprite6.setColor(Color(255, 255, 255, 64));

 

// Сдвигаем седьмой спрайт вправо на 630 пикселей

sprite7.move(630, 0);

// Устанавливаем ему цвет – белый + прозрачность 32

sprite7.setColor(Color(255, 255, 255, 32));

// Отрисовка всех спрайтов

window.draw(sprite1);

window.draw(sprite2);

window.draw(sprite3);

window.draw(sprite4);

window.draw(sprite5);

window.draw(sprite6);

window.draw(sprite7);

// Отрисовка окна

window.display();

}

 

return 0;

}

 

Трансформации

 

#include <SFML/Graphics.hpp>

 

using namespace sf;

 

int main()

{

// Объект, который, собственно, является главным окном приложения

RenderWindow window(VideoMode(600, 300), "SFML Works!");

 

// Главный цикл приложения: выполняется, пока открыто окно

while (window.isOpen())

{

// Обрабатываем события в цикле

Event event;

while (window.pollEvent(event))

{

// Пользователь нажал на «крестик» и хочет закрыть окно?

if (event.type == Event::Closed)

// тогда закрываем его

window.close();

}

// Установка цвета фона - белый

window.clear(Color::White);

 

// Создаём переменную текстуры

Texture texture;

 

// Подгружаем нашу текстуру из файла texture_bricks.jpg (текстура кирпича)

texture.loadFromFile("C:\\dev\\SFML_Tutorial\\Debug\\texture_bricks.jpg");

// Создаём пять спрайтов для примера

Sprite sprite1(texture);

Sprite sprite2(texture);

Sprite sprite3(texture);

Sprite sprite4(texture);

Sprite sprite5(texture);

// Позиция

sprite1.setPosition(10.f, 30.f); // абсолютное значение

sprite2.move(170.f, 10.f); // смещение относительно текущей позиции

 

// Вращение

sprite3.setPosition(450.f, 30.f); // сначала сдвинем наш спрайт в сторону

sprite3.setRotation(45.f); // абсолютное значение в 45°

// sprite.rotate(15.f); // можно задать смещение относительно текущего значения угла (+15°)

 

// Масштаб

sprite4.setPosition(10, 150); // сначала сдвинем наш спрайт вниз

sprite4.setScale(0.3f, 0.9f); // абсолютное значение масштаба

sprite5.setPosition(100, 170); // сначала сдвинем наш спрайт в сторону

sprite5.scale(1.5f, 0.2); // смещение параметров масштабирования относительно текущих значений

// Отрисовка всех спрайтов

window.draw(sprite1);

window.draw(sprite2);

window.draw(sprite3);

window.draw(sprite4);

window.draw(sprite5);

// Отрисовка окна

window.display();

}

 

return 0;

}

 

Проблема белого квадрата

  Sprite loadSprite(std::string filename) { Texture texture; texture.loadFromFile(filename);   return Sprite(texture); } // Ошибка: в данном месте происходит уничтожение текстуры

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: