Созданные ответы форума
-
АвторСообщения
-
Несколько сотен?
Ого так много!..
Сходите к экстрасенсу.
Ошибка может быть где угодно.Предоставьте участки подозрительного кода, возможно происходит потеря пакета данных.
Советую почитать ЭТУ статью.
Попробуй после удаления обрезать выделенную память под вектор
a2.shrink_to_fit();Тебя не смущает то, что ты вызываешь 1000 раз загрузку файла текстуры?
C++12image.loadFromFile("resources/" + File);texture.loadFromImage(image);В первую очередь рисуешь спрайт заднего фона, после него всё остальное.
Таким образом твой задний фон будет на заднем плане т.к. рисуется сначала он а потом всё остальное.
window.draw(backGround.sprite);
for(auto tme: TME_Objs) window.draw(tme->sprite);Если изображение целое, то смысл его считывать через TileMap?
У тебя в классе entity отсутствует метод sprite.setPosition(sf::Vector2f p);
Математика, или Box2D. Выбор за тобой)
На форумах картостроителей WarCraft III
Снял видео
while(window.pollEvent(event))
{
if (event.type == Event::MouseButtonPressed) // Если клавиша нажата shoot true
if (event.type == Event::MouseButtonReleased) // Если клавиша отжата shoot false
}if(shoot == true) timer += time;
else timer = 0;if(timer > 150) стрелять и обнулить таймер
У вас событийные условия находятся вне обработчика событий.
Попробуй так.
Перенеси эти условия в обработчик событий и добавь герою флаг is_ShootC++12345678910111213141516171819while (window.pollEvent(event)){if (event.type == Event::MouseButtonPressed)if (event.key.code == Mouse::Left)is_Shoot = true;if (event.type == Event::MouseButtonReleased)if (event.key.code == Mouse::Left)is_Shoot = false;}if(is_Shoot) timer_Bullet += time;if(timer_Bullet > 150.f){timer_Bullet = 0.f;Bullet.push_back(new TBullet(weaponsSprite,"MachineBullet",hero.x,hero.y,hero.anim.anim.sprite.getTextureRect().width,hero.anim.anim.sprite.getTextureRect().height, hero.STATE));--(static_cast<TWeapons*>(Inventory.inventory[2])->ammo);}Хватит болтовни, покажите нам код.
-
АвторСообщения