def createSprites(self, ret=1): print "Creating sprites..." if (self.type == 'Normal'): group = sprite.Group() elif (self.type == 'Camera'): group = sprite.CamGroup() elif (self.type == 'Camera-Zoom'): group = sprite.ZoomGroup() for R in range(0, self.size[0]): for C in range(0, self.size[1]): if (self.layout[R][C] != 0): rect = _pygame.rect.Rect(C * self.tileSize[0], R * self.tileSize[1], self.tileSize[0], self.tileSize[1]) image = self.layoutImage[self.layout[R][C]].copy() collision = self.collisionTypes[self.collision[R][C]] camera = self.camera #if ('Camera' not in self.type): # group.add(sprite.Sprite(rect, image, collision)) if (self.type == 'Camera'): group.add( sprite.CamSprite(rect, image, camera, collision)) elif (self.type == 'Camera-Zoom'): group.add( sprite.ZoomSprite(rect, image, camera, collision)) self._sprites = group print "Done" print "" if (ret != 0): return group
def updateAndRender(self): back_sprites = sprite.Group() bkg1, bkg2, bkg3, bkg4 = background(), background2(), background3(), \ background4() back_sprites.add(bkg1, bkg2, bkg3, bkg4) screen_sf = upg.display.set_mode() while True: if (self.scrollBack): back_sprites.update() back_sprites.draw(screen_sf) self.drawText() if (self.buttonPress()): return cs.state(self.nextState, gv.level) upg.display.flip()
# self.animDurCounter = self.animDur # Set current image self.image = self.frames[self.currentFrameNum] self.rect.x += self.frameOffsets[self.currentFrameNum][0] self.rect.y += self.frameOffsets[self.currentFrameNum][1] else: self.animDurCounter -= 1 # Advance position self.rect.x += self.vx self.rect.y += self.vy # all_sprites = sprite.Group() all_frogittos = sprite.Group() all_cars = sprite.Group() # Create frogitto sprites for i in range(1): frogittoGob = GameObject( [spritedata.frogittoSurf_f1, spritedata.frogittoSurf_f2, spritedata.frogittoSurf_f3], [[0,0],[0,0],[0,0]]) # out of screen frogittoGob.rect.x = 50 frogittoGob.rect.y = 70 frogittoGob.animDur = 2;
surface_blit = surface.blit # draw sprite and pile of clones for spr in sprites: # draw on on refresh intervals self.spritedict[spr] = surface_blit(spr.image, spr.rect.x, spr.rect.y) for cl in range(spr.numClones): surface_blit(spr.image, spr.rect.x, spr.rect.y + (cl * spr.rect.height)) self.lostsprites = [] # all_sprites = sprite.Group() all_rockpiles = RockPileGroup() #Create ship shipGob = GameObject([gamedata.shipSurf], [[0, 0]]) shipGob.rect.x = 50 shipGob.rect.y = 70 shipGob.animDur = 2 all_sprites.add(shipGob) # Create rockpile sprites numPiles = (screenW - (8 * 2)) // (gamedata.rockSurf_f0.get_rect().width - 2 + 5) for i in range(numPiles): gob = GameObject([gamedata.rockSurf_f0], [[0, 0]])
def updateAndRender(self): """main play loop""" screen_sf = upg.display.set_mode() #create groups for the sprites enemy_sprites = sprite.Group() nice_sprites = sprite.Group() #choose correct info for the level timer, numC, freqC, numRl, freqRl, numRr, freqRr, numU, freqU = self.levelInfo( ) #create comets, rockets and ufo sprites all_comets = sprite.Group() self.enemyCreator(1, numC, 100, 100, all_comets, enemy_sprites) all_rocketsL = sprite.Group() self.enemyCreator(2, numRl, -100, -100, all_rocketsL, enemy_sprites) all_rocketsR = sprite.Group() self.enemyCreator(3, numRr, 150, -100, all_rocketsR, enemy_sprites) all_ufo = sprite.Group() self.enemyCreator(4, numU, 100, 100, all_ufo, enemy_sprites) #create player and background sprites player = Player() nice_sprites.add(player) #create background bkg1, bkg2, bkg3, bkg4 = background(), background2(), background3( ), background4() nice_sprites.add(bkg1, bkg2, bkg3, bkg4) while True: #check for collisions hit = sprite.spritecollideany(player, enemy_sprites) if hit != None: player.D = True while self.deathTimer < 25: nice_sprites.update() nice_sprites.draw(screen_sf) upg.display.flip() self.deathTimer += 1 return cs.state(2, gv.level) #draw the timer timer -= self.ticker umachine.draw_text(90, 0, str(timer), 3) #when time gets to zero go to next level if timer == 0: if gv.level < 5: return cs.state(4, gv.level) if gv.level == 5: return cs.state(3, gv.level) #place the enemies self.cometPlacer(freqC, all_comets) self.rocketPlacer(freqRl, all_rocketsL, True) self.rocketPlacer(freqRr, all_rocketsR, False) self.cometPlacer(freqU, all_ufo) #update sprites and draw 'em nice_sprites.update() nice_sprites.draw(screen_sf) enemy_sprites.update() enemy_sprites.draw(screen_sf) upg.display.flip() #count framenums self.frameNum += 1 if self.frameNum > 1000000: self.frameNum = 0
tilemap.set_tile(0x7, tileSize, tileSize, data.tile7) tilemap.set_tile(0x8, tileSize, tileSize, data.tile8) tilemap.set_tile(0x9, tileSize, tileSize, data.tile9) tilemap.set_tile(0xa, tileSize, tileSize, data.tile10) tilemap.set_tile(0xb, tileSize, tileSize, data.tile11) tilemap.set_tile(0xc, tileSize, tileSize, data.tile12) tilemap.set_tile(0xd, tileSize, tileSize, data.tile13) tilemap.set_tile(0xe, tileSize, tileSize, data.tile14) tilemap.set_tile(0xf, tileSize, tileSize, data.tile15) # Setup global variables glob.viewPortX = 0 glob.viewPortY = 0 # setup sprite group all_objects = sprite.Group() all_objects_list = [] #Init game objects targetCityGob = GameObjects.GameObject( [data.targetCity6x5_f1, data.targetCity6x5_f2], [[0, 0], [0, 0]]) targetCityGob.wx = 282 - 3 targetCityGob.wy = 75 - 3 targetCityGob.active = False all_objects.add(targetCityGob) all_objects_list.append(targetCityGob) heroGob = GameObjects.GameObject([data.heroUp_f1, data.heroUp_f2], [[0, 0], [0, 0]]) dustGob1 = GameObjects.GameObject( [data.dustRight_f1, data.dustRight_f2, data.dustRight_f3],
self.animDurCounter = self.animDur # Set current image self.image = self.frames[self.currentFrameNum] self.rect.x += self.frameOffsets[self.currentFrameNum][0] self.rect.y += self.frameOffsets[self.currentFrameNum][1] else: self.animDurCounter -= 1 # Advance position self.rect.x += self.vx self.rect.y += self.vy # Create sprite groups all_sprites = sprite.Group() all_ships = sprite.Group() # Create ship sprites. Note: only one in this demo. for i in range(1): shipGob = GameObject([shipSurf], [[0, 0]]) # out of screen shipGob.rect.x = 50 shipGob.rect.y = 70 shipGob.animDur = 2 all_sprites.add(shipGob) all_ships.add(shipGob)