vector<Object> objects[1];
objects[0] = Object("models/tree.png", 600, 1000, 93, 178);
vector<Object> objects;
objects.emplace_back("models/tree.png", 600, 1000, 93, 178); resize.objects[1] = Object("models/tree.png", 600, 1000, 93, 178);push_back.
objects, сколько нужно, а вектор подстроится.
vector<Object> objectss(2);
objectss.at(0) = Object("models/tree.png", 600, 1000, 93, 178);
objectss.at(1) = Object("models/tree.png", 400, 1000, 93, 178);window.draw(objectss[0].sprite);Ошибка C2512 Object::Object: нет подходящего конструктора по умолчанию
vector<Object> objects;
objects.emplace_back("models/tree.png", 600, 1000, 93, 178);
objects.emplace_back("models/tree.png", 400, 1000, 93, 178);
window.draw(objects[0].sprite);
objects[0]. Ничего шакального.
Image tre1;
tre1.loadFromFile("models/tree.png");
Texture tre2;;
tre2.loadFromImage(tre1);
Sprite tre;
tre.setTexture(tre2);vector<Object> objects;
objects.emplace_back("models/tree.png", 600, 1000, 93, 178);
objects.emplace_back("models/tree.png", 400, 1000, 93, 178);class Object {
public:
int w, h, x, y;
String File;
Image image;
Texture texture;
Sprite sprite;
Object(String F, float X, float Y, float W, float H) {
File = F;
w = W; h = H;
image.loadFromFile("" + File);
image.createMaskFromColor(Color::Red);
texture.loadFromImage(image);
sprite.setTexture(texture);
x = X; y = Y;
this->File = F;
this->x = X;
this->y = Y;
this->w = W;
this->h = H;
sprite.setTextureRect(IntRect(0, 0, w, h));
}
};
image.loadFromFile("" + File);image.loadFromFile(File);sprite.setTextureRect(IntRect(0, 0, w, h));sprite.setTextureRect(IntRect(x, y, w, h));image.createMaskFromColor(Color::Red);image.createMaskFromColor(Color::Red) - это называется choma key.sprite.setTextureRect(IntRect(0, 0, w, h)) - задает позицию отображения участка текстуры в пространстве координат самой текстуры. (0, 0, w, h) означает выводить прямоугольный участок текстуры от (0, 0) и до (w, h). Этот участок будет выведен на всей поверхности спрайта, у которого есть свои размеры.Object ты определил конструктор преобразования. Это привело к удалению неявного конструктора по умолчанию. Теперь тебе надо определить явный конструктор по умолчанию чтобы иметь возможность писать objects[1] = Object("models/tree.png", 600, 1000, 93, 178);.
элемент вектора не обязан быть DefaultConstructible, если заполнять вектор не через resize
resize? Расскажи по этапам, что творится с состоянием вектора во время изменения его длины. Вот, скажем, был вектор с нулевой емкостью и делаем ему resize( 5 ).
push_back или emplace_back, то конструктор по умолчанию вызываться уже не должен и, соответственно, его наличие не требуется.