Созданные ответы форума
-
АвторСообщения
-
Залей проект на облако, гляну что у тебя там не получается.
или найди меня в vk.com/v1z34C++123456//У тебя идёт автоматическое смещение нулевой точки в центр спрайта.sprite.setOrigin(w / 2, h / 2);//попробуй сделай так//sprite.setPosition(x + w / 2, y + h / 2); тут у тебя получается ты указываешь на правый нижний угол.sprite.setPosition(x, y);Мне Павел подсказал, хотя и догодаься не сложно, но увы)
Если я правильно понял то добавь логическую переменную, отвечающую за направление, при столкновении меняй скорость на отрицательное значение.
C++123enum Direction {dirLeft, dirRight} dir;if(dir == dirLeft){ dir = dirRight; dx = -0.1; }if(dir == dirRight( dir = dirLeft; = +0.1; }Это более чем достаточно
Откуда инфа?Решено! Лучше использовать sf::RectangleShape (Прямоугольник);
Выглядит примерно так:C++12345678910111213141516void PickHeroMenu::SetSprite(sf::String F, int W, int H, float X, float Y){Rect::x = X; Rect::y = Y;PickHeroMenu::width = W;PickHeroMenu::height = H;sf::Vector2f size(width,height);PickHeroMenu::rect.setSize(size);PickHeroMenu::file = "Textures/PickHeroMenu/"+F;PickHeroMenu::texture.loadFromFile(PickHeroMenu::file);PickHeroMenu::rect.setTexture(&texture);//PickHeroMenu::rect.setTextureRect(sf::IntRect(0,0,PickHeroMenu::width,PickHeroMenu::height));PickHeroMenu::rect.setPosition(Rect::x,Rect::y);}В OpenGL это делается просто, Указываются координаты вершин полигона, и текстура полностью ложится на него независимо от разрешения текстуры.
Ты сможешь создать массив объектов, если у тебя будет конструктор по умолчанию.
Player(){}Должна но без dllок не работает
Я заставлял других закидовать файлы в системную папку.Тебе нужно динамически выделять новые объекты тела и двигать их циклом.
Запоминать координаты поворота и т.д.if (event.type == sf::Event::Resized)
{
winX = window.getSize().x;
winY = window.getSize().y;if( winX < winY ) window.setSize().x = …;
if( winY < winX ) window.setSize().y = …;
}Когда ты изменяешь размер окна, это происходит не пропорционально. Поэтому изображение искажается.
C++123#include<Windows.h>GetSystemMetrics(SM_CXSCREEN) //Разрешение экрана по XGetSystemMetrics(SM_CYSCREEN) //Разрешение экрана по YЕщё dll можно закинуть в
32 разрядная ОС: Windows/system32
64 разрядная ОС: Windows/systemПопробую сделать через наследование.
-
АвторСообщения