从另一种形式绘制

本文关键字:绘制 另一种 | 更新日期: 2023-09-27 17:49:58

我正在制作简单的游戏(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。我最终有Form form=(Form)sender的每一个绘制方法在生物类。

有更好的方法吗?

我认为,如果我继承Form在我的生物类,然后使用Graphics grp=this.CreateGraphics将工作,但它实际上不画任何东西。

谢谢

从另一种形式绘制

如果您的Creature类是在表单创建之后创建的,为什么不直接将表单作为参数传递给构造函数,例如:

public class Creature
{
    private Form form;
    public Creature(Form form)
    {
        this.form = form;
    }
    ...
    public void Left(int speed)
    {
        Graphics grp = form.CreateGraphics();
        ..
        ..
        ..
    }
}