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