コード例 #1
0
ファイル: RoBoGame.cs プロジェクト: suzuke/3DPhysics
        bool CollisionSkin_callbackFn(CollisionSkin skin0, CollisionSkin skin1)
        {
            RoverObject rover = null;
            Gobject     obj   = null;

            if (skin0.Owner.ExternalData is RoverObject)
            {
                rover = skin0.Owner.ExternalData as RoverObject;
            }
            if (skin1.Owner == null)
            {
                return(true);
            }
            if (skin1.Owner.ExternalData is Gobject)
            {
                obj = skin1.Owner.ExternalData as Gobject;
            }

            if (rover == null || obj == null)
            {
                return(true);
            }

            if (objectsToDelete.Contains(obj.ID)) // if the object is going to be deleted soon,
            {
                return(false);                    // don't bother doing any collision with it
            }
            int type = obj.type;

            if ((AssetTypes)type == AssetTypes.Laser1Pickup)
            {
                rover.SetLaser(true);
                DeleteObject(obj.ID);
                return(false);
            }
            if ((AssetTypes)type == AssetTypes.Radar1Pickup)
            {
                rover.SetRadar(true);
                DeleteObject(obj.ID);
                return(false);
            }
            return(true);
        }