Articles of pyglet

Pyglet:如何使用第二个屏幕的vsync

有没有人知道是否有可能使用第二台显示器的vsync,而不是pyglet的第一台显示器? 我有2个监视器,一个以60Hz运行,另一个以120Hz运行。 我希望能够在任何监视器上设置我的应用程序,并让应用程序使用监视器的速率交换缓冲区。 这需要跨平台。 我发现这个信息… pyglet.window 但是我想知道有没有人知道方法 谢谢你的帮助。

移动时调整角色的武器

我正在为Python的Cocos2dtesting游戏(代码有点肮脏)。 我试图在同一时间跑步和射击,而且每次开火时我的角色(跑步)腿都不会回到开始位置。 所以它运行,将有自由拍摄。 代码使用一个自定义的动作类(PlatformerController),它是在一个Sprite上实现的,该Sprite被放置在它自己的图层上。 有三个代表角色的精灵:它的胳膊和身体。 代码检查玩家是否正在运行。 如果是的话,那么它会消除玩家的arm,并用枪支replace它们。 如果我更换跑步的身体,这也可以正常工作,但是如果我只是在保持跑步身体的情况下取下arm并将其更换,arm会立即添加到身体后面。 也许有人有更好的建议呢? 我试过了: 使用一个单独的平台控制器的武器 将每个arm精灵与人物的身体alignment 在arm上使用相同的身体位置 使用内置移动(间隔动作,不同于自定义动作类)的类 这里是完整的代码(应该注意的是,我添加了“标签”参数到精灵): import pyglet from pyglet.window import key from pyglet.image import load_animation import cocos from cocos import layer, mapcolliders, actions, tiles, sprite, scene from cocos.director import director import cocos.euclid as eu import cocos.collision_model as cm class evaHero(layer.ScrollableLayer): def __init__(self): super(evaHero, self).__init__() theAnim […]

用Pyglet加载平铺的地图

我正在试图加载一个TMG文件与pyglet和pytmx 。 我想分别加载地图的图层,因为我将把图层放置在视差中。 理想情况下,我希望每个图层都是一个pyglet image ,我可以使用image.blit()命令直接将image放到窗口中。 我知道将每个图层设置为一个Sprite对象并在包含这个Sprites的批处理上调用draw()会更有效率,但是现在我希望背景图层是图像对象。 (我想这是因为我正在移植来自不同框架的代码,我想尽可能地与原始代码紧密结合。) 不幸的是,pytmx的实验pyglet模块缺less文档,而文档给出的例子会调用错误的方法。 这是我到目前为止所尝试的。 import pyglet import pytmx from pytmx.util_pyglet import pyglet_image_loader class TiledMap: def __init__(self, filename): self.tmxdata = pytmx.TiledMap(filename, colorkey = BLACK) # load tmx data in pyglet friendly way self.width = self.tmxdata.width * self.tmxdata.tilewidth self.height = self.tmxdata.height * self.tmxdata.tileheight def render_layer(self, layer_name, surface): for layer in self.tmxdata.layers: […]

为什么不pyglet窗口响应?

我在python命令行解释器中使用下面的代码,但窗口不响应。 import pyglet window = pyglet.window.Window() 一个白色的窗口显示左上角的python图标,但它基本上挂起。 Windows任务管理器显示这个窗口没有响应。 但是,Python命令提示符运行良好。 没有错误或警告消息得到显示。

image.ImageGrid()如何工作? 如何解决它?

我明白这个方法的作用(它把一个spritesheet剪成一个图像列表),但我不明白它是如何削减的。 一个图像的高度和重量是多less? 我尝试了几张spritesheets png,每次都会用下一张图片的一部分来剪切图片。 不正确。

Pygames,Pyglet和Kivy之间有什么区别,以及它们如何帮助Python游戏开发?

我试图找出哪些选项是最好给一个基于UNIX的2D游戏,其逻辑部分是用Python编写的graphics。 使用哪个引擎。 Pygames,Pyglet和Kivy之间有什么区别,以及它们如何将游戏的逻辑部分与其实际的graphics显示相关联?

为什么我的obj文件导入pyglet显示一个空白的屏幕?

我想弄清楚如何将使用Blender生成的.obj文件导入到我的Pyglet游戏中。 在Pyglet的contrib目录中有一个import 对象 , 例子代码和一个例子.obj / .mtl文件。 pyglet的contrib版本可以在pyglet / contrib .obj / .mtl文件中工作(并且是w.flip ;注释掉w.flip )。 当我尝试运行它与我的 .obj和.mtl文件时,我得到一个空白的屏幕。 为什么我看到一个空白的屏幕,而不是我的Blender生成的对象? FWIW, 这是我的testing回购 。

resource.texture()和resource.image()有什么区别?

image = pyglet.resource.image('spritesheet.png') image.blit(0,0) 和 image = pyglet.resource.texture('spritesheet.png') image.blit(0,0) 做同样的事情 – 他们正在绘制一个spritesheet(或只有一个图像),他们返回纹理types。

如何为Python程序分发本机可执行文件?

最近我所有的工作都是在Python(和Ruby)中,而且我爱上了这两种语言。 在Python上有很多的游戏开发库,但是我看到的问题是很多框架没有涵盖游戏创建的“分布”方面。 我想在Python上编写我的游戏(以及我需要的任何其他纯Python额外的库),并能够为主要PC平台(Windows,Mac和Linux)分发可执行文件。 任何选项或有什么最好的组合? (也许pyglet + cx_freeze)

pyglet中纹理映射的例子

使用pyglet,我想创建一个UVSphere网格,并在其表面上,我想显示一个mercator投影映射。 在研究pyglet纹理映射的例子中,我发现: python教程6 pyglet 。 但是,这使用即时模式,并显示每个立方体面上的整个纹理。 pyglet_obj_test , 看起来像包含纹理贴图。 然而,不是显示选定的纹理,而是显示一个均匀的颜色。 stackoverflow的问题 ,这看起来像一个解决scheme的答案。 然而,显示工作代码的参考要点已经消失。 另一个实现 , 在pyglet谷歌组中引用 在pyglet中有没有简单的工作网格+纹理贴图的例子? 编辑:我发现pyglet_obj_test代码正在寻找以.t开头的.obj文件中的行,以创建纹理映射坐标。 然而,Blender的Wavefront出口商显然没有select导出这些信息。 我导出了与其他可用types相同的网格: COLLADA (.dae) Stanford (.ply) Stl (.stl) 3D Studio (.3ds) Autodesk FBX (.fbx) X3D Extensible 3D (.x3d) 也许有一个这样的格式pyglet导入器… 编辑2:我清楚地了解波前格式。 看来vt线是没有必要的。 我错过的是全f地图。 例如,为了简化事情,我创建了一个实际上是一个正方形的三维网格,其中映射了一个纹理。 在Blender中,它显示了具有扭曲纹理的正方形,但是内置的波前输出器产生一行纹理映射f 2//1 1//1 3//1 4//1 。 这些显然应该是类似于f 2/0/1 1/0/1 3/0/1 4/0/1 (注意应该有两个斜线之间的数字)。 显然,如果纹理是UV映射的, Blender只会执行这些行的完整(正确?)导出。 […]