C# C-与代码生成图像相交的对象
我正在尝试使用C Windows窗体构建一个简单的RPG,因为我最近偶然发现了一个演示此功能的有趣教程。我有两项: 已放置在游戏中的“角色”对象: 我还有一个代码生成的Draw对象,一个内置于游戏中的树:C# C-与代码生成图像相交的对象,c#,winforms,object,collision-detection,picturebox,C#,Winforms,Object,Collision Detection,Picturebox,我正在尝试使用C Windows窗体构建一个简单的RPG,因为我最近偶然发现了一个演示此功能的有趣教程。我有两项: 已放置在游戏中的“角色”对象: 我还有一个代码生成的Draw对象,一个内置于游戏中的树: public void MainFormPaint(object sender, PaintEventArgs e) { //Drawing a tree, to create transparency Image Tree_2
public void MainFormPaint(object sender, PaintEventArgs e)
{
//Drawing a tree, to create transparency
Image Tree_2 = Image.FromFile("[Directory to PNG].png");
Tree_2.Tag = "Tree";
e.Graphics.DrawImage(Tree_2,50,50,200,200);
}
…由此产生:
鉴于我无法通过类似以下方式检测到物体:
Character.Bounds.Intersectswith([insert_my_picture].Bounds);
这让我有点困惑,我不知道该怎么办。我想检测这次碰撞,这样我就可以停止移动。但是,我不知道如何检查我旁边的“空白点”或代码生成的任何对象。需要注意的是,生成此图像的代码是为了保持图形的透明度,因为在表单中放置对象和使用重叠对象保持透明度显然存在问题
谢谢你的帮助 在运行时绘制图形时,我需要生成一个矩形:
Rectangle firstTree = new Rectangle();
…在公共变量区域中,然后在绘制事件中创建它
public void MainFormPaint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(Tree_Obj,50,50,200,200);
firstTree.X = 50;
firstTree.Y = 50;
firstTree.Width = 200;
firstTree.Height=200;
}
完整的封装边界仅用于试验。问题解决了 有许多关于不同类型碰撞系统的教程,因为这在大多数游戏中都会以不同的程度出现。试试网络搜索,喝杯咖啡。。也许像素完美也是一个有用的关键词,尽管通常人们希望建立额外的边界区域并分离视图/物理系统。谢谢。然而,我发现了这一点,除了参数[Rectangle rectangleA],我不知道如何实现所有东西。关于图片是否存在可以传递的“其他”参数?