Мне интересно, что лучший способ сделать кнопку в MonoGame. Я попытался найти ответ, но, похоже, никого не было. Неправильно ли использовать кнопки WinForm? Если да, то какие существуют жизнеспособные альтернативы?Создание кнопки Xna/MonoGame
1
A
ответ
4
Мне всегда нравится создавать пользовательский класс кнопок, это дает мне большую гибкость при создании креативных кнопок.
Класс создает кнопку с текстурой и позицией x и позицией y и уникальное имя после того, как я сделал это, я проверю положение мыши и посмотрю, находится ли она внутри кнопки или нет, если она внутри кнопки он может щелкнуть по кнопке, и он будет искать кнопку по имени и выполнить заданную команду :)
Вот пример моего класса кнопок: (не лучший способ, но эй отлично работает для меня)
public class Button : GameObject
{
int buttonX, buttonY;
public int ButtonX
{
get
{
return buttonX;
}
}
public int ButtonY
{
get
{
return buttonY;
}
}
public Button(string name, Texture2D texture, int buttonX, int buttonY)
{
this.Name = name;
this.Texture = texture;
this.buttonX = buttonX;
this.buttonY = buttonY;
}
/**
* @return true: If a player enters the button with mouse
*/
public bool enterButton()
{
if (MouseInput.getMouseX() < buttonX + Texture.Width &&
MouseInput.getMouseX() > buttonX &&
MouseInput.getMouseY() < buttonY + Texture.Height &&
MouseInput.getMouseY() > buttonY)
{
return true;
}
return false;
}
public void Update(GameTime gameTime)
{
if (enterButton() && MouseInput.LastMouseState.LeftButton == ButtonState.Released && MouseInput.MouseState.LeftButton == ButtonState.Pressed)
{
switch (Name)
{
case "buy_normal_fish": //the name of the button
if (Player.Gold >= 10)
{
ScreenManager.addFriendly("normal_fish", new Vector2(100, 100), 100, -3, 10, 100);
Player.Gold -= 10;
}
break;
default:
break;
}
}
}
public void Draw()
{
Screens.ScreenManager.Sprites.Draw(Texture, new Rectangle((int)ButtonX, (int)ButtonY, Texture.Width, Texture.Height), Color.White);
}
}
Смежные вопросы
- 1. Динамическое создание кнопки-textview-кнопки
- 2. Создание кнопки с Divs
- 3. Создание прозрачной кнопки
- 4. Создание «искусственной» кнопки
- 5. CSS - Создание кнопки воспроизведения
- 6. Создание HTML-кнопки округлено
- 7. Динамическое создание кнопки Java?
- 8. Создание кнопки Stay Clicked
- 9. Qt: создание динамической кнопки
- 10. создание кнопки вверх
- 11. Создание кнопки класса
- 12. Создание прозрачной кнопки gwt
- 13. Создание кнопки дома
- 14. Создание динамической кнопки «Купить»
- 15. Создание кнопки GoTo Sheet
- 16. Создание кнопки через класс
- 17. Создание кнопки барельефа
- 18. Создание динамической кнопки радиосвязи
- 19. Создание кнопки программно выпуска
- 20. Создание кнопки перезапускает действие
- 21. создание кнопки - java
- 22. Создание кнопки Шаблон
- 23. Создание плавающей кнопки
- 24. Создание кнопки остановки старта
- 25. Создание кнопки Multiview Tappable
- 26. Создание кнопки пожертвования Paypal
- 27. Создание алфавита кнопки
- 28. создание кнопки, как значки
- 29. Создание кнопки PHP Clickable
- 30. Создание кнопок, отображающих кнопки
Это * плохая практика *? Это зависит от того, что вы пытаетесь сделать. Это кнопка для использования в игре (например, кнопка «Воспроизвести» на экране заголовка) или вы пытаетесь сделать какой-то редактор уровней? – craftworkgames
@craftworkgames Это было бы для использования в игре – madfjlkfafads