Ошибки DRI3, libEGL и MESA в PygamePython

Программы на Python
Ответить
Anonymous
 Ошибки DRI3, libEGL и MESA в Pygame

Сообщение Anonymous »

При запуске моего 3D-лабиринта Pygame я обнаружил новую ошибку при его загрузке.
Вот моя ошибка:
 Environment updated. Reloading shell...
pygame 2.6.1 (SDL 2.28.4, Python 3.11.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI3: Screen seems not DRI3 capable
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
libEGL warning: egl: failed to create dri2 screen

Вот все мои зависимости, которые есть в моем коде:
requires-python = ">=3.11"
dependencies = [
"panda3d>=1.10.15",
"pygame>=2.6.1",
]

Я потратил время на изучение того, что это означает, но это проявляется только в сбое Windows, и с моим компьютером все в порядке. Это связано с моей видеокартой и пропускной способностью моего компьютера. Я без проблем запускал это на каждом компьютере, который использовал.
Я использую Python для replit. Так что, насколько я знаю, эта ошибка даже не должна вызывать эту ошибку.
Может кто-нибудь сказать мне, что это значит?
Вот мой main.py:
import pygame
import math
from maze import Maze

# Constants
SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600
MAZE_WIDTH, MAZE_HEIGHT = 41, 41
BLOCK_SIZE = 40
SPEED = 0.1
FOV = math.pi / 3 # Field of view
RAY_COUNT = 500 # Number of rays to cast for rendering
MAX_DEPTH = 20 # Rendering distance
MOUSE_SENSITIVITY = 0.0002 # Reduced sensitivity

class Game:

def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("3D Maze Game")
self.clock = pygame.time.Clock()
self.maze = Maze(MAZE_WIDTH, MAZE_HEIGHT).generate()
self.player_x, self.player_y = 1.5, 1.5
self.angle = math.pi / 4 # Player facing direction

# # Load wall texture
# self.wall_texture = pygame.image.load("wall.png")
# #self.wall_texture = pygame.transform.scale(self.wall_texture, (100, 100))

# Mouse control settings
pygame.mouse.set_visible(False)
pygame.event.set_grab(True)

def cast_rays(self):
""" Raycasting with proper fade-to-black shading and textures """
for ray in range(RAY_COUNT):
ray_angle = self.angle - (FOV / 2) + (FOV * ray / RAY_COUNT)
depth = 0

while depth < MAX_DEPTH:
test_x = int(self.player_x + math.cos(ray_angle) * depth)
test_y = int(self.player_y + math.sin(ray_angle) * depth)

if self.maze[test_y][test_x] == 1:
break # Stop at walls

depth += 0.05

# Fade into black instead of gray
line_height = min(SCREEN_HEIGHT, int(SCREEN_HEIGHT / (depth)))
shade = max(0, 255 - min(255, depth * 20)) # DARKER FADE

pygame.draw.rect(
self.screen, (shade, shade, shade),
(ray * (SCREEN_WIDTH // RAY_COUNT), SCREEN_HEIGHT // 2 -
line_height // 2, SCREEN_WIDTH // RAY_COUNT, line_height))

# self.screen.blit(
# pygame.transform.scale(
# self.wall_texture,
# (SCREEN_WIDTH // RAY_COUNT, line_height)),
# (ray * (SCREEN_WIDTH // RAY_COUNT),
# SCREEN_HEIGHT // 2 - line_height // 2))

def handle_input(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_w]: # Move forward
new_x = self.player_x + math.cos(self.angle) * SPEED
new_y = self.player_y + math.sin(self.angle) * SPEED
if self.maze[int(new_y)][int(new_x)] == 0:
self.player_x, self.player_y = new_x, new_y

if keys[pygame.K_s]: # Move backward
new_x = self.player_x - math.cos(self.angle) * SPEED
new_y = self.player_y - math.sin(self.angle) * SPEED
if self.maze[int(new_y)][int(new_x)] == 0:
self.player_x, self.player_y = new_x, new_y

if keys[pygame.K_a]: # Strafe left
new_x = self.player_x - math.sin(self.angle) * SPEED
new_y = self.player_y + math.cos(self.angle) * SPEED
if self.maze[int(new_y)][int(new_x)] == 0:
self.player_x, self.player_y = new_x, new_y

if keys[pygame.K_d]: # Strafe right
new_x = self.player_x + math.sin(self.angle) * SPEED
new_y = self.player_y - math.cos(self.angle) * SPEED
if self.maze[int(new_y)][int(new_x)] == 0:
self.player_x, self.player_y = new_x, new_y

def handle_events(self):
lookleft = False
lookright = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
return False

elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_e:
lookleft = True
elif event.key == pygame.K_q:
lookright = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_e:
lookleft = False
elif event.key == pygame.K_q:
lookright = False
if lookleft:
self.angle -= 0.1
if lookright:
self.angle += 0.1
return True

def run(self):
while self.handle_events():
self.clock.tick(60)
self.handle_input()
self.screen.fill((0, 0, 0))
self.cast_rays()
pygame.display.flip()

pygame.quit()

if __name__ == "__main__":
Game().run()

Вот мой maze.py:
import random

class Maze:
def __init__(self, width, height):
self.width = width
self.height = height
self.grid = [[1] * width for _ in range(height)] # Walls everywhere initially

def generate(self):
def carve_maze(x, y):
""" Recursive maze generation with branching paths """
directions = [(0,1), (1,0), (0,-1), (-1,0)]
random.shuffle(directions)

for dx, dy in directions:
nx, ny = x + dx * 2, y + dy * 2
if 1

Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-pygame
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»