SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Скорость анимации
В этой теме 5 ответов, 3 участника, последнее обновление BunDem 6 года/лет, 8 мес. назад.
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
-
АвторСообщения
-
Как уменьшить скорость смены анимации? Смена *кадров* происходит очень быстро! Установка фпс не помогает
C++12345678910if (Keyboard::isKeyPressed(Keyboard::Right)){MovState = m_right;frame += 0.30*time;if (frame >= 3) frame -= 3;EnSprt.setTextureRect(IntRect(int(frame) * 32, 64, 32, 32));speed = (float)0.09;cout << "frame: " << frame << " ::: " << time << endl;}}C++1234567891011121314151617while (MainWindow.isOpen()) {float timer = (float)gameClock.getElapsedTime().asMicroseconds();gameClock.restart();timer = timer / 500;Event event;while (MainWindow.pollEvent(event)){if (event.type == Event::Closed){MainWindow.close();}}MainWindow.clear();mPlayer.MapUpdate(timer);MainWindow.draw(mPlayer.EnSprt);MainWindow.display();}C++12345678910111213141516171819void MapUpdate(float time){MovControls(time);switch (MovState){case m_left: dx = -speed; break;case m_right: dx = speed; break;case m_up: dy = (float)-0.07; break;case m_down: dx = 0; break;case m_stay: break;}x += dx*time;Collisions(dx, 0);y += dy*time;Collisions(0, dy);EnSprt.setPosition(x + w / 2, y + h / 2);if (Moving == false) speed = 0;dy = dy + (float)0.00150*time;}frame+= скорость анимации*time;
Так есть эта строка, прочел код бы
Если подрубить ФПС, и понизить до 15, то все нормально. В остальных случаях это Флэш
У вас корость анимации 0.30 * time , поставить 0.1 не судьба ?
ахах, прочел код бы)) Скорость мены кадров это и есть то число, на которое умножаете время.
-
АвторСообщения
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
Для ответа в этой теме необходимо авторизоваться.