c#图形对象相互绘制

时间:2013-06-22 12:01:10

标签: c# object graphics drawing pacman

好的,所以我在c#中创建了一个pacman游戏,我已经把pacman打倒了。现在我想让我的怪物进入游戏。

我创建了一个包含移动方法和所有内容的类。现在的问题是我在另一个图形对象上绘制怪物和pacman。它们都是我的面板的大小,当我运行代码时,只有pacman出现,怪物正在工作,但它位于pacman正在移动的图形对象下面。

这是绘制怪物和pacman的代码:

private void timMove_Tick(object sender, EventArgs e)
    {
        Bitmap bitmap = new Bitmap(panBox.Width, panBox.Height);
        Graphics g = Graphics.FromImage(bitmap);
        foreach (Monster mon in monsters)
        {
            mon.move(g);
        }
        foreach (Pacman pac in characters)
        {
           pac.move(g);
        }
        Graphics g2 = panBox.CreateGraphics();
        g2.DrawImage(bitmap, 0, 0);            
    }

我的问题是:如何让它们在相同的图形对象上绘制,或者它们只显示而不是现在只显示pacman?

1 个答案:

答案 0 :(得分:1)

我认为你应该考虑一般的课程结构。 我建议使用这样的东西作为起点:

(cd libdieharder; \make)
make[1]: Entering directory `/f/dieharder-3.31.1/libdieharder'
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -DVERSION=3.31.1 -DLITTLE_ENDIAN=1 -I ../include -I /usr/local/include  -std=c99 -Wall -pedantic -g -O2 -MT libdieharder_la-dab_dct.lo -MD -MP -MF .deps/libdieharder_la-dab_dct.Tpo -c -o libdieharder_la-dab_dct.lo `test -f 'dab_dct.c' || echo './'`dab_dct.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DVERSION=3.31.1 -DLITTLE_ENDIAN=1 -I ../include -I /usr/local/include -std=c99 -Wall -pedantic -g -O2 -MT libdieharder_la-dab_dct.lo -MD -MP -MF .deps/libdieharder_la-dab_dct.Tpo -c dab_dct.c  -DDLL_EXPORT -DPIC -o .libs/libdieharder_la-dab_dct.o
make[1]: Leaving directory `/f/dieharder-3.31.1/libdieharder'

您应该查看一般的继承/多面体和类。 Polimorphism: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/polymorphism 类别: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/classes