我正在製作簡單的遊戲(c#Win Forms),其中我的角色在關鍵事件(箭頭)上移動。c#從另一個表格中繪製
主要類:
switch(e.Keycode)
{
case Keys.Left:
creature.moveleft(this,speed);
}
我的生物類看起來是這樣的:
public void Left(object sender,int speed)
{
Form form = (Form)sender;
Graphics grp = form.CreateGraphics();
..
..
..
}
我不喜歡,我要我要畫點什麼,每次經過this
。對於Creature類中的每種繪製方法,我最終都有Form form=(Form)sender
。
有沒有更好的方法來做到這一點?
我認爲如果我在我的生物類中繼承Form
並且使用Graphics grp=this.CreateGraphics
可以工作,但它實際上並沒有繪製任何東西。
感謝
'CreateGraphics'使臨時繪圖表面,甚至在你看到它之前可能會被刪除。方法選擇不當。使用窗體的「Paint」方法在窗體中繪製。 – DonBoitnott