def register_entity(entity, sprite_group, sprite_name, scale=1, smooth_draw=True): if display.RABBYT: entity['image'] = sprite_name else: entity['image'] = display.load_image(sprite_name) entity['sprite'] = display.create_sprite(entity['image'], 0, 0, sprite_group) entity['sprite_group'] = sprite_group entity['last_rotation'] = 0 entity['next_rotation'] = 0 entity['rotation_speed'] = 0 entity['last_scale'] = scale entity['next_scale'] = scale entity['smooth_draw'] = smooth_draw entity['scale_only'] = False entities.create_event(entity, 'redraw') entities.create_event(entity, 'set_scale') entities.create_event(entity, 'set_rotation') entities.create_event(entity, 'rotate_by') entities.create_event(entity, 'fade_by') entities.register_event(entity, 'tick', tick) entities.register_event(entity, 'redraw', lambda _entity: entities.register_event(_entity, 'loop', loop)) entities.register_event(entity, 'delete', display.delete_sprite) entities.register_event(entity, 'set_scale', set_scale) entities.register_event(entity, 'set_rotation', set_rotation) entities.register_event(entity, 'rotate_by', rotate_by) entities.register_event(entity, 'fade_by', fade_by) entities.register_event(entity, 'loop', loop)
def __init__(self, ip, player_xy): pygame.sprite.Sprite.__init__(self) #calculate trajectory for X, Y of direction. #This code is still wonky and needs some work. step = -5 opp = float(ip[1] - player_xy[1]) #Calculates Tangent. Needs opposite side of right triangle adj = float(ip[0] - player_xy[0]) #And adjacent side Tangent = Opposite or Adjacent tang = opp / adj bigstep = tang * step #Modifies STEP to get a proportional x,y step each update #a 45* angle will have an equal step and bigstep if adj > 0: direction = (step, bigstep) else: direction = (bigstep, step) self.dir = direction #Keeping this a seperate line for now self.image, self.rect = display.load_image("bullet.png", -1) #Loads bullet graphic if self.dir[0] < 0: #Bullet is going other way self.image = pygame.transform.flip(self.image, True, False) self.rect.bottomleft = ip # Starts at top of the Target graphic self.next_update_time = 0 self.power = 20 #How much power the bullet has to damage the player
def __init__(self, ip): pygame.sprite.Sprite.__init__(self) self.image, self.rect = display.load_image("redball.png", -1) #Just a simple red ballon graphic self.rect.topleft = ip #Sets the balloon start position to the bottom center of the player graphic self.next_update_time = 0 #Sets the update timer
def new_game_object(pos, image_name, data=None): # Function to handle loading of image and initialisation of class. # data is an optional argument img_idx = display.load_image(image_name) width = display.images[img_idx].get_width() height = display.images[img_idx].get_height() return Game_object(pos, img_idx, height, width, data)
def convert(file): "Convert a PBM file into a one-liner of Python code for generating the corresponding framebuf object" print( "_xx_s = b'", end="") b = BitStr() f, w, h = display.load_image(file) for y in range(0, h): for x in range(0, w): b.push(f.pixel(x,y)) b.newline() b.print() print("'\nxx = (_xx_s, {},{})".format(w, h))
def __init__(self): pygame.sprite.Sprite.__init__(self) self.image, self.rect = display.load_image("balloon.png", -1) self.rect.topleft = display.env.initial_position #sets the balloon start at IP self.score = 0 #points total over game self.points = 0 #points this round self.health = display.env.max_health #current health is 100 self.hbarpos = (0,20) #Health bar initial position # self.pause_map = False #used for testing self.vert_state = 0 self.horz_state = 0 self.fire_timer = 0
def __init__(self, d, images, state_callback, pos=None): """ Manage one display indicator icon. The icon to be displayed at any time is determined by the state_callback funtion. pos is the position (in pixels) on the screen. If blank, the next slot will be allocated from the display. the indicator registers itself with Display. No need to keep a variable for it. """ self.d = d #Display self.callback = state_callback self.last_img = None self.img = [] for i in images: img, width, height = display.load_image(i) self.img.append(img) self.x_pos = d.register_indicator(self, 0 if pos else width + 2)
def get_graphic(self): self.graphic, self.rect = display.load_image("popcornstand.png", -1)
def get_graphic(self): self.graphic, self.rect = display.load_image("gang1.png", -1)
def get_graphic(self): self.graphic, self.rect = display.load_image("oldlady.png", -1)
def get_graphic(self): self.graphic, self.rect = display.load_image("bullseye.png", -1)
def __init__(self, ip): pygame.sprite.Sprite.__init__(self) self.image, self.rect = display.load_image("splashmod.png", -1) #Dorky graphic for splash self.rect.topleft = ip #Replaces the ballon IP self.next_update_time = 0 self.create_time = pygame.time.get_ticks() #Sets a creation time