コード例 #1
0
 def __init__(self, source):
     super(Background, self).__init__()
     self.image = Sprite(source=source)
     self.add_widget(self.image)
     self.size = self.image.size
     self.image_dupe = Sprite(source=source, y=self.height)
     self.add_widget(self.image_dupe)
コード例 #2
0
ファイル: client.py プロジェクト: Aveheuzed/laby_postbac
    def run(self):
        players = list()
        newp = Sprite(self.laby.screen, self.laby.unit // 2, self.laby.walls)
        turtle.RawTurtle.forward(newp, newp.step)
        newp.left(90)
        turtle.RawTurtle.forward(newp, newp.step)
        players.append(newp)
        while all(player.pos() in self.laby.border for player in players):
            if len(select([
                    self.socket,
            ], list(), list())[0]):
                order = self.socket.recv(2)
                index, order = order[0], order[1:]
                while index >= len(players):
                    newp = Sprite(self.laby.screen, self.laby.unit // 2,
                                  self.laby.walls)
                    turtle.RawTurtle.forward(newp, newp.step)
                    newp.left(90)
                    turtle.RawTurtle.forward(newp, newp.step)

                    players.append(newp)
                if order == b"r":
                    players[index].setheading(0)
                elif order == b"u":
                    players[index].setheading(90)
                elif order == b"l":
                    players[index].setheading(180)
                elif order == b"d":
                    players[index].setheading(270)
                players[index].forward()
                players[index].forward()

        self.socket.send(b"W")
        self.socket.close()
コード例 #3
0
    def __init__(self, cfg, position, direction, color, res, pacmans, ghosts, random, game):
        self.cfg = cfg
        self.position = position
        self.direction = direction
        self.next_direction = self.direction
        self.color = color
        self.res = res
        self.pacmans = pacmans
        self.ghosts = ghosts
        self.state = GHOST_STATE_STOPPED
        self.frightened = False
        self.random = random
        self.game = game
        self.isdead = False # if the ghost is dead he is show as eyes,
                            # he is not colliding with anything and he
                            # returns straight to home

        self.target = pacmans[0].position
        self.sprite = [ Sprite("ghost-left-"+color, self.res, 0.1),
                        Sprite("ghost-down-"+color, self.res, 0.1),
                        Sprite("ghost-right-"+color, self.res, 0.1),
                        Sprite("ghost-up-"+color, self.res, 0.1),
                        Sprite("ghost-frightened", self.res, 0.5),
                        Sprite("ghost-frightened-blink", self.res, 0.5),
                        Sprite("eyes-left", self.res),
                        Sprite("eyes-down", self.res),
                        Sprite("eyes-right", self.res),
                        Sprite("eyes-up", self.res), ]

        self.prev_cell = position_to_cell(self.cfg.grid_cell_size, self.position)
        self.curr_cell = self.prev_cell
コード例 #4
0
ファイル: player.py プロジェクト: Cynerva/jttcotm
    def __init__(self, world, pos=(0, 0)):
        self.body = world.b2world.CreateDynamicBody(
            position=pos,
            allowSleep=False
        )
        self.body.CreatePolygonFixture(
            box=(0.8, 1.6),
            density=1,
            friction=0.0,
        )
        self.body.linearDamping = 0.0
        self.body.angularDamping = 0.0
        self.sensor = self.body.CreatePolygonFixture(
            box=(0.6, 0.2, (0, -1.6), 0),
            density=1,
            friction=0.0,
            isSensor = True
        )

        self.stand_sprite = Sprite("data/art/stand.png")
        self.jump_sprite = Sprite("data/art/jump.png")
        self.fall_sprite = Sprite("data/art/fall.png")
        walksprite0 = self.stand_sprite
        walksprite1 = Sprite("data/art/walk1.png")
        walksprite2 = Sprite("data/art/walk2.png")
        self.walk_sprite = Animation((
            walksprite0, walksprite1, walksprite1,
            walksprite0, walksprite2, walksprite2
        ))
        self.sprite = self.stand_sprite
コード例 #5
0
ファイル: app.py プロジェクト: GarlicRoll/DeadRiot
    def create_map(self, map):
        #карта

        #newmap = Map()

        #newmap.generate()

        #newmap.write()

        self.delete_map()

        text = open(map)
        blocks = [
            "", "tiles/block.png", "tiles/grass.png", "tiles/stone.png",
            "tiles/decor1.png", "tiles/tree.png", "tiles/decor2.png",
            "tiles/decor3.png", "tiles/spikes.png", "tiles/wall.png",
            "tiles/backwall.png", "tiles/door.png", "tiles/backblock.png",
            "tiles/roof.png"
        ]

        i = 10
        for line in text:
            j = 0
            for block in line:
                if block == " ":
                    continue
                elif block in ("1", "2", "3", "9"):
                    object = CollideObject(BLOCK_SIZE * j,
                                           SCREEN_H - BLOCK_SIZE * i,
                                           blocks[int(block)])
                    self.collide_ent.append(object)
                elif block in ("4", "5", "6", "7"):
                    decor = Sprite(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                   blocks[int(block)])
                    #self.decor_ent_fore.append(decor)
                    self.decor_ent_back.append(decor)
                elif block in ("8"):
                    spikes = Spikes(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                    blocks[int(block)], self)
                    self.spikes.append(spikes)
                elif block in ("B"):
                    decor = Sprite(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                   blocks[10])
                    self.decor_ent_back.append(decor)
                elif block in ("D"):
                    decor = Sprite(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                   blocks[11])
                    self.decor_ent_back.append(decor)
                elif block in ("C"):
                    decor = Sprite(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                   blocks[12])
                    self.decor_ent_back.append(decor)
                elif block in ("R"):
                    decor = Sprite(BLOCK_SIZE * j, SCREEN_H - BLOCK_SIZE * i,
                                   blocks[13])
                    self.decor_ent_back.append(decor)

                j += 1
            i -= 1  #тк генерируем снизу (зеркально)
        text.close()
コード例 #6
0
    def init():
        for timer in Title_screen.all_timers:
            Title_screen.all_timers.replenish_timer(timer)

        title_logo_img = [universal_var.misc_images['title']]
        width, height = 500, 300
        title_logo_sprite = Sprite(universal_var.main_sprite, 0, 0, width,
                                   height, [('title', title_logo_img, 1)])
        Title_screen.title_logo = Megaman_object('title_logo',
                                                 50,
                                                 2000,
                                                 sprites=[title_logo_sprite],
                                                 width=width,
                                                 height=height,
                                                 is_active=True)

        megaman_face_img = [universal_var.misc_images['megaman_face']]
        width, height = 200, 300
        megaman_face_sprite = Sprite(universal_var.main_sprite, 0, 0, width,
                                     height, [('world', megaman_face_img, 1)])
        Title_screen.megaman_face = Megaman_object(
            'megaman_face',
            -width * 13,
            230,
            sprites=[megaman_face_sprite],
            width=width,
            height=height,
            is_active=True)

        Title_screen.is_running = True
コード例 #7
0
ファイル: ship.py プロジェクト: leguiart/PTSG
    def collide_ship_sprites(self,
                             group,
                             explosion_group,
                             explosion_image,
                             explosion_info,
                             ship=None,
                             ship_group=None):
        group_copy = set([])
        aux_copy = group.copy()
        for sprite in aux_copy:
            if self.physics.collide(sprite) is True:
                group_copy.add(sprite)
                explosion = Sprite(sprite.get_physics_component().get_pos(),
                                   [0, 0], 0, 0, explosion_image,
                                   explosion_info, self.physics.WIDTH,
                                   self.physics.HEIGHT)
                explosion_group.add(explosion)
                explosion_group.add(
                    Sprite(self.physics.get_pos(), [0, 0], 0, 0,
                           explosion_image, explosion_info, self.physics.WIDTH,
                           self.physics.HEIGHT))
                if self.life <= 0:
                    self.lives -= 1
                if ship is not None:
                    ship.score += 1

                if ship_group is not None:
                    ship_group.add(self)

        group.difference_update(group_copy)
コード例 #8
0
    def __init__(self, x, y):

        # Listes des sprites pour l'animation
        self.sprites = {
            'run': Sprite('Assets/Player/run.png', 8, 1),
            'blow': Sprite('Assets/Player/joueur_souffle.png', 20, 1),
            'idle': Sprite('Assets/Player/idle.png', 4, 1),
            'chute': Sprite('Assets/Player/player_chute.png', 4, 1)
        }

        # Initialisation position
        self.setLocation(x, y)

        # Vitesse du joueur
        self.velocity = 20
        self.jumpRange = [-10, -6, -5, -4, 1, 4, 5, 6, 10]

        # Flip
        self.flip = False

        # Current plateforme
        self.currentPlatorm = None

        self.hitbox = None

        self.stream = Stream(self.x, self.y, 0)

        self.glissement = False

        self.valeurTampon = 0
コード例 #9
0
    def load(self, filename):
        file = open(Scene.path + filename)
        data = file.read().splitlines()

        ground_height = 0
        self.cursor = Sprite(0, 0, 'cursor.png', False)
        self.sprites = []
        self.warps = []

        self.ui_top = UiGroup()
        panel = UiPanel(0, 0, 800, 110)
        button = UiButton(10, 10, 90, 90, "banana")
        self.ui_top.add_element(panel)
        self.ui_top.add_element(button)

        for line in data:
            cell = line.split(";")
            # Ground
            if (cell[0] == "ground"):
                self.ground = Sprite(0, 0, cell[1] + ".png", False)
                _, screen_h = pygame.display.get_surface().get_size()
                ground_height = screen_h - self.ground.surface.get_height()
                self.ground.y = ground_height
            # Background
            elif (cell[0] == "background"):
                self.background = Sprite(0, 0, cell[1] + ".png", False)
            # Player
            elif (cell[0] == "player"):
                height = 0
                if cell[3] == "ground":
                    height = -1
                self.player = SpriteControlled(int(cell[2]), height,
                                               cell[1] + ".png", True,
                                               int(cell[4]))
            # Sprites
            elif (cell[0] == "sprite"):
                height = 0
                if cell[3] == "ground":
                    height = -1
                sprite = Sprite(int(cell[2]), height, cell[1] + ".png", True)
                self.sprites.append(sprite)
            # Warps
            elif (cell[0] == "warp"):
                height = 0
                if cell[3] == "ground":
                    height = -1
                warp = Warp(int(cell[2]), height, cell[1] + ".png", False,
                            eval(cell[4]))
                self.warps.append(warp)

        # Set heights
        if (self.player.y == -1):
            self.player.y = ground_height
        for s in self.sprites:
            if (s.y == -1):
                s.y = ground_height
        for w in self.warps:
            if (w.y == -1):
                w.y = ground_height - w.surface.get_height() / 2
コード例 #10
0
    def _load_sprites(self, name):

        sprites = {
            SpriteComponent.A: Sprite('_'.join((name, 'a'))),
            SpriteComponent.B: Sprite('_'.join((name, 'b')))
        }

        return sprites
コード例 #11
0
ファイル: background.py プロジェクト: MichalBroucek/galaxyrun
 def __init__(self, background_picture, last_background_image=None):
     super(Background, self).__init__()
     self.image = Sprite(picture=background_picture, allow_stretch=True)
     self.image_dupe = Sprite(picture=background_picture,
                              allow_stretch=True)
     self.image_dupe.y = Window.height
     self.last_background = False
     self.last_image_str = last_background_image
コード例 #12
0
ファイル: scene.py プロジェクト: Gaetz/python-training
 def __init__(self, background_file, ground_file):
     self.background = Sprite(0, 0, background_file, False)
     self.ground = Sprite(0, 0, ground_file, False)
     screen_w, screen_h = pygame.display.get_surface().get_size()
     ground_height = screen_h - self.ground.surface.get_height()
     self.ground.y = ground_height
     self.player = SpriteControlled(10, ground_height, 'sprite.png', True, 2)
     self.cursor = Sprite(0, 0, 'cursor.png', False)
     self.warp = Warp(500, 0, 'warp.png', False, "level01")
     self.warp.y = ground_height - self.warp.surface.get_height() / 2
コード例 #13
0
ファイル: element.py プロジェクト: jmonsky/Pokemon_Game
    def loadSprites(self):
        if not self.spritesLoaded:
            for T in self.names:
                t = T.lower()
                self.sprite["Sphere"].append(Sprite("sphere2_" + t))
                self.sprite["Icon"].append(Sprite("sphere1_" + t))
                self.sprite["Egg"].append(Sprite("sphere3_" + t))
                self.sprite["Bar"].append(Sprite("type_" + t))

        self.spritesLoaded = True
コード例 #14
0
ファイル: scene.py プロジェクト: Capprin/drawing-games
    def add_type(self,
                 name,
                 drawn_type=None,
                 res_asset_path=None,
                 full_asset_path=None,
                 meta_path=None):
        # make asset path safe
        if res_asset_path is not None:
            res_asset_path = res_asset_path.replace('\\', '/')

        add_type = DrawnType(name,
                             start_ext_id=self.curr_ext_resource_id,
                             start_sub_id=self.curr_sub_resource_id)
        # break out for specific node types
        if drawn_type is not None and drawn_type in self.TYPES:
            if drawn_type == 'sprite':
                add_type = Sprite(name,
                                  res_asset_path,
                                  meta_path=meta_path,
                                  start_ext_id=self.curr_ext_resource_id,
                                  start_sub_id=self.curr_sub_resource_id)
            elif drawn_type == 'static':
                add_type = Static(name,
                                  res_asset_path,
                                  full_asset_path,
                                  self.curr_ext_resource_id,
                                  self.curr_sub_resource_id,
                                  meta_path=meta_path)
            elif drawn_type == 'platforms':
                add_type = Static(name,
                                  res_asset_path,
                                  full_asset_path,
                                  self.curr_ext_resource_id,
                                  self.curr_sub_resource_id,
                                  meta_path=meta_path,
                                  one_way=True)
            elif drawn_type == 'physics' or drawn_type == 'items':
                add_type = Physics(name, res_asset_path, meta_path,
                                   self.curr_ext_resource_id,
                                   self.curr_sub_resource_id)
        elif res_asset_path is not None:
            # use sprites, if asset path exists
            add_type = Sprite(name,
                              res_asset_path,
                              meta_path=meta_path,
                              start_ext_id=self.curr_ext_resource_id,
                              start_sub_id=self.curr_sub_resource_id)

        # add node, external, sub content
        self.nodes += add_type.get_node_string() + '\n'
        self.ext_resources += add_type.get_ext_resources_string()
        self.sub_resources += add_type.get_sub_resources_string()
        # update id's
        self.curr_ext_resource_id = add_type.get_last_ext_id()
        self.curr_sub_resource_id = add_type.get_last_sub_id()
コード例 #15
0
    def __init__(self, name, background_file, ground_file):
        self.name = name
        self.background = Sprite(0, 0, background_file, False)
        self.ground = Sprite(0, 0, ground_file, False)
        screen_w, screen_h = pygame.display.get_surface().get_size()
        ground_height = screen_h - self.ground.surface.get_height()
        self.ground.y = ground_height

        self.player = SpriteControlled(10, ground_height, 'sprite.png', True,
                                       2)
        self.cursor = Sprite(0, 0, 'cursor.png', False)
コード例 #16
0
ファイル: ennemy.py プロジェクト: HerveDavid/GameJam
    def __init__(self, x, y):

        super(Sirene, self).__init__(x, y, 0)

        self.sprites = {
            'idle': Sprite('Assets/Siren/sirene.png', 10, 1),
            'aura': Sprite('Assets/Siren/halo_sirene.png', 8, 1, colorkey=False, scale=1)
        }


        self.attirance = 250
コード例 #17
0
ファイル: ui_button.py プロジェクト: Gaetz/python-training
 def __init__(self, x, y, w, h, filename):
     UiElement.__init__(self, x, y, w, h)
     UiElement.set_event(self, "hover_in", self.on_hover_in)
     UiElement.set_event(self, "hover_out", self.on_hover_out)
     UiElement.set_event(self, "click", self.on_click)
     UiElement.set_event(self, "release", self.on_release)
     self.is_hover = False
     self.is_clicked = False
     self.sprite_idle = Sprite(x, y, filename + "_idle.png", False)
     self.sprite_hover = Sprite(x, y, filename + "_hover.png", False)
     self.sprite_click = Sprite(x, y, filename + "_click.png", False)
     self.current_sprite = self.sprite_idle
コード例 #18
0
 def __init__(self, background_file, ground_file):
     self.background = Sprite(0, 0, background_file, False)
     self.ground = Sprite(0, 0, ground_file, False)
     screen_w, screen_h = pygame.display.get_surface().get_size()
     ground_height = screen_h - self.ground.surface.get_height()
     self.ground.y = ground_height
     self.player = SpriteControlled(150, ground_height, 'Sprite.png', True, 2)
     self.copain = SpriteControlled(500, ground_height, 'copain.png', True, 0)
     self.cursor = Sprite(0, 0, 'cursor.jpg', False)
     #self.collision_text = font.render("Oops sorry Mamen", False,(0, 0,0))
     self.warp = Warp(700, 0, 'warp.png', False, "level01")
     self.warp.y = ground_height - self.warp.surface.get_height() / 2
コード例 #19
0
ファイル: main copy.py プロジェクト: Ayaee/python_adventure
def main():
    # Load
    pygame.init()
    screen = pygame.display.set_mode((800, 600))
    font = pygame.font.Font(None, 24)
    quit = False
    path = 'H:\\Artfx\\Python\\Abygaelle\\AdventureGame\\'
    background = pygame.image.load(path + 'background.png').convert()
    hero = Sprite(400, 200, "hero.png")
    cursor = Sprite(0, 0, "cursor.png")
    pygame.mouse.set_visible(False)
    spr_surface = pygame.image.load(path + 'hero.png').convert()
    spr_pos = spr_x, spr_y = 100, 400
    ground = pygame.image.load(path + 'ground.png').convert()
    spr_x, spr_y = 100, 400
    spr_is_moving = False
    spr_speed = 2
    goal_x = 0
    #get_rect = 100, 0

    while not (quit):
        # Inputs
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    quit = True
            if event.type == pygame.MOUSEBUTTONDOWN:
                mouse_click = pygame.mouse.get_pos()
                goal_x = mouse_click[0]
                hero.set_position(mouse_click)
                spr_is_moving = True

        # Update
        cursor_pos = pygame.mouse.get_pos()
        cursor.set_position(cursor_pos)
        if (spr_is_moving):
            spr_x = mouse_click[0]
            mouse_click = pygame.mouse.get_pos()
            goal_x = mouse_click[0]
            spr_is_moving = False
        #position_Sprite = Sprite.get_rect()
        #fenetre.blit(perso, position_perso)

        # Draw
        screen.fill((0, 0, 0))
        screen.blit(background, (0, 0))
        screen.blit(ground, (0, 500))
        hero.draw(screen)
        cursor.draw(screen)
        pygame.display.update()
コード例 #20
0
ファイル: main.py プロジェクト: RLeoJ/Python_Adventure
def main():

    #Load
    pygame.init()
    screen = pygame.display.set_mode((800,600))
    font = pygame.font.Font(None,24)   

    background = pygame.image.load('background.png').convert()
    ground = pygame.image.load('ground.png').convert()
    ground_height = 600 - ground.get_height()
    
    player = SpriteControlled(100, ground_height, 'sprite.png', True, 2)
    copain = Sprite(500, ground_height, 'copain.png', True)

    mouse_click = (0, 0)

    collision_text = font.render("Oops, sorry!", False, (0,0,0))
    
    cursor = Sprite(0,0, 'cursor.png', False)
    pygame.mouse.set_visible(False)

    quit_game = False

    while not quit_game:
        #Inputs/
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    quit_game = True
            if event.type == pygame.MOUSEBUTTONDOWN:
                mouse_click = pygame.mouse.get_pos()
                player.move_to(mouse_click[0])

        
        #Update
        cursor.set_position(pygame.mouse.get_pos())
        player.update()

        #Draw
        screen.fill((0,0,0))
        screen.blit(background,(0,0))
        screen.blit(ground,(0, 500))   

        copain.draw(screen)
        player.draw(screen)
        if(player.intersects(copain)):
            screen.blit(collision_text, (player.x, player.y - 100))
        cursor.draw(screen)
        
        pygame.display.update()
コード例 #21
0
ファイル: menu.py プロジェクト: allenzha/space_seeker
 def generateWidgets (self, pos_x, pos_y, font_item, font_item_selected):
     anchors = {'left': 0, 'center': 0.5, 'right': 1, 'top': 1, 'bottom': 0}
     anchor=(anchors[font_item['anchor_x']] * self.image.width,
             anchors[font_item['anchor_y']] * self.image.height)
     self.item = Sprite(self.image, anchor=anchor, opacity=255,
                        color=font_item['color'][:3])
     self.item.scale = font_item['font_size'] / float(self.item.height )
     self.item.position = int(pos_x), int(pos_y)
     self.selected_item = Sprite(self.image, anchor=anchor,
                                 color=font_item_selected['color'][:3])
     self.selected_item.scale = (font_item_selected['font_size'] /
                                  float(self.selected_item.height))
     self.selected_item.position = int(pos_x), int(pos_y)
コード例 #22
0
 def __init__(self, x, y, w, h, filename):
     UiElement.__init__(self, x, y, w, h)
     #self.color = (0, 0, 255)
     UiElement.set_event(self, "hover_in", self.on_hover_in)
     UiElement.set_event(self, "hover_out", self.on_hover_out)
     UiElement.set_event(self, "click", self.on_click)
     UiElement.set_event(self, "release", self.on_release)
     self.is_hover = False
     self.is_clicked = False
     self.sprite_idle = Sprite(x, y, 'Button_idle.png', False)
     self.sprite_hover = Sprite(x, y, 'Button_hover.png', False)
     self.sprite_click = Sprite(x, y, 'Button_click.png', False)
     self.current_sprite = self.sprite_idle  #defines the current button that will be drawn
コード例 #23
0
ファイル: main.py プロジェクト: Gaetz/python-training
def main():

    # Load
    pygame.init()
    screen = pygame.display.set_mode((800, 600))
    font = pygame.font.Font(None, 24)

    path = 'D:\\Code\\ArtFx\\Python\\python-training\\01.adventure\\07.copain\\'
    background = pygame.image.load(path+'background.png').convert()
    ground = pygame.image.load(path+'ground.png').convert()

    mouse_click = (0, 0)

    player = SpriteControlled(100, 400, 'sprite.png', 2)
    copain = Sprite(500, 400, 'copain.png')
    cursor = Sprite(0, 0, 'cursor.png')
    pygame.mouse.set_visible(False)
    collision_text = font.render("Oops, sorry.", False, (0, 0, 0))

    quit_game = False

    while not quit_game:
        # Inputs
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                quit_game = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    quit_game = True
            if event.type == pygame.MOUSEBUTTONDOWN:
                mouse_click = pygame.mouse.get_pos()
                player.move_to(mouse_click[0])

        # Update
        cursor.set_position(pygame.mouse.get_pos())
        player.update()
        
        # Draw
        screen.fill((0, 0, 0))
        screen.blit(background, (0, 0))
        screen.blit(ground, (0, 500))

        copain.draw(screen)
        player.draw(screen)
        if(player.intersects(copain)):
            screen.blit(collision_text, (player.x, player.y - 100))
        cursor.draw(screen)
        
        pygame.display.update()
コード例 #24
0
    def draw_end_screen(self, result: str = 'win', text: str = ''):
        score_group = pygame.sprite.Group()

        if result not in ['win', 'lose', 'draw']:
            raise ValueError(f"result:{result} not in ['win', 'lose', 'draw']")

        girl_face = result
        girl_img = Setting.sprite_base + Setting.girl_img[girl_face]
        image = pygame.image.load(girl_img)
        rect = image.get_rect()
        rect.right = Setting.win_w // 2 - rect.w
        rect.centery = Setting.win_h // 2
        girl = pygame.sprite.Sprite()
        girl.image = image
        girl.rect = rect
        score_group.add(girl)

        # hand result
        file = Setting.sprite_base + text + ".png"
        image = pygame.image.load(file)
        end_btn = Sprite(image)
        end_btn.rect.centerx = Setting.win_w // 2
        end_btn.rect.bottom = Setting.win_h // 2 - 100
        score_group.add(end_btn)

        # winner avatar
        if self.winner:
            file = Setting.avatar_base + self.winner.nick + ".png"
            image = pygame.image.load(file)
            avatar = Sprite(image)
            avatar.rect.centerx = Setting.win_w // 2
            avatar.rect.top = Setting.win_h // 2 + 80
            score_group.add(avatar)

        # end btn
        btn_img = Setting.sprite_base + Setting.btn_img['end']
        image = pygame.image.load(btn_img)
        rect = image.get_rect()
        rect.centerx = Setting.win_w // 2
        rect.centery = Setting.win_h // 2
        btn = pygame.sprite.Sprite()
        btn.image = image
        btn.rect = rect
        score_group.add(btn)
        score_group.draw(self.screen)
        # self.draw_background()
        pygame.display.update()  # 显示

        self.waiting_return()
コード例 #25
0
ファイル: scene.py プロジェクト: 1m188/flappybird
 def getPipe(self):
     '''获得新水管'''
     index = random.randint(0, len(config.ImgRes.pipe) - 1)
     key = list(config.ImgRes.pipe)[index]
     image = config.ImgRes.pipe[key]
     pipeDown = Sprite(
         QPixmap.fromImage(image.toImage().mirrored(False, True)))
     pipeUp = Sprite(image)
     pipeUp.x = self.width()
     pipeDown.x = self.width()
     pipeUp.y = random.randint(config.pipeLimit + config.pipeInterval,
                               self.base.y - config.pipeLimit)
     pipeDown.y = pipeUp.y - config.pipeInterval - pipeDown.height
     self.pipes.clear()
     self.pipes.extend((pipeUp, pipeDown))
コード例 #26
0
 def __init__(self):
     super().__init__()
     self.name = "pass"
     self.cardsprite = Sprite("card_base.png")
     self.artsprite = Sprite("card_art_base.png")
     self.basecost = 0
     self.range = 0
     # head, r-arm, r-torso, r-leg, l-arm, l-torso, l-leg
     self.target = [False, False, False, False, False, False, False]
     self.defend = [False, False, False, False, False, False, False]
     self.power = [0, 0, 0, 0, 0, 0, 0]
     self.defense_power = [0, 0, 0, 0, 0, 0, 0]
     self.take_initiative = False
     self.description = "pass a turn"
     self.modifiers = []
コード例 #27
0
ファイル: find_sprite.py プロジェクト: thuanhong/sprite_sheet
def find_sprites(image, background=None):
    image_map = np.asarray(image)
    rows, cols = image_map.shape[:2]
    label_map = np.zeros((rows, cols), dtype=np.int64)
    connect = {}

    if not background:
        if 'A' in image.mode:
            background = (0, 0, 0, 0)
        else:
            background = find_most_common_color(image)

    image_segmentation(rows, cols, image_map, label_map, connect, background)
    list_key_connect = list(connect.keys())

    filter_segmentation(connect, list_key_connect)
    connect = combine_segmentation(connect, list_key_connect)

    sprites = {}

    for label, x in enumerate(connect, 1):
        for a in connect[x]:
            label_map[label_map == a] = label
        label_map[label_map == x] = label

        temp_array = np.argwhere(label_map == label)
        x_max, y_max = np.amax(temp_array, axis=0)
        x_min, y_min = np.amin(temp_array, axis=0)
        sprites[label] = Sprite(label, x_min.item(), y_min.item(), x_max.item(), y_max.item())

    return sprites, label_map
コード例 #28
0
def main():
    pygame.mixer.init()
    pygame.init()
    window = GameWindow("Tower Defense", 800, 600)
    loader = ResourceLoader()
    stage = Stage(loader.fetch("test.test"), 2, 2, window)
    sprite = Sprite([loader.fetch("test.test")])
    sprite.setPosition((0, 0))
    sprite2 = Sprite([loader.fetch("test.test")])
    sprite2.setPosition((-1, -1))
    sprite.lookToward(sprite2)
    stage.addSprite(sprite)
    stage.addSprite(sprite2)
    loader.fetch("test.pop").play()
    window.addTickEvent(lambda t: stage.tick(t))
    window.run()
コード例 #29
0
ファイル: player.py プロジェクト: MochaMikaelov/DragonTale2
    def __init__(self):
        movement_sprite_sheet = Sprite("Resources/Sprites/player.png")

        self.right_walk_images = [
            movement_sprite_sheet.get_image(0, 0, 45, 66),
            movement_sprite_sheet.get_image(45, 0, 45, 66),
            movement_sprite_sheet.get_image(93, 0, 45, 66),
            movement_sprite_sheet.get_image(138, 0, 50, 66)
        ]

        self.left_walk_images = [
            pygame.transform.flip(image, True, False)
            for image in self.right_walk_images
        ]

        self.image = self.right_walk_images[0]
        self.image_index = 0
        self.image_rate = 0.1
        self.rect = self.image.get_rect()

        self.moving_left = False
        self.moving_right = False
        self.move_speed = 5

        self.d_y = 0
        self.gravity = 0.45
        self.jump_height = 8

        self.right_limit = public.display_dimensions[0] * 0.6
        self.left_limit = public.display_dimensions[0] * 0.4 - self.rect.width

        self.bound_exceed = 0

        self.blocks = None
コード例 #30
0
    def setUp(self):
        self.x = 48
        self.y = 48
        self.grid_num = 4
        self.init_dna_mat = numpy.zeros((self.x, self.y))
        for n in range(48):
            for m in range(48):
                if (n - self.x / 2)**2 + (m - self.y / 2)**2 < (
                        self.x /
                        2.5)**2:  #only generate pixels within this circle
                    if determine_life(n, m, self.x, self.y):
                        self.init_dna_mat[n, m] = True
        self.grid = Grid(self.grid_num)
        self.grid2 = Grid(self.grid_num)
        self.grid3 = Grid(self.grid_num)
        self.sprites = [
            Sprite(self.init_dna_mat) for i in range(self.grid_num**2)
        ]
        self.mutated_sprites = [sprite.mutation() for sprite in self.sprites]
        self.grid2.add_sprite(self.sprites[0])

        for sprite in self.mutated_sprites:
            self.grid3.add_sprite(sprite)

        self.mutation_grid = self.grid3.construct_grid()
        self.img_grid = mutation_grid[0]
        self.dna_grid = mutation_grid[1]