学习XNA的时候,《XNA4.0学习指南》上说碰撞检测是把玩家的角色跟一个数组的敌人角色用一个循环一一检测。
由此联想到即时战略游戏(星际争霸、魔兽争霸、红色警戒、帝国时代)里边是怎么判断鼠标点到哪个单位的。
首先,记下鼠标的x、y值,然后把这对值与游戏中所有角色(也可以判断所有在屏幕中显示的角色)的“包围盒”(就是碰撞检测用的矩形,也可以单独设立一个,与碰撞检测那个区别开来)进行比较,判断鼠标位置在哪个包围盒之中,这样就能得出鼠标到底点中了哪个单位。
扩展一下,普通的应用程序的内部实现可能也是这样做的。