以前,我想要做一个"粉末游戏",就是一堆粉末,但是,我发现,比如说你有100个粉末,那么你要进行数千次检测,这对于CPU来说是一个极大的负担,所以我提出了一种新的碰撞检测(虽然我感觉已经有人比我先提出了…),姑且就叫他映射表碰撞检测吧…
简单来说就是把每个粉末的位置都放到一个数组中,这样检测是否撞到别的就容易许多。
//记录位置
struct dot
{
int x,y;
};
//创建数组
bool table[100][100];
vector<dot> dot_list;
//加入
for(int i = 0;i < dot_list.size();i++)
{
dot d = dot_list.at(i);table[d.y][d.x] = true;
}
//检测
bool fun(int i)
{
dot d = dot_list.at(i);if(table[d.y + 1][d.x] == true)return true;return false;
}