При запуске моего 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
Ошибки DRI3, libEGL и MESA в Pygame ⇐ Python
Программы на Python
1764036470
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79641354/dri3-libegl-and-mesa-errors-in-pygame[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия