Inside the while 1 loop, add a call to clock.tick(60). This will prevent
the loop from running more than once every 1/60 second.

On Thu, Jan 12, 2012 at 15:35, ANKUR AGGARWAL <coolankur2...@gmail.com>wrote:

> In the last code provided I messed up the Bullet Class Code. Apologies for
> that. Below is my code :
>
> import pygame
> from pygame.locals import *
> import random
> import time
>
> pygame.init()
> screen=pygame.display.set_mode((640,480),0,24)
> pygame.display.set_caption("Hit The Stone")
> background=pygame.Surface(screen.get_size())
> background=background.convert()
> screen.blit(background,(0,0))
>
> class Plane(pygame.sprite.Sprite):
>     def __init__(self):
>         pygame.sprite.Sprite.__init__(self)
>         self.image=pygame.image.load('plane.gif').convert()
>         self.rect=self.image.get_rect()
>         self.rect.centerx=random.randint(0,screen.get_width())
>         self.distancefromcenter=30
>         self.rect.centery=screen.get_height()-self.distancefromcenter
>         self.dx=2
>         self.dy=2
>
>     def update(self):
>         self.pressed=pygame.key.get_pressed()
>         if self.pressed[K_DOWN]:
>             self.rect.centery+=self.dy
>         elif self.pressed[K_UP]:
>             self.rect.centery-=self.dy
>         elif self.pressed[K_LEFT]:
>             self.rect.centerx-=self.dx
>         elif self.pressed[K_RIGHT]:
>             self.rect.centerx+=self.dx
>
>
>         if self.rect.bottom>=screen.get_height():
>             self.rect.bottom=screen.get_height()
>         elif self.rect.top<=0:
>             self.rect.top=0
>
>         if self.rect.centerx>=screen.get_width()-self.distancefromcenter:
>             self.rect.centerx=screen.get_width()-self.distancefromcenter
>         elif self.rect.centerx<=self.distancefromcenter:
>             self.rect.centerx=self.distancefromcenter
>
>
>
>
> class Bullet(pygame.sprite.Sprite):
>     def __init__(self,posx,posy,image):
>         pygame.sprite.Sprite.__init__(self)
>         self.image=image
>         self.rect=self.image.get_rect()
>         self.rect.center=(posx,posy-30)
>         self.dy=5
>
>
>
>     def update(self):
>         self.rect.centery-=self.dy
>         self.rect.center=(self.rect.centerx,self.rect.centery)
>         if self.rect.top<=0:
>             self.kill()
> class Blank(pygame.sprite.Sprite):
>     def __init__(self,posx,posy):
>         pygame.sprite.Sprite.__init__(self)
>         self.image=pygame.Surface((10,20))
>         self.image.fill((0,0,0))
>         self.rect=self.image.get_rect()
>         self.rect.center=(posx,posy-30)
>         self.dy=5
>
>
>     def update(self):
>         self.rect.centery-=self.dy
>         self.rect.center=(self.rect.centerx,self.rect.centery)
>         if self.rect.top<=0:
>             self.kill()
>
>
> def main():
>     image=pygame.image.load('geometrybullet.png').convert()
>     plane=Plane()
>     allSprites=pygame.sprite.Group(plane)
>     clock=pygame.time.Clock()
>
>     while 1:
>         pressed=pygame.key.get_pressed()
>         for i in pygame.event.get():
>             if i.type==QUIT or pressed[K_q]:
>                 exit()
>         if  pressed[K_SPACE]:
>                 bullet=Bullet(plane.rect.centerx,plane.rect.centery,image)
>                 bullet.shootCount=0
>                 allSprites.add(bullet)
>
>
>         allSprites.clear(screen,background)
>         allSprites.update()
>         allSprites.draw(screen)
>         pygame.display.flip()
>
>
> if __name__=='__main__':
>     main()
>
>
>
> On Thu, Jan 12, 2012 at 11:01 PM, ANKUR AGGARWAL 
> <coolankur2...@gmail.com>wrote:
>
>> import pygame
>> from pygame.locals import *
>> import random
>>
>> pygame.init()
>> screen=pygame.display.set_mode((640,480),0,24)
>> pygame.display.set_caption("Hit The Stone")
>> background=pygame.Surface(screen.get_size())
>> background=background.convert()
>> screen.blit(background,(0,0))
>>
>> class Plane(pygame.sprite.Sprite):
>>     def __init__(self):
>>         pygame.sprite.Sprite.__init__(self)
>>         self.image=pygame.image.load('plane.gif').convert()
>>         self.rect=self.image.get_rect()
>>         self.rect.centerx=random.randint(0,screen.get_width())
>>         self.distancefromcenter=30
>>         self.rect.centery=screen.get_height()-self.distancefromcenter
>>         self.dx=2
>>         self.dy=2
>>
>>     def update(self):
>>         self.pressed=pygame.key.get_pressed()
>>         if self.pressed[K_DOWN]:
>>             self.rect.centery+=self.dy
>>         elif self.pressed[K_UP]:
>>             self.rect.centery-=self.dy
>>         elif self.pressed[K_LEFT]:
>>             self.rect.centerx-=self.dx
>>         elif self.pressed[K_RIGHT]:
>>             self.rect.centerx+=self.dx
>>
>>
>>         if self.rect.bottom>=screen.get_height():
>>             self.rect.bottom=screen.get_height()
>>         elif self.rect.top<=0:
>>             self.rect.top=0
>>
>>         if self.rect.centerx>=screen.get_width()-self.distancefromcenter:
>>             self.rect.centerx=screen.get_width()-self.distancefromcenter
>>         elif self.rect.centerx<=self.distancefromcenter:
>>             self.rect.centerx=self.distancefromcenter
>>
>>
>>
>>
>> class Bullet(pygame.sprite.Sprite):
>>     def __init__(self,posx,posy,image):
>>         pygame.sprite.Sprite.__init__(self)
>>         if self.shootCount>10:
>>             self.image=image
>>             self.rect=self.image.get_rect()
>>             self.rect.center=(posx,posy-30)
>>             self.dy=5
>>         else:
>>             self.shootCount+=1
>>
>>
>>     def update(self):
>>         self.rect.centery-=self.dy
>>         self.rect.center=(self.rect.centerx,self.rect.centery)
>>         if self.rect.top<=0:
>>             self.kill()
>>
>>
>> def main():
>>     image=pygame.image.load('geometrybullet.png').convert()
>>     plane=Plane()
>>     allSprites=pygame.sprite.Group(plane)
>>     clock=pygame.time.Clock()
>>
>>     while 1:
>>         pressed=pygame.key.get_pressed()
>>         for i in pygame.event.get():
>>             if i.type==QUIT or pressed[K_q]:
>>                 exit()
>> *        if  pressed[K_SPACE]:*
>> *
>> bullet=Bullet(plane.rect.centerx,plane.rect.centery,image)*
>> *                bullet.shootCount=0*
>> *                allSprites.add(bullet)*
>>
>>
>>         allSprites.clear(screen,background)
>>         allSprites.update()
>>         allSprites.draw(screen)
>>         pygame.display.flip()
>>
>>
>> if __name__=='__main__':
>>     main()
>>
>>
>> I was trying to make shooting game. whenever I press the space key bullet
>> object is called (bold code) . I want delay between iterations to produce
>> the gap between the bullets.Tried the time.wait() but its working. Any
>> Ideas??
>>
>> Thanks In Advance
>>
>> Regards
>> Ankur Aggarwal
>>
>>
>
>

Reply via email to