我正在创建一个简单的2D滚动游戏作为我在C#上的学校项目,但我似乎无法找到背景(平台)和表格高度之间的比例。 这是我正在尝试做的事情,我的表格高度是1080,我的所有图片高度都是2160px(表格的两倍),dpi为96,我有背景,地板和英雄都在不同的图像文件所以我可以随心所欲地移动每一个。 我试图让它们全部从底部开始,所以看起来像
所以我写了这段代码。
void Start()
{
flag = 's';
bg = new Bitmap("bg.bmp");
pf = new Bitmap("platform.png");
player = new Bitmap("idle.png");
y = -(pf.Height-this.ClientSize.Height);
mmy = y;
DrawDubBuff(this.CreateGraphics());
}
void DrawScen(Graphics g)
{
g.Clear(Color.Black);
//SolidBrush br = new SolidBrush(Color.Yellow);
//g.FillRectangle(br, this.Width/2 - this.Height/4, 0, (this.Height/2), this.Height);
if (flag=='m')
{
g.DrawImage(bg, x, y);
g.DrawImage(menu, this.Width/2, this.Height/2);
}
else if (flag == 's')
{
g.DrawImage(bg, x, y);
g.DrawImage(pf, pfx, y);
g.DrawImage(player, mmx, mmy);
//Color pixel = pf.GetPixel(mmx, mmy+10);
MessageBox.Show(""+pf.Height+", "+ this.ClientSize.Height);
//if (pixel.A == 0)
//{
// mmy--;
//}
}
}
void DrawDubBuff(Graphics g)
{
Graphics g2 = Graphics.FromImage(off);
DrawScen(g2);
g.DrawImage(off, 0, 0);
}
红色正方形是图像尺寸的一半(1080) 即使我将图像大小更改为1080并使y = 0,它仍然不适合表格,它总是超出屏幕尺寸。我花了几个小时搜索,但找不到任何帮助。真的希望有人可以帮助我,提前谢谢〜
答案 0 :(得分:0)
如果内存服务,winforms / GDI画布上的0,0是左上角,尝试将y设置为1080而不是0