~ubuntu-branches/ubuntu/maverick/pygame/maverick

« back to all changes in this revision

Viewing changes to lib/sprite.py

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-01-14 17:02:11 UTC
  • mfrom: (1.3.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100114170211-21eop2ja7mr9vdcr
Tags: 1.9.1release-0ubuntu1
* New upstream version (lp: #433304)
* debian/control:
  - build-depends on libportmidi-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
120
120
        Any number of Group instances can be passed as arguments. The 
121
121
        Sprite will be added to the Groups it is not already a member of.
122
122
        """
123
 
        has = self.__g.has_key
 
123
        has = self.__g.__contains__
124
124
        for group in groups:
125
125
            if hasattr(group, '_spritegroup'):
126
126
                if not has(group):
135
135
        Any number of Group instances can be passed as arguments. The Sprite will
136
136
        be removed from the Groups it is currently a member of.
137
137
        """
138
 
        has = self.__g.has_key
 
138
        has = self.__g.__contains__
139
139
        for group in groups:
140
140
            if hasattr(group, '_spritegroup'):
141
141
                if has(group):
276
276
           (For now it is always a list, but newer version of Python
277
277
           could return different iterators.) You can also iterate directly
278
278
           over the sprite group."""
279
 
        return self.spritedict.keys()
 
279
        return list(self.spritedict.keys())
280
280
 
281
281
    def add_internal(self, sprite):
282
282
        self.spritedict[sprite] = 0
288
288
        del(self.spritedict[sprite])
289
289
 
290
290
    def has_internal(self, sprite):
291
 
        return self.spritedict.has_key(sprite)
 
291
        return sprite in self.spritedict
292
292
 
293
293
    def copy(self):
294
294
        """copy()
418
418
           dimensions as the surface. The bgd can also be
419
419
           a function which gets called with the passed
420
420
           surface and the area to be cleared."""
421
 
        if callable(bgd):
 
421
        try:
 
422
            bgd.__call__
 
423
        except AttributeError:
 
424
            pass
 
425
        else:
422
426
            for r in self.lostsprites:
423
427
                bgd(surface, r)
424
428
            for r in self.spritedict.values():
425
429
                if r is not 0: bgd(surface, r)
426
 
        else:
427
 
            surface_blit = surface.blit
428
 
            for r in self.lostsprites:
429
 
                surface_blit(bgd, r, r)
430
 
            for r in self.spritedict.values():
431
 
                if r is not 0: surface_blit(bgd, r, r)
 
430
            return
 
431
        surface_blit = surface.blit
 
432
        for r in self.lostsprites:
 
433
            surface_blit(bgd, r, r)
 
434
        for r in self.spritedict.values():
 
435
            if r is not 0: surface_blit(bgd, r, r)
432
436
 
433
437
    def empty(self):
434
438
        """empty()
555
559
        self._spritelayers = {}
556
560
        self._spritelist = []
557
561
        AbstractGroup.__init__(self)
558
 
        if kwargs.has_key('default_layer'):
559
 
            self._default_layer = kwargs['default_layer']
560
 
        else:
561
 
            self._default_layer = 0
 
562
        self._default_layer = kwargs.get('default_layer', 0)
562
563
            
563
564
        self.add(*sprites, **kwargs)
564
565
    
570
571
        self.spritedict[sprite] = Rect(0, 0, 0, 0) # add a old rect
571
572
        
572
573
        if layer is None:
573
 
            if hasattr(sprite, '_layer'):
 
574
            try:
574
575
                layer = sprite._layer
575
 
            else:
 
576
            except AttributeError:
576
577
                layer = self._default_layer
577
578
                
578
579
                
589
590
        high = leng-1
590
591
        mid = low
591
592
        while(low<=high):
592
 
            mid = low + (high-low)/2
 
593
            mid = low + (high-low)//2
593
594
            if(sprites_layers[sprites[mid]]<=layer):
594
595
                low = mid+1
595
596
            else:
610
611
        added to the default layer.
611
612
        """
612
613
        layer = None
613
 
        if kwargs.has_key('layer'):
 
614
        if 'layer' in kwargs:
614
615
            layer = kwargs['layer']
615
 
        if sprites is None or len(sprites)==0:
 
616
        if sprites is None or not sprites:
616
617
            return
617
618
        for sprite in sprites:
618
619
            # It's possible that some sprite is also an iterator.
745
746
        high = leng-1
746
747
        mid = low
747
748
        while(low<=high):
748
 
            mid = low + (high-low)/2
 
749
            mid = low + (high-low)//2
749
750
            if(sprites_layers[sprites[mid]]<=new_layer):
750
751
                low = mid+1
751
752
            else: