Top.Mail.Ru
Ответы
Аватар пользователя
2 года назад
от
Изменено

Как исправить ошибку Traceback (most recent call last):

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
 Вот код должно было получиться гонки но при запуске  через  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".