Созданные ответы форума
-
АвторСообщения
-
Не подскажете, что лучше использовать для создания инвентаря, я думал что-то из STL, или лучше самому написать?
15.10.2015 в 17:57 в ответ на: при одновременном нажатии двух кнопок персонаж быстрее двигается #1840Спасибо. А можете уточнить от чего зависит значение heroSpeed и почему так вычисляется координаты смещения.
13.10.2015 в 23:43 в ответ на: при одновременном нажатии двух кнопок персонаж быстрее двигается #1828к сожалению, почему то есть( даже если брать очень маленькое значение.
Ниже привожу код в пример:
C++12345678910111213141516if (Keyboard::isKeyPressed(Keyboard::W) && Keyboard::isKeyPressed(Keyboard::A) && this->binoculars == false){state = lup;if (onGround == false){speed = 0.15;CurrentFrame += 0.001*time;if (CurrentFrame > 10) CurrentFrame -= 10;this->sprite.setTextureRect(IntRect(75 * int(CurrentFrame), 735, 70, 50));}else {speed = 0.05;CurrentFrame += 0.001*time;if (CurrentFrame > 7) CurrentFrame -= 7;this->sprite.setTextureRect(IntRect(77 * int(CurrentFrame), 276, 75, 137));}}13.10.2015 в 18:23 в ответ на: при одновременном нажатии двух кнопок персонаж быстрее двигается #1825А если нужно реализовать ходьбу по диагонали, то как избавится от ускорения? Делал по примеру одного из ваших уроков, и каждую из диагоналей отобразил отдельным enum’ом. Реализовать получилось, но присутствует ускорение. Не подскажете как избавится?
Спасибо, я знаю что они одинаковы )). Просто когда я писал этот участок кода, то был сонный и не заметил, что вместо присвоения я поставил равно . И, честно, сначала подумал, что вы зачем то продублировали мое сообщение, но позже заметил, что вы указывали именно на это.
Скидывать весь код нет смысла, поскольку, то что меня интересует именно здесь )) А именно, я хочу разместить этот кусок в методе класса персонажа.
C++12345678910if (event.type == event.MouseButtonReleased && event.mouseButton.button == Mouse::Left){if (CheckMouseClick == true){CurrentFrame += 0.014*time;if (CurrentFrame > 7){CheckMouseClick = false;CurrentFrame -= 7;}hero.sprite.setTextureRect(IntRect(77 * int(CurrentFrame), 430, 77, 75));}}Но в условии “event.type == С && event.mouseButton.button == Mouse::Left” присутствует использование экземпляра класса Event, объявление которого в главной функции. Можно ли как то заменить “event.type”, “event.MouseButtonReleased” … на “слабую ссылку”.
Конечно можно передавать в качестве аргумента функции или глобального объявления, но хотелось бы обойтись без этого (если конечно можно).Я пытался что-то эквивалентное написать, но зачастую не работало.
У меня получилось реализовать так. Но почему то работает только если вставить после вызова метода update. Я бы проигрывание в метод control вставил (как ходьбу), но не знаю как условие преобразовать так чтоб не использовать объект event. А передавать в качестве параметра в функцию – не хочется список параметров засорят (если конечно обойти можно) . Не посоветуете что-то?
C++12345678910if (event.type == event.MouseButtonReleased && event.mouseButton.button == Mouse::Left){if (CheckMouseClick == true){CurrentFrame += 0.014*time;if (CurrentFrame > 7){CheckMouseClick = false;CurrentFrame -= 7;}hero.sprite.setTextureRect(IntRect(77 * int(CurrentFrame), 430, 77, 75));}}Вот код в основном цикле (объявление переменной вне цикла) . Пробовал его и в цикл событий вставлять – ничего.
bool CheckMouseClick = true;
if (Mouse::isButtonPressed(Mouse::Left)){
if (CheckMouseClick == true){
CurrentFrame += 0.005*time;
if (CurrentFrame > 7){
CheckMouseClick == false;
CurrentFrame -= 7;
}
hero.sprite.setTextureRect(IntRect(77 * int(CurrentFrame), 430, 77, 75));
}
else CheckMouseClick == true; -
АвторСообщения