Beispiel #1
0
	def reset(self):
		self.racket_left = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
		self.racket_right = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
		self.ball = Ball(pyglet.resource.image(settings.BALL_IMG)).center_anchor_y(settings.WINDOW_HEIGHT).center_anchor_x(settings.WINDOW_WIDTH)
		self.racket_right.x = settings.WINDOW_WIDTH - self.racket_right.width
		self.racket_me = self.racket_left
		self.ball.reset()
Beispiel #2
0
	def load_sprites(self):
		self.score_lp = pyglet.text.Label('', font_size=15, x=settings.WINDOW_WIDTH/2 - 30, y=settings.WINDOW_HEIGHT - 15, anchor_x='center', anchor_y='center')
		self.score_rp = pyglet.text.Label('', font_size=15, x=settings.WINDOW_WIDTH/2 + 30, y=settings.WINDOW_HEIGHT - 15, anchor_x='center', anchor_y='center')
		self.racket_left = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
		self.racket_right = Racket(pyglet.resource.image(settings.RACKET_IMG)).center_anchor_y(settings.WINDOW_HEIGHT)
		self.ball = Ball(pyglet.resource.image(settings.BALL_IMG)).center_anchor_y(settings.WINDOW_HEIGHT).center_anchor_x(settings.WINDOW_WIDTH)
		self.racket_right.x = settings.WINDOW_WIDTH - self.racket_right.width
		self.racket_me = self.racket_left
		self.ball.reset()
Beispiel #3
0
 def draw_elements(self):
     self.racket1 = Racket(self, 60, 10, 'l')
     self.racket2 = Racket(self, 60, 10, 'r')
     self.create_line(self.width / 2, 0, self.width / 2, self.height)
     self.score1 = self.create_text(self.width / 4,
                                    20,
                                    text='0',
                                    font=('Verdana', 25, 'normal'))
     self.score2 = self.create_text(self.width / 4 * 3,
                                    20,
                                    text='0',
                                    font=('Verdana', 25, 'normal'))
     self.ball = Ball(self)
     self.text = self.create_text(self.width / 2,
                                  self.height / 2,
                                  text='Press any button to start',
                                  font=('Verdana', 25, 'normal'),
                                  fill='red')
Beispiel #4
0
def main():
    pygame.init()
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.win_width, ai_settings.win_height))
    pygame.display.set_caption("PyPong_v01")
    pygame.display.set_icon(pygame.image.load("images/ball.png"))
    player1 = Racket(screen, 1)
    player2 = Racket(screen, 2)
    g_ball = Ball(screen)
    sb = Scoreboard(screen)
    bplay1 = Button(screen, '1 Player', 'active', 0)
    bplay2 = Button(screen, '2 Players', 'noactive', 1)
    bplayOnlineServer = Button(screen, 'Create Online Game', 'noactive', 2)
    bplayOnlineClient = Button(screen, 'Connect Online Game', 'noactive', 3)
    bquit = Button(screen, 'Exit', 'noactive', 4)

    button_box = [bplay1, bplay2, bquit, bplayOnlineServer, bplayOnlineClient]
    music = pygame.mixer.music.load('music/Sound.mp3')
    pygame.mixer.music.play(-1, 0.0)
    ai = Pong_ai(screen, ai_settings)
    sock = False
    conn = False

    while True:

        if ai_settings.game_active == 'fase_menu':
            game_functions.menu_controll(ai_settings, screen, button_box)
        if ai_settings.game_active == 'game_fase' or ai_settings.game_active == 'fase_end':
            if ai_settings.server_on == True and ai_settings.yes_online != 1:
                sock, conn = game_functions.create_server(ai_settings)
            if ai_settings.client_on == True and ai_settings.yes_online != 2:
                sock = game_functions.create_client(ai_settings)
            game_functions.check_events(ai_settings, screen, player1, player2,
                                        g_ball, sb, ai, sock, conn)
            game_functions.check_collide(screen, player1, player2, g_ball)
            game_functions.up_score(screen, player1, player2, g_ball, sb)
            game_functions.update_screen(ai_settings, screen, player1, player2,
                                         g_ball, sb)
Beispiel #5
0
def start(size):
    main_clock = pygame.time.Clock()
    pygame.display.init()
    window = pygame.display.set_mode(size)
    window_ = window.copy()
    b = Ball()
    r_right = Racket('R')
    r_left = Racket('L')
    while True:
        # Event manager
        for event in pygame.event.get():
            if event.type == QUIT:
                end()
            elif event.type == MOUSEBUTTONDOWN:
                if event.button == 1:
                    pass
            elif event.type == KEYDOWN:
                #print(event.key)
                if event.key == 273:  # Direction key up
                    r_right.direction = 'up'
                    break
                if event.key == 274:  # Direction key down
                    r_right.direction = 'down'
                    break
            r_right.direction = False

        window.blit(window_, (0, 0))
        r_right.draw(window)
        r_right.update()
        r_left.computerAI(b)
        r_left.draw(window)
        r_left.update()
        b.draw(window)
        b.update()
        b.collides(r_right, r_left)
        Interface.draw(window, r_left.mark, r_right.mark)
        pygame.display.flip()
        main_clock.tick(100)
Beispiel #6
0
WIN_HEIGHT = 640
MAX_SCORE = 5
DISPLAY = (WIN_WIDTH, WIN_HEIGHT)
pygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode(DISPLAY, 0, 32)

DONE = False
FPS = 30

