コード例 #1
0
ファイル: main.py プロジェクト: lupo72/miner2011
class Game():
    framerate = 0
    number_meanies = 32
    
    def __init__(self):
        self.display = Display()
        self.player = Charactor(self)
        self.level = Level(self)
        self.hud = Hud()

        self.prepare_stage()

    def prepare_stage(self):
        self.level.load_level(0)
        self.start_game()


    def start_game(self):

        self.gameRunning = True
        self.mainloop()

    def mainloop(self):
        self.clock = pygame.time.Clock()
        self.player.rect.center = [self.display.arena[0]/2, self.display.arena[1]/2]
        controller = Controller()
        while self.gameRunning:

            dirty = []
            
            self.clock.tick(FPS)
            self.framerate = self.clock.get_fps()

            self.display.paint_background(dirty)
            self.player.state.set_current_state()
            d = self.display.paint_sprite(self.player)
            dirty.insert(len(dirty), d)

            self.steine.update()
            self.ladders.update()
            self.barrels.update()
            self.meanies.update(dirty)

            self.hud.showinfo(self, dirty)
            controller.handle_keyboard_input(self.player)
            self.player.update()

## Just for debugging - paint hitareas of charactor ##

            d = self.draw_hitarea(self.player.feet())
            dirty.insert(len(dirty), d)

            d = self.draw_hitarea(self.player.middle(), (0,0,255))
            dirty.insert(len(dirty), d)
            
            d = self.draw_hitarea(self.player.head(), (0,255,255))
            dirty.insert(len(dirty), d)

            pygame.display.update(dirty)

    def draw_hitarea(self, sprite, color=pygame.Color(255,0,0)):
        sfc = pygame.Surface([sprite.rect.width, sprite.rect.height])
        sfc.fill(color)
        dummy = pygame.sprite.Sprite()
        dummy.image = sfc
        dummy.rect = sprite.rect
        d = self.display.paint_sprite(dummy)
        
        return d
コード例 #2
0
ファイル: main.py プロジェクト: Oliver-Dahlen/Angry-Birds
        pigs_to_remove = []
        for pig in pigs:
            if pig_body == pig.body:
                pigs_to_remove.append(pig)
        for pig in pigs_to_remove:
            space.remove(pig.shape, pig.shape.body)
            pigs.remove(pig)


space.add_collision_handler(0, 2).post_solve = Physics.post_solve_bird_wood
space.add_collision_handler(0, 1).post_solve = post_solve_bird_pig

level = Level(Physics.columns, Physics.beams, space, pigs)
level.number = 0
level.load_level()
while Running:
    dt = clock.tick(30)
    dt = 1.0 / 50.0 / 2.

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Running = False
        if event.type == pygame.KEYDOWN:
            SlingShot.controls(event)
            if event.key == pygame.K_SPACE:
                bird = Bird(SlingShot.AngleStart, ParabolaList[0][0],
                            ParabolaList[0][1] + 20, space,
                            SlingShot.SpeedMultiplayer)
                birds.append(bird)
    pigs_to_remove = []
コード例 #3
0
ファイル: main.py プロジェクト: lupo72/miner2011
class Game(Display, Controller):
    
    def __init__(self):

        self.framerate = 0 
        self.number_meanies = 32
        self.bricks_in_level = 0
        self.display = Display()
        self.hud = Hud()
        pygame.key.set_repeat(100,5)
        self.meanies = pygame.sprite.Group()
        
        self.player = Charactor(self)
        self.player.speed = 2
       
        self.level = Level(self)

        self.level.load_level(0)
        self.start_game()
        
#        self.testgroup = pygame.sprite.Group()
#        self.init_meanies(0)
        
        


#    def init_meanies(self, counter):
#
#        while counter < self.number_meanies:
#
#            mx = random.randint( 0, self.display.bgmax[0]-40 )
#            my = random.randint( 0, self.display.bgmax[1]-40 )
#
#            meanie = Meanie()
#            meanie.state.set_random_move_index()
#            meanie.rect.center = mx,my
#            self.testgroup.add(meanie)
#
#            if meanie.overlaps(self.testgroup):
#                self.testgroup.remove(meanie)
#                meanie.kill()
#                self.init_meanies(counter)
#            else:
#                self.meanies.add(meanie)
#                counter += 1
#
#        if counter == self.number_meanies:
#            self.start_game()


    def start_game(self):

        self.gameRunning = True
        self.mainloop()

    def mainloop(self):
        self.clock = pygame.time.Clock()
        self.player.rect.center = [self.display.arena[0]/2, self.display.arena[1]/2]
        controller = Controller()
        while self.gameRunning:

            dirty = []
            
            self.clock.tick(FPS)
            self.framerate = self.clock.get_fps()

            self.display.paint_background(dirty)
            self.player.state.set_current_state(self)
            d = self.display.paint_sprite(self.player)
            dirty.insert(len(dirty), d)

            self.steine.update()
            self.ladders.update()
            self.barrels.update()
            self.meanies.update(dirty)

            self.hud.showinfo(self, dirty)
            controller.handle_keyboard_input(self.player)
            self.player.update()
            pygame.display.update(dirty)