Как исправить ошибку Traceback (most recent call last):
Вот код должно было получиться гонки но при запуске через python был просто
черный экран, я решил скомплить а когда скомплил и открыл вылезла ошибка
(Traceback (most recent call last):
File "gta.py", line 4, in <module>
File "ursina\main.py", line 32, in __init__
File "direct\showbase\ShowBase.py", line 341, in __init__
File "direct\showbase\ShowBase.py", line 1026, in openDefaultWindow
File "direct\showbase\ShowBase.py", line 1061, in openMainWindow
File "direct\showbase\ShowBase.py", line 771, in openWindow
File "direct\showbase\ShowBase.py", line 751, in <lambda>
File "direct\showbase\ShowBase.py", line 823, in _doOpenWindow
File "direct\showbase\ShowBase.py", line 652, in makeDefaultPipe
File "direct\directnotify\Notifier.py", line 130, in error
Exception: No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.)
вот код
from ursina import *
import random
app = Ursina()
camera.orthographic = True
camera.fov = 40
car = Entity(
model = 'quad',
texture = (r"C:\Users\дом1\PROGRAMandGAMES\car.png"),
collider = 'box',
scale = (2,1)
)
road1 = Entity(
model = 'quad',
texture = (r"C:\Users\дом1\PROGRAMandGAMES\croad.png"),
collider = 'box',
scale = 15,
z=1
)
road2 = duplicate(road1, y=15)
pair = [road1, road2]
enemies = []
def newEnemy():
val =random.uniform(-2,2)
new = duplicate(
car,
texture = (r"C:\Users\дом1\PROGRAMandGAMES\car1.png"),
x = 2*val,
y = 25,
color = color.random_color(),
rotation_z =
90 if val < 0
else -90
)
enemies.append(new)
invoke(newEnemy, delay=1)
newEnemy()
def update():
car.x -=held_keys['a']*5*time.dt
car.x -=held_keys['d']*5*time.dt
for road in pair:
road.y -= 6* time.dt
if road.y < -15:
road.y += 30
for enemy in enemies:
if enemy.x < 0:
enemy.y -= 10 * time.dt
else:
enemy.y -= 5 * time.dt
if enemy .y < -10:
enemies.remove(enemy)
destroy(enemy)
if car.intersects().hit:
car.shake()
app.run()
Ошибка, которую вы получили, говорит о том, что у вас отсутствует графическая библиотека, которую можно использовать с библиотекой Panda3D. Для исправления этой ошибки вам необходимо установить графическую библиотеку и указать ее в файле конфигурации Config.prc.
Вы можете попробовать установить одну из поддерживаемых графических библиотек, таких как OpenGL или DirectX, или использовать встроенную в Panda3D библиотеку Tinydisplay. Для того, чтобы указать графическую библиотеку в файле конфигурации Config.prc, добавьте следующую строку в этот файл:
load-display
Замените на название вашей графической библиотеки.
Кроме того, я заметил, что вы вызываете функцию app.run () внутри функции update (). Вам следует переместить эту строку за пределы функции update () и вызывать ее только один раз в вашей программе.
у вас есть опечатка в коде: в строке "car.x -=held_keys['a']5time.dt" дважды вычитается значение, вместо того чтобы вычесть значение из оси y, вы вычитаете его из оси x. Для исправления этой ошибки замените первую строчку на
"car.x -= held_keys['a'] * 5 * time.dt"
и вторую на
"car.x += held_keys['d'] * 5 * time.dt".