请帮忙解释Sprite 的方法collidesWith(Image, int, int, boolean)
如果是Sprite与Sprite的碰撞 很容易理解,但是他这边跟Image 是怎么回事?
能否给出一个实际的例子看看?
问题点数:50、回复次数:7Top
1 楼wingser(小吴)回复于 2005-02-04 01:18:45 得分 10
一个image只能paint一次,所以可以做碰撞检测呀Top
2 楼cuilichen(fjfjfjfj)回复于 2005-02-04 09:15:21 得分 20
Sprite的作用就是承载Image,并作出相应的处理,所以这里会和Image发生关系。这一点从Sprite的构造函数中就可以看出来。
collidesWith(Image,int,int,boolean)的作用就是检测现有的Sprite承载的Image是否和目标Image发生碰撞,
参数中:
Image 目标Image
int 目标Image的左上角的x坐标
int 目标Image的左上角的y坐标
boolean 是否执行象素级碰撞检测,若否,则检测两个Image的矩形框是否碰撞。Top
3 楼prok(换换口味)回复于 2005-02-04 10:48:16 得分 10
upTop
4 楼kingofvc(提薪像做贼 )回复于 2005-02-04 13:32:30 得分 0
to cuilichen(fjfjfjfj) :
我能否这样理解 效果等同于把目标Image也创建一个Sprite 然后放在(x,y)的位置上 然后跟原来的Sprite进行碰撞检测?Top
5 楼sy5591(呵呵★我爱王培)回复于 2005-02-04 13:34:12 得分 10
今天放假
顶顶顶
Top
6 楼sy5591(呵呵★我爱王培)回复于 2005-02-04 13:34:19 得分 0
今天放假
顶顶顶
Top
7 楼cuilichen(fjfjfjfj)回复于 2005-02-04 13:49:24 得分 0
首先,应该明确,碰撞检测的目的是检测两个Image的图像是否发生重叠,因为这是逻辑上不允许的。
其次,Sprite的作用就是承载Image,特别是Sprite可以实现“动画效果”的封装,因此碰撞检测就由Sprite来进行了。
所以,我们应该把碰撞的概念重新定位在Image上,而不是Sprite上,即使碰撞检测是由Sprite来实现的。
Top




