GDI上两个不同对象的碰撞

时间:2011-10-10 06:48:55

标签: c#

我想创建一个简单的游戏。 我觉得我在一个Graphics中有两个不均匀(不系统)的GDI对象,用户移动对象一个,我想在对象一与对象2碰撞时得到通知,我怎么能用C#做到这一点?

1 个答案:

答案 0 :(得分:1)

在单个位图上将两个对象绘制为黑色。然后在单独的位图上绘制其中一个。然后从另一个中减去一个位图。如果结果与位图相同,而另一个对象在单独的位图上绘制,那么您没有碰撞,否则就会发生碰撞。

这不需要任何数学运算,可以处理不规则形状的物体。只是位图差异和总和操作。

Sudo代码

var bmpObject1 = new bitmap->draw object 1
var bmpObject2 = new bitmap>draw object 2
var bmpCombined = new bitmap>draw object 1 and 2
if (bmpObject1 = (bmpCombined - bmpObject2))
    no collision
else
    collision