我有一个名为Form2的表单,其中包含一个picturebox1。
从一个单独的类文件中,我从我的管道接收信息; charX,charY,map,mapX,& mapY。
如果您查看我附上的图片(右键单击并查看大图),您可以看到我的角色所在的地图上有一张迷你地图,它也会始终显示我的角色在迷你中的移动通过显示黄点来映射。
现在,我的Form2中有一个函数,如果我的角色输入了一个新的地图,就会从我单独的类文件中调用它。这个函数的作用是更新我的pictureBox1 imge-location以对应游戏中正确的迷你地图。它几乎是游戏中的外部迷你地图。
问题是它只显示正确的迷你地图图像,没有角色移动。
现在,这是我的代码片段。
正如你所读到的,如果游戏中没有迷你地图,我的pictureBox中没有迷你地图(来自我的服务器,404错误);因此,它在显示我的错误图像时将表单大小设置回默认值(152,110)。如果游戏中有迷你地图,则功能会更新pictureBox中的图片(通过抓取我的服务器),然后在上面的pictureBox1代码中,相应地设置表单大小(使其变得美观和紧凑,没有额外的空间)。
现在,我想要实现的是实时移动(我将使用我的管道提供的charX& Y信息)。
我想在我的pictureBox顶部绘制一个小黄点(如图中所示),它总是相应地绘制到charX& Y.
我表单上的pictureBox始终设置为0,0。
的位置我的问题是;如何在我的pictureBox上一致地绘制一个点(使用charX& Y)但是使用表格的位置(我猜)(例如:pictureBox位置是0,0)?
答案 0 :(得分:0)
我不太确定,但多亏了dotTutorials,他告诉我一次覆盖图形
这可能令人困惑,但可能有效
point a = new point(x,y);
pen p = new pen(colour);
Graphics g = Graphics.FromHwnd(Process.GetCurrentProcess.MainWindowHandle);
g.drawline(p,a,a);
或者您可以在表单上使用绘制位图(bmp图片)
int screen_width = 500;
int screen_height = 500;
// Your image..
var crosshair_bitmap = (Bitmap)Image.FromFile("C:\Example\CrosshairImage.png");
Graphics g = Graphics.FromHwnd(Process.GetCurrentProcesses.MainWindowHandle);
g.DrawImage(crosshair_bitmap, new Point(x, y);
全部归功于dotTutorials
抱歉错误
POOM