left_player = Player(Directions.LEFT, 'Left')
right_player = Player(Directions.RIGHT, 'Right')

curr_ball = Ball(screen, WIN_WIDTH, WIN_HEIGHT)

left_racket = Racket(screen, WIN_WIDTH, WIN_HEIGHT, Directions.LEFT)
right_racket = Racket(screen, WIN_WIDTH, WIN_HEIGHT, Directions.RIGHT)

rackets = pygame.sprite.Group()
rackets.add(left_racket)
rackets.add(right_racket)
stuff_to_draw = pygame.sprite.Group()
stuff_to_draw.add(left_racket)
stuff_to_draw.add(right_racket)


def game_over(screen, winner, left_paper, right_player):
    gray_overlay = pygame.Surface((WIN_WIDTH, WIN_HEIGHT))
    gray_overlay.fill(GRAY)
    gray_overlay.set_colorkey(GRAY)
    pygame.draw.rect(gray_overlay, BLACK, [0, 0, WIN_WIDTH, WIN_HEIGHT])
Beispiel #7
0
import pygame
from racket import Racket
import square

#Global Colors
GREEN = (31, 161, 61)
RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLUE = (3, 73, 252)

pygame.init()

#Game objects
racketA = Racket(RED, 10, 100)
racketA.rect.x = 20
racketA.rect.y = 200

scoreA = 0
scoreB = 0

racketB = Racket(BLUE, 10, 100)
racketB.rect.x = 670
racketB.rect.y = 200

ball = square.Ball(WHITE, 10, 10)
ball.rect.x = 345
ball.rect.y = 195

#Window
size = (700, 500)
screen = pygame.display.set_mode(size)
Beispiel #8
0
    def __init__(self):
        super().__init__("game")
        self.next_gamestate = None
        self.rackets = [
            Racket((Config.MARGIN,
                    Config.SCREENHEIGHT // 2 - Config.RACKET_HEIGHT // 2),
                   (Config.RACKET_WIDTH, Config.RACKET_HEIGHT)),
            Racket((Config.SCREENWIDTH - Config.MARGIN - Config.RACKET_WIDTH,
                    Config.SCREENHEIGHT // 2 - Config.RACKET_HEIGHT // 2),
                   (Config.RACKET_WIDTH, Config.RACKET_HEIGHT))
        ]
        self.ball = Ball(self.rackets,
                         (Config.SCREENWIDTH // 2 - Config.BALL_SIZE // 2,
                          Config.SCREENHEIGHT // 2 - Config.BALL_SIZE // 2))
        self.ball.on_boundary_hit.append(
            self.score_point)  # subscribe to event to update the score
        self.ball.on_boundary_hit.append(
            self.play_boundary_sound)  # play boundary sound
        self.ball.on_racket_hit.append(
            self.increase_speed
        )  # subscribe to event to increase speed on every racket hit
        self.ball.on_racket_hit.append(
            self.play_racket_sound)  # play racket bounce sound

        self.racket_controls = []
        for i, control in enumerate(Config.controls):
            if control == "ai":
                self.racket_controls.append(
                    Control_ai(self.rackets[i], self.ball))
                # nerf ai players - otherwise they are too strong
                self.rackets[i].max_speed = Config.AI_PLAYER_SPEED
            elif control == "mouse":
                self.racket_controls.append(Control_mouse(self.rackets[i]))
                self.rackets[
                    i].max_speed = Config.MOUSE_SPEED  # higher speed for mouse input
            elif control == "keyboard":
                self.racket_controls.append(Control_keyboard(self.rackets[i]))

        self.info_text = Text_widget(
            (Config.SCREENWIDTH // 2, Config.SCREENHEIGHT - Config.MARGIN),
            "ESC zum Beenden",
            color_normal=pygame.Color(100, 100, 100),
            text_justify="center",
            vertical_align="top")

        self.score_widgets = [
            Text_widget(
                (Config.MARGIN + Config.RACKET_WIDTH * 2, Config.MARGIN), "0"),
            Text_widget(
                (Config.SCREENWIDTH - Config.MARGIN - Config.RACKET_WIDTH * 2,
                 Config.MARGIN),
                "0",
                text_justify="right")
        ]

        self.countdown = Config.START_COUNTDOWN
        self.countdown_text = Text_widget(
            (Config.SCREENWIDTH // 2, Config.SCREENHEIGHT // 2),
            "",
            text_justify="center",
            vertical_align="center")

        self.gui = GUI_group()
        self.gui.add(self.score_widgets[0], self.score_widgets[1],
                     self.info_text, self.countdown_text)

        Sound_manager.change_song()
Beispiel #9
0
def create_rackets(sys_settings, screen, rackets):
    racket = Racket(sys_settings, screen)
    rackets.add(racket)
Beispiel #10
0
import time
import random

LEFT_END = -580
RIGHT_END = 580

screen = Screen()
screen.setup(width=1200, height=600)
screen.bgcolor('black')
screen.title("Naru's Ping-Pong Game")
screen.tracer(0)

board = Board()
ball = Ball()

player_left = Racket()
player_right = Racket()
player_left.make_rackets(LEFT_END)
player_right.make_rackets(RIGHT_END)

screen.listen()
screen.onkey(player_left.up, "w")
screen.onkey(player_left.down, "s")
screen.onkey(player_right.up, "Up")
screen.onkey(player_right.down, "Down")

while True:
    screen.update()
    time.sleep(0.08)

    ball.move()