Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
GameSource/SpriteColission.c
#include "ZAMProtos.h" |
void CollideSpriteLayer(spriteLayerPtr sprLayer1, spriteLayerPtr sprLayer2) |
/* |
VERY Simple colission detection. A sprite is not checked unless it has |
a callback, so if you have things that can never be collided with, |
don't give them a colission callback. Layers are collided against each other, |
so sprites in the same layer can never collide. |
*/ |
{ |
spritePtr spr1, spr2; |
Rect sectArea; |
for(spr1 = sprLayer1->sprites; spr1 != nil; spr1 = spr1->next) |
for(spr2 = sprLayer2->sprites; spr2 != nil; spr2 = spr2->next) |
if(spr1->collideHandler || spr2->collideHandler) { |
if( SectRect(&spr1->bounds, &spr2->bounds, §Area) ) { |
/* we have a rectangle colission - call the handlers if installed */ |
if(spr1->collideHandler) |
(*spr1->collideHandler)(spr1, spr2, §Area); |
if(spr2->collideHandler) |
(*spr2->collideHandler)(spr2, spr1, §Area); |
} |
} |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14