Как создать простую прямоугольную кнопку прямоугольника в libgdx без использования изображений? Кнопка должна иметь тень и должна обрабатывать нажатое состояние. Я хочу, чтобы это было программным, чтобы было легче изменить цвет, стиль позже и т. Д.Как создать простую кнопку закругленного прямоугольника в libgdx?
ответ
Мое понимание вашего вопроса состояло в том, как создать округленный прямоугольник внутри программы без предварительного создания любых изображений вне кода ,
Я был в подобной ситуации некоторое время назад, и я закончил писать функцию, ниже которой генерируется округленный прямоугольник Pixmap
на основе параметров (все единицы находятся в пикселях). Он также работает с разными значениями альфа, чтобы обеспечить непрозрачность (именно поэтому используются два объекта Pixmap
).
Получившийся Pixmap
может быть легко передан конструктору Texture
, если вы обнаружите, что его проще визуализировать.
public static Pixmap createRoundedRectangle(int width, int height, int cornerRadius, Color color) {
Pixmap pixmap = new Pixmap(width, height, Pixmap.Format.RGBA8888);
Pixmap ret = new Pixmap(width, height, Pixmap.Format.RGBA8888);
pixmap.setColor(color);
pixmap.fillCircle(cornerRadius, cornerRadius, cornerRadius);
pixmap.fillCircle(width - cornerRadius - 1, cornerRadius, cornerRadius);
pixmap.fillCircle(cornerRadius, height - cornerRadius - 1, cornerRadius);
pixmap.fillCircle(width - cornerRadius - 1, height - cornerRadius - 1, cornerRadius);
pixmap.fillRectangle(cornerRadius, 0, width - cornerRadius * 2, height);
pixmap.fillRectangle(0, cornerRadius, width, height - cornerRadius * 2);
ret.setColor(color);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
if (pixmap.getPixel(x, y) != 0) ret.drawPixel(x, y);
}
}
pixmap.dispose();
return ret;
}
Используя эту функцию, она не должна быть слишком сложной, чтобы сделать свой собственный объект-оболочку (например, RoundedRectangle
), который будет перерисовать изображение каждый раз, когда один из параметров был изменен, и нужно быть оказаны.
Спасибо, но я думаю, что этот метод не очень эффективен ... – user1615898
Операции O (ширина * высота), которые довольно быстры (но не в вашем цикле), но вам не нужно повторно отображать изображение в каждом кадре , а не только при изменении любого значения. –
- 1. Как исправить кнопку от прямоугольника до закругленного прямоугольника?
- 2. LibGDX - как добавить простую кнопку?
- 3. UIButtonTypeInfoLight внутри закругленного прямоугольника?
- 4. Рисование закругленного прямоугольника
- 5. Как погладить из верхнего центра закругленного прямоугольника
- 6. Получить точку вокруг закругленного прямоугольника
- 7. Как создать кнопку в Libgdx?
- 8. SpriteKit: Как оживить рисунок закругленного прямоугольника
- 9. Изменение обрамленного изображения в виде закругленного прямоугольника
- 10. Разница в использовании закругленного прямоугольника и нормального прямоугольника
- 11. Android - Невозможно создать простую форму прямоугольника ... UnsupportedOperationException?
- 12. обычная высота для закругленного прямоугольника UITextField
- 13. Рисование закругленного прямоугольника при перетаскивании не удается
- 14. Как создать простую кнопку с помощью Javascript
- 15. iPhone: Как создать простую кнопку «Готово»?
- 16. Метод перекрытия прямоугольника libgdx
- 17. Цвет Libgdx Объект прямоугольника
- 18. Как предотвратить переполнение изображения из закругленного прямоугольника с помощью CSS3?
- 19. Рисование закругленного прямоугольника в DirectX/3D для 2D
- 20. Android - Инсульт выглядит неровным в углах закругленного прямоугольника
- 21. Создать прямоугольник с фиксированной шириной закругленного?
- 22. Как создать простую кнопку в cakephp без html-кода
- 23. libgdx zoom/drag внутри прямоугольника
- 24. Как отключить кнопку в libgdx
- 25. Как добавить простую кнопку ActionScript
- 26. Как сделать простую кнопку в liftweb
- 27. Генерировать случайное положение с равномерным распределением внутри закругленного прямоугольника
- 28. Как создать простую функцию?
- 29. Как создать простую страницу пароля
- 30. Выделите простую кнопку в openui5
Можете ли вы указать, что вы подразумеваете под изображениями? Все, что вы видите на экране, - это «образ». Что конкретно вы пытаетесь избежать и почему? – Tenfour04