我试图使用自定义的.PNG文件从字母表中的字母给我的游戏一些漂亮的文本图形。然而,由于我的WinForms游戏的核心功能使用最少的图形工作(我有一个定时器设置为启动一个小动画程序,当用户输入一个他们已经尝试过的单词时淡出“猜测”一词 - 这是完成的使用DrawString())。现在我试图让DrawImage(Image, dstRect, srcRect, Unit)
工作,我已经设置为在表单加载上运行。DrawImage()'精灵'没有出现
private void DrawLetters()
{
// Create image.
Graphics letters = this.CreateGraphics();
Image newImage = Image.FromFile(strPath + "Letter_Map.png");
// Create rectangle for displaying image.
Rectangle destRect = new Rectangle(25, 25, 80, 80);
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(0, 0, 833, 833);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
letters.DrawImage(newImage, destRect, srcRect, units);
}
这实际上是逐字从MSDN网站。我的表单现在用一组标签填充以向用户显示游戏所需的字母网格。它们是否被覆盖了自定义矩形?我想最终用图像替换它们。我知道srcRect是(x,y,宽度,高度),所以我给了它全尺寸的'spritesheet'。对于dstRect,我只希望它在25x,25y左右的表格上放置一个80x80px的块。
对于它的问题,我创建了一个空白表单,并在该表单加载事件(我将该函数复制到该表单的代码)期间调用了我的DrawLetters()
函数。但是我什么也没看到,所以我开始有点困惑。我可能需要一些关于如何将绘图与屏幕上绘制的表单和控件结合使用的教育。
编辑这https://stackoverflow.com/questions/837423/render-a-section-of-an-image-to-a-bitmap-c-sharp-winforms是让我去最初的东西,但这个用户有XNA的工作知识,似乎是试图结合了与WinForms的。我相信,XNA对于我想要'漂亮'的简单文本游戏来说是过度杀伤力。
我编辑了自己的冠军。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –
谢谢,约翰。我会记住下次。 – armadadrive