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 > >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor