Forums

pygame doesn't work and neither does arcade

import sys

try: import pygame PYGAME_AVAILABLE = True except ImportError: PYGAME_AVAILABLE = False

try: import arcade ARCADE_AVAILABLE = True except ImportError: ARCADE_AVAILABLE = False

if not PYGAME_AVAILABLE and not ARCADE_AVAILABLE: print("Neither Pygame nor Arcade are installed. Please install at least one of them to run this game.") sys.exit(1)

class MultiLibraryGame: def init(self): self.width = 800 self.height = 600 self.title = "Multi-Library Game" self.player_x = self.width // 2 self.player_y = self.height // 2 self.player_speed = 5

def run_pygame(self):
    pygame.init()
    screen = pygame.display.set_mode((self.width, self.height))
    pygame.display.set_caption(self.title)

    clock = pygame.time.Clock()
    running = True

    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

        keys = pygame.key.get_pressed()
        if keys[pygame.K_w]:
            self.player_y -= self.player_speed
        if keys[pygame.K_s]:
            self.player_y += self.player_speed
        if keys[pygame.K_a]:
            self.player_x -= self.player_speed
        if keys[pygame.K_d]:
            self.player_x += self.player_speed

        screen.fill((0, 0, 0))
        pygame.draw.rect(screen, (255, 0, 0), (self.player_x, self.player_y, 50, 50))
        pygame.display.flip()
        clock.tick(60)

    pygame.quit()

def run_arcade(self):
    class ArcadeGame(arcade.Window):
        def __init__(inner_self):
            super().__init__(self.width, self.height, self.title)
            self.player_x = self.width // 2
            self.player_y = self.height // 2
            self.player_speed = 5

        def on_draw(inner_self):
            arcade.start_render()
            arcade.draw_rectangle_filled(self.player_x, self.player_y, 50, 50, arcade.color.RED)

        def on_key_press(inner_self, key, modifiers):
            if key == arcade.key.W:
                self.player_y += self.player_speed
            elif key == arcade.key.S:
                self.player_y -= self.player_speed
            elif key == arcade.key.A:
                self.player_x -= self.player_speed
            elif key == arcade.key.D:
                self.player_x += self.player_speed

    game = ArcadeGame()
    arcade.run()

def run(self):
    if PYGAME_AVAILABLE:
        print("Running with Pygame...")
        self.run_pygame()
    elif ARCADE_AVAILABLE:
        print("Running with Arcade...")
        self.run_arcade()

if name == "main": game = MultiLibraryGame() game.run()

Correct. pygame requires a screen to draw on and that is not available on PythonAnywhere

how else am I supposed to make it work?

Run it on the desktop or laptop, not in the cloud on headless server.