- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好吧,所以我对 pyglet 和 OpenGL 来说都是个新手,我想知道为什么这不起作用:
def DrawCircle(cx, cy, r, segments):
theta = 2*3.1415926/segments
c = math.cos(theta)
s = math.sin(theta)
x = r
y = 0
pyglet.gl.glBegin(pyglet.gl.GL_POLYGON)
pyglet.gl.glColor3f(0.05,0.2,0.9)
for counter in range(segments):
pyglet.gl.glVertex2f(x+cx, y+cy)
t = x
x = c * x - s * y
y = s * t + c * y
pyglet.gl.glEnd()
if __name__ == '__main__':
window = pyglet.window.Window(960,1010)
window.set_location(959,20)
@window.event
def on_draw():
window.clear()
def update(dt):
print(dt)
DrawCircle(500,500,20,30)
pyglet.clock.schedule_once(update,0.6)
pyglet.app.run()
简单地说,如果我从 on_draw 调用 DrawCircle,它会完全按照需要创建一个圆。如果我安排它,就不会绘制任何东西。调度程序本身正在工作,因为 dt 打印到控制台。我猜测 on_draw 正在设置上下文或允许其绘制的内容,而当我安排它时,上下文或缓冲区可能是错误的。任何帮助将不胜感激。
最佳答案
这是正确的代码:
import pyglet
import math
window = pyglet.window.Window(960,1010)
window.set_location( 50,50)
def DrawCircle(cx, cy, r, segments):
theta = 2*3.1415926/segments
c = math.cos(theta)
s = math.sin(theta)
x = r
y = 0
pyglet.gl.glColor3f(0.05,0.2,0.9)
pyglet.gl.glBegin(pyglet.gl.GL_POLYGON)
for counter in range(segments):
pyglet.gl.glVertex2f(x+cx, y+cy)
t = x
x = c * x - s * y
y = s * t + c * y
pyglet.gl.glEnd()
@window.event
def on_draw():
window.clear()
DrawCircle(500,500,20,30)
if __name__ == '__main__':
pyglet.app.run()
使用 Pyglet,所有绘图通常都是在 on_draw 方法中完成。由于每次重绘时都会清除窗口,因此每次都必须绘制形状。
更新功能不一定与显示相关
调度一次或定期调度一般用于定期修改各种参数(即:对于动画来说:x,y += dx,dy *dt)。
关于python - Pyglet 未绘制预定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25199468/
我正在使用Python 2.6.6和pyglet 1.1.4。在我的“Erosion”文件夹中,有“Erosion.py”和一个名为“Images”的文件夹。在图像内部,有.png图像。一幅图像被命名
我有一个奇怪的问题。当 pyglet 应用程序启动时,它只绘制 1-2 帧然后卡住。 on_draw 事件刚刚停止发生。但是每次我移动鼠标或按键时,on_draw 事件也会调度。简而言之,我必须移动鼠
我有一个应用程序正在创建名为 Pizza Clicker 的 Cookie Clicker 的替代版本。它非常基本,但运行速度非常慢,我不明白为什么。 import pyglet window = p
因此,在我们的游戏中使用 Tkinter 后,我们决定转向 Pyglet。但我遇到的问题之一是运动,在 Tkinter 中我能够制作一个平滑的运动系统,但在 pyglet 中我所能做的就是让角色以一种
我正在使用 pyglet 的 Player 类在 python 中编写一个音频播放器。该模块只是对 Player 和 Source 类的测试,它不会产生任何结果。没有声音,没有错误,只有一个关于垂直同
我正在尝试使用 pyglet 制作一个简单的 GUI。 这是我的代码: button_texture = pyglet.image.load('button.png') button = pyglet
考虑以下示例: import pyglet def foo(): print("I'm in a loop...") def main(): w = pyglet.window.Win
我正在使用 pyglet (OpenGL) 库,我希望能够在不改变窗口大小的情况下改变虚拟分辨率。例如,一个 2x2 的框将在屏幕上绘制为 4x4 像素。我知道我可以找到正在绘制的所有内容并单独对其进
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我非常喜欢 pyglet,但是抽象的基本单位是坐标向量,这很笨拙,而且不是我在设计复杂场景时想要的抽象级别。 是否有任何库“通常”与 pyglet 一起使用来管理形状并将它们组合到场景中?每个人都从头
我有一个用于在屏幕上显示文本的标签元素: nameLabel = pyglet.text.Label(name, font_name='Tahoma', x=50, y=50, font_size=1
我正在使用 pyglet 编写心理物理学实验。我使用的电脑有两个显示器。它们被配置为两个独立的 Xscreens,0 和 1,分别对应于我的工作站监视器和实验屏幕。我想让 pyglet 绘制到实验屏幕
在我使用 Python 和 pyglet 的游戏中,我有将事件向下传播到其成员的组: class Group(EventDispatcher): def __init__(self):
我制作了两个立方体视口(viewport),但它们都是正面正交投影,我需要其中一个来自侧面。这是绘图代码draw_small 正在绘制小型静态立方体dwar_big是大立方体的绘制,可以移动、缩放和旋
我目前正在开发一个项目,我一直在尝试将 pyglet 库中的标签字体更改为我在网上找到的字体,但我无法让它工作。我尝试在网上搜索一个小时,但似乎没有任何效果。添加了一些代码供引用: font.add_
所以我是一名 Python 初学者程序员,我一直在使用 pyglet,如果您运行此代码,我发现了一个问题: from pyglet.gl import * window = pyglet.window
我已经阅读了我能找到的所有内容,并查看了 pyglet 上游戏循环的许多示例,但我仍然不确定它是如何工作的或到底发生了什么。 (这些是我读过的文章...) http://www.pyglet.org/
我正在使用 Pyglet,并且我有一个包含在背景上移动的对象的小东西。它们都由图像(png 和 jpg)表示。 我创建了一个大小为 800x600 的非全屏窗口,它工作正常,但是当我切换到全屏时...
好吧,所以我对 pyglet 和 OpenGL 来说都是个新手,我想知道为什么这不起作用: def DrawCircle(cx, cy, r, segments): theta = 2*3.14159
我正在尝试使用 Pyglet 通过 OpenGL 渲染图像。到目前为止,我已经能够设置帧缓冲区和纹理、渲染到其中并将其保存为 PNG 图像。但我不知道如何使用 Pyglets 字体渲染。 import
我是一名优秀的程序员,十分优秀!