我想在XNA中用按鈕和滑塊創建頁面,並嘗試了一些想法,但我似乎在保持「面向對象」的東西和讓按鈕和滑塊保持有用而沒有多加實際'按鈕'和'滑塊'類。是否可以將方法添加到集合中的類中?
所以我想知道是否有一種神奇的方式來實例化一個Button類,然後添加一個方法或某種方法的鏈接,以便我可以迭代通過我的按鈕或滑塊集合,如果一個'hit'是否執行與該按鈕相關的特定方法?
最好我想在代表當前屏幕即時繪圖的父類中一個接一個地寫這些方法。
幻想的代碼示例:
class Room // Example class to manipulate
{
public bool LightSwitch;
public void Leave() { /* Leave the room */ }
}
class Button
{ // Button workings in here
public bool GotPressed(/*click location */)
{ /* If click location inside Rect */ return true; }
public void magic() {} // the method that gets overidden
}
public class GameScreen
{
public Room myRoom;
private List<Button> myButtons;
public GameScreen()
{
myRoom = new Room();
myRoom.LightSwitch = false;
List<Button> myButtons = new List<Button>();
Button B = new Button();
// set the buttons rectangle, text etc
B.magic() == EscapeButton(B);
myButtons.Add(B);
Button B = new Button();
B.magic() == SwitchButton(B);
myButtons.Add(B);
}
public void Update() // Loop thru buttons to update the values they manipulate
{ foreach (Button B in myButtons)
{ if(B.GotPressed(/*click*/)) { B.magic(B) } }}
// Do the specific method for this button
static void EscapeButton(Button b)
{ myRoom.Leave(); }
static void SwitchButton(Button b)
{ myRoom.LightSwitch = true; }
}
+1擊敗我吧 – 2011-05-02 14:35:36
這就是我想要的,我只是還沒有看到事件的一個好例子,msdn的例子似乎增加了很多faff並且隱藏了更多的實際用途! 非常感謝! – Trinnexx 2011-05-03 07:45:40