SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Проблема с классами
В этой теме 8 ответов, 4 участника, последнее обновление ratatyq 8 года/лет, 4 мес. назад.
-
АвторСообщения
-
Здравствуйте, наткнулся на такую проблему с созданием классов для персонажа:
C++123456789101112131415161718192021222324252627282930313233343536class Player{public:float x, y, w, h, dx, dy, speed = 0; // Его данные при создания персонажа.int dir = 0; // направление игрокаString File;Image image;Texture texture;Sprite sprite;Player(String F, float X, float Y, float W, float H) // Отвечает за конструктор класса тоесть что вписывать когда мы создаем объект{File = F;w = W;h = H;image.loadFromFile("image/" + File);sprite.setTexture(texture);x = X;y = Y;sprite.setTextureRect(IntRect(170,0,w,h));}void update(float time){switch (dir){case 0: dx = speed; dy = 0; break;case 1: dx = -speed; dy = 0; break;case 2: dx = 0; dy = speed; break;case 3: dx = 0; dy = -speed; break;}x += dx*time;y += dy*time;speed = 0;sprite.setPosition(x,y);}};C++1sprite.setTextureRect(IntRect(170,0,w,h));с вот этой строчкой, какие бы я тут координаты не задовал все равно рисует белый квадрат без персонажа. а если убрать класс и так же ввести но только без класса(теже координаты) то все нормально становится.. help
В консоли нечего не пишет ? У меня такие траблы когда не правильно указал размеры , или путь
C++12345678910111213141516171819202122232425262728293031323334class Player{public:float x, y, w, h, dx, dy, speed = 0; // Его данные при создания персонажа.int dir = 0; // направление игрокаString File;Texture texture;Sprite sprite;Player(String F, float X, float Y, float W, float H) // Отвечает за конструктор класса тоесть что вписывать когда мы создаем объект{File = F;w = W;h = H;texture.loadFromFile("image/" + File);sprite.setTexture(texture);x = X;y = Y;sprite.setTextureRect(IntRect(170,0,w,h));}void update(float time){switch (dir){case 0: dx = speed; dy = 0; break;case 1: dx = -speed; dy = 0; break;case 2: dx = 0; dy = speed; break;case 3: dx = 0; dy = -speed; break;}x += dx*time;y += dy*time;speed = 0;sprite.setPosition(x,y);}в конструкторе dx=0;dy=0;speed=0; компилятор не шарит инициализацию выше
Все равно не помогает… что за фигня
У меня такое ощущение что он не может открыть файл
C++1image.loadFromFile("image/" + File);//попробуй загрузить картинку без использования переменной FileНет не выходит все тот же белый квадрат
Вложения:
You must be logged in to view attached files.Все я решил проблему, оп пятаки из за невнемательности я забыл указать строку texture
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.