2017-06-16 70 views
2

我创建了一个简单的二维滚动游戏作为我在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

回答

0
上一个WinForms

如果没记错,0,0/GDI画布左上角,尝试将y设置为1080而不是0

+0

当我这样做时黑屏,没有任何显示,整个图像超出屏幕。 我试着将它设置为-1080 tho,所以它应该有图像的结尾从(0,0)开始,但是它显示图像在y = 165处结束 – user3158009