2
我创建了一个简单的二维滚动游戏作为我在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时,仍然不适合这种形式,它总是超出屏幕尺寸。我花了几个小时寻找,但我找不到任何有帮助的东西。真希望有人能帮助我,在此先感谢〜
当我这样做时黑屏,没有任何显示,整个图像超出屏幕。 我试着将它设置为-1080 tho,所以它应该有图像的结尾从(0,0)开始,但是它显示图像在y = 165处结束 – user3158009