我正在制作简单的游戏(c#Win Forms),我的角色在关键事件(箭头)上移动。
主要课程:
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类中的每个draw方法都有Form form=(Form)sender
。
有更好的方法吗?
我认为如果我在我的Creature类中继承Form
而不是使用Graphics grp=this.CreateGraphics
会起作用,但它实际上并没有绘制任何东西。
由于
答案 0 :(得分:0)
如果在创建表单后创建了Creature类,为什么不将表单作为参数传递给构造函数,例如:
public class Creature
{
private Form form;
public Creature(Form form)
{
this.form = form;
}
...
public void Left(int speed)
{
Graphics grp = form.CreateGraphics();
..
..
..
}
}