How to get all the pixels from the image into an array?
class Player { // класс Игрока public: float x, y, w, h, dx, dy, speed = 0; //координаты игрока х и у, высота ширина, ускорение (по х и по у), сама скорость int dir = 0; //направление (direction) движения игрока String File; //файл с расширением Image image;//сфмл изображение Texture texture;//сфмл текстура Sprite sprite;//сфмл спрайт const int WW = 150; const int HH = 150; const int del = 6; const int arr[9] = {1, 1, 1, 1, 9, 1, 1, 1, 1}; sf::Uint8 *pixels = new sf::Uint8[WW*HH*4]; // НЕ МОГУ СДЕЛАТЬ ЕГО КОНСТАНТОЙ, ПОТОМУ ЧТО НАДО ИЗМЕНЯТЬ ПОТОМ //const sf::Uint8 *pixels1 = new sf::Uint8[WW*HH*4]; Player(String F, float X, float Y, float W, float H){ //Конструктор с параметрами(формальными) для класса Player. При создании объекта класса мы будем задавать имя файла, координату Х и У, ширину и высоту File = F;//имя файла+расширение w = W; h = H;//высота и ширина image.loadFromFile("images/" + File);//запихиваем в image наше изображение вместо File мы передадим то, что пропишем при создании объекта. В нашем случае "hero.png" и получится запись идентичная image.loadFromFile("images/hero/png"); texture.loadFromImage(image);//закидываем наше изображение в текстуру pixels = image.getPixelsPtr(); // getPixelsPrt() ВОЗВРАЩАЕТ const, так что это не работает for(int i = 0; i < WW*HH*4; i += 1) { pixels[i] = 0* (pixels[i - WW - 4] * arr[0] + pixels[i - WW] * arr[1] + pixels[i - WW + 4] * arr[2] + pixels[i - 4] * arr[3] + pixels[i] * arr[4] + pixels[i + 4] * arr[5] + pixels[i + WW - 4] * arr[6] + pixels[i + WW] * arr[7] + pixels[i + WW + 4] * arr[8]) / del; i++; pixels[i] = 0*(pixels[i - WW - 4] * arr[0] + pixels[i - WW] * arr[1] + pixels[i - WW + 4] * arr[2] + pixels[i - 4] * arr[3] + pixels[i] * arr[4] + pixels[i + 4] * arr[5] + pixels[i + WW - 4] * arr[6] + pixels[i + WW] * arr[7] + pixels[i + WW + 4] * arr[8]) / del; i++; pixels[i] = 0*(pixels[i - WW - 4] * arr[0] + pixels[i - WW] * arr[1] + pixels[i - WW + 4] * arr[2] + pixels[i - 4] * arr[3] + pixels[i] * arr[4] + pixels[i + 4] * arr[5] + pixels[i + WW - 4] * arr[6] + pixels[i + WW] * arr[7] + pixels[i + WW + 4] * arr[8]) / del; i++; //pixels[i] = 255; } texture.update(pixels); //image.createMaskFromColor(Color(41, 33, 59));//убираем ненужный темно-синий цвет, эта тень мне показалась не красивой. // texture.loadFromImage(image);//закидываем наше изображение в текстуру sprite.setTexture(texture);//заливаем спрайт текстурой x = X; y = Y;//координата появления спрайта sprite.setTextureRect(IntRect(0, 0, WW, h)); } ....
Player p("hero.png",150,150,37.5, 37.5);//создаем объект p класса player,задаем "hero.png" как имя файла+расширение, далее координата Х,У, ширина, высота.