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()
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()
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')
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)
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)
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])
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)
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()
def create_rackets(sys_settings, screen, rackets): racket = Racket(sys_settings, screen) rackets.add(racket)
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()