游戏图像资源不适合窗口大小

时间:2017-06-16 05:33:04

标签: c# forms image game-development

我正在创建一个简单的2D滚动游戏作为我在C#上的学校项目,但我似乎无法找到背景(平台)和表格高度之间的比例。 这是我正在尝试做的事情,我的表格高度是1080,我的所有图片高度都是2160px(表格的两倍),dpi为96,我有背景,地板和英雄都在不同的图像文件所以我可以随心所欲地移动每一个。 我试图让它们全部从底部开始,所以看起来像how it's supposed to look

所以我写了这段代码。

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);
    }

但最终看起来像这样 enter image description here

红色正方形是图像尺寸的一半(1080) 即使我将图像大小更改为1080并使y = 0,它仍然不适合表格,它总是超出屏幕尺寸。我花了几个小时搜索,但找不到任何帮助。真的希望有人可以帮助我,提前谢谢〜

UPDATE 当我设置y = -1080时会发生这种情况 enter image description here

1 个答案:

答案 0 :(得分:0)

如果内存服务,winforms / GDI画布上的0,0是左上角,尝试将y设置为1080而不是0