好的,所以我在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?
答案 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