为你,千千万万遍 2022-12-08 21:39 采纳率: 0%
浏览 23

关于#python#的问题:操作环境、软件版本等信息 ubuntu20.4 marllib

问题遇到的现象和发生背景 pommerman occer AttributeError: module 'pyglet.graphics' has no attribute 'OrderedGroup'
操作环境、软件版本等信息 ubuntu20.4 marllib

解决办法:
由于新版的pyglet没有oderedGroup,在操作过程中需要使用旧的版本的pyglet,更换版本即可。

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-09 12:57
    关注

    望采纳


    在新版的 pyglet 中,OrderedGroup 已经被删除。


    如果您需要对绘制的图形进行排序,可以使用 pyglet.graphics.Batch 类来实现。该类允许您绘制大量图形,并按指定顺序进行排序。下面是一个简单的例子:

    # 创建一个新的 Batch 对象
    batch = pyglet.graphics.Batch()
    
    # 绘制一些矩形,并将它们放入 Batch 中
    rect1 = batch.add(4, pyglet.gl.GL_QUADS, None,
                      ('v2i', (10, 15, 30, 15, 30, 35, 10, 35)),
                      ('c3B', (0, 0, 255, 0, 255, 0, 255, 0, 0)))
    rect2 = batch.add(4, pyglet.gl.GL_QUADS, None,
                      ('v2i', (50, 15, 70, 15, 70, 35, 50, 35)),
                      ('c3B', (255, 0, 0, 0, 255, 0, 0, 0, 255)))
    
    # 绘制 Batch 中的图形
    batch.draw()
    

    上例创建了一个新的 Batch 对象,并向其中添加了两个矩形。调用 batch.draw() 方法来绘制 Batch 中的图形。


    如果需要对图形进行排序,可以在将图形添加到 Batch 中时为它们指定一个深度值。深度值越小,图形就越靠前;深度值越大,图形就越靠后。例如,要将矩形2放在矩形1前,可以这样指定深度值:

    # 将矩形 1 添加到 Batch 中,并为它指定深度值为 0
    rect1 = batch.add(4, pyglet.gl.GL_QUADS, None,
                      ('v2i', (10, 15, 30, 15, 30, 35, 10, 35)),
                      ('c3B', (0, 0, 255, 0, 255, 0, 255, 0, 0)),
                      0)
    
    # 将矩形 2 添加到 Batch 中,并为它指定深度值为 1
    rect2 = batch.add(4, pyglet.gl.GL_QUADS, None,
                      ('v2i', (50, 15, 70, 15, 70, 35, 50, 35)),
                      ('c3B', (255, 0, 0, 0, 255, 0, 0, 0, 255)),
                      1)
    
    评论

报告相同问题?

问题事件

  • 修改了问题 12月9日
  • 创建了问题 12月8日

悬赏问题

  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)