Esempio n. 1
0
 def edit_new_clicked(self, widget, data=None):
     self.cue.set_editing(0)
     newcue = cue.Cue('', update_refs=0)
     newcue.editor = self
     self.set_cue(newcue)
     gdk.threads_leave()
     self.update_display()
     gdk.threads_enter()
Esempio n. 2
0
 def edit_revert_clicked(self, widget, data=None):
     if lb.cue.has_key(self.cue.name):
         self.set_cue(lb.cue[self.cue.name].copy())
     else:
         self.cue.set_editing(0)
         newcue = cue.Cue('', update_refs=0)
         newcue.editor = self
         self.set_cue(newcue)
     gdk.threads_leave()
     self.update_display()
     gdk.threads_enter()
Esempio n. 3
0
 def edit_new_child_clicked(self, widget, data=None):
     self.cue.set_editing(0)
     newcue = cue.Cue('', update_refs=0)
     newcue.parent = [
         [self.cue.name, 100.0],
     ]
     newcue.editor = self
     newcue.validate()
     self.set_cue(newcue)
     gdk.threads_leave()
     self.update_display()
     gdk.threads_enter()
Esempio n. 4
0
    def start_pool_mlp(self, ball_pos, other_ball_pos, angle, power):
        #print("starting pool mlp run")
        self.reset_state()

        self.ball_pos = ball_pos
        config.white_ball_initial_pos = ball_pos
        self.angle = angle
        self.power = power

        self.generate_table()
        self.set_pool_balls(other_ball_pos)

        #records the initial positions of all the balls
        for ball in self.balls:
            if ball.number == 0:
                pass
            else:
                config.initial_pos[ball.number] = ball.ball.pos
        config.initial_pos[0] = ball_pos

        self.cue = cue.Cue(self.white_ball)
        self.all_sprites.append(self.cue)

        self.make_move()
Esempio n. 5
0
 def start_pool(self):
     self.reset_state()
     self.generate_table()
     self.set_pool_balls()
     self.cue = cue.Cue(self.white_ball)
     self.all_sprites.add(self.cue)
Esempio n. 6
0
def run_game(game_display, game_clock):
    game_table = pool_table.PoolTable(game_display.get_width(),
                                      game_display.get_height())
    game_cue = cue.Cue()

    # Spawn balls.
    b1 = ball.Ball(game_table, 800, 400, "yellow")
    b2 = ball.Ball(game_table, 775, 360, "red")
    b3 = ball.Ball(game_table, 825, 360, "forestgreen")
    b4 = ball.Ball(game_table, 800, 320, "black")
    b5 = ball.Ball(game_table, 750, 320, "purple")
    b6 = ball.Ball(game_table, 850, 320, "orangered")
    b7 = ball.Ball(game_table, 720, 280, "forestgreen")
    b8 = ball.Ball(game_table, 775, 280, "red")
    b9 = ball.Ball(game_table, 825, 280, "darkorange")
    b10 = ball.Ball(game_table, 880, 280, "slateblue")
    b11 = ball.Ball(game_table, 695, 240, "chocolate")
    b12 = ball.Ball(game_table, 745, 240, "darkslateblue")
    b13 = ball.Ball(game_table, 800, 240, "gold")
    b14 = ball.Ball(game_table, 855, 240, "yellow")
    b15 = ball.Ball(game_table, 905, 240, "mediumblue")
    white = ball.Ball(game_table, 800, 600, "white")

    sprite_group = pygame.sprite.Group()
    sprite_group.add(b1)
    sprite_group.add(b2)
    sprite_group.add(b3)
    sprite_group.add(b4)
    sprite_group.add(b5)
    sprite_group.add(b6)
    sprite_group.add(b7)
    sprite_group.add(b8)
    sprite_group.add(b9)
    sprite_group.add(b10)
    sprite_group.add(b11)
    sprite_group.add(b12)
    sprite_group.add(b13)
    sprite_group.add(b14)
    sprite_group.add(b15)
    sprite_group.add(white)

    while True:
        delta_time = game_clock.tick(60)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                return False
        if not sprite_group:
            return True

        # Update game.
        sprite_group.update(delta_time)
        game_table.update(sprite_group)
        game_cue.update(sprite_group)

        # Draw game.
        game_display.fill("GRAY")
        game_table.draw(game_display)
        game_cue.draw(game_display)
        """
        Checks collisions between balls, maintains a dict during this update, so the collision
        between ball a and b only happens once, and the collision between ball b and a is not
        handled separately.
        """
        collided = dict()
        for a in sprite_group:
            for b in sprite_group:
                if a != b and ball.overlaps(a, b) and b not in collided.get(
                        a, []):
                    collided[b] = collided.get(b, []) + [a]
                    ball.collision(a, b)

        for b in sprite_group:
            b.draw_self(game_display)

        pygame.display.update()
Esempio n. 7
0
 def start_pool(self):  #initiates the break load
     self.reset_state()
     self.generate_table()
     self.set_pool_balls()
     self.cue = cue.Cue(self.white_ball)
     self.all_sprites.add(self.cue)