所以我正在开发一个小型游戏,其中有一堆随机圈子在移动,你自己控制一个圈子。如果圆与另一个圆相交,则较大的圆应该吸收较小的圆。
到目前为止,我的方法非常糟糕,因为它只是在相交时才会生长出更大的圆圈。这会导致不切实际的尺寸变化,具体取决于它们相交的时间长短。 播放器和敌人是矩形。
if(intersecting(player, enemy)){
if(player.width > enemy.width) {
player.width += 1; //increase size
player.height += 1;
player_posx -= 0.5; // compensate that circle increases to bottom right
player_posy -= 0.5;
} else if (player.width < enemy.width) {
player.width -= 1; //decrease size
player.height -= 1;
player += 0.5;
player += 0.5;
}
}
相反,我想准确地将一个圆圈的区域添加到另一个圆圈。我的问题是玩家和敌人的班级不断更新,我无法计算两个交叉圆之间的区域差异,因为它们在相交时会不断改变它们的大小。