Questions tagged «pygame»

2
在Pygame中执行SNES模式7(仿射变换)效果
关于如何在pygame中执行Mode 7 / mario kart类型效果有一个简短的答案吗? 我已经在Google上进行了广泛的搜索,可以提供的所有文档都是数十种其他语言(asm,c)的页面,其中包含许多看起来很奇怪的等式。 理想情况下,我想找到一些用英语而不是用数学术语解释的东西。 我可以使用PIL或pygame来操纵图像/纹理,或者其他必要的东西。 我真的很想在pygame中实现模式7的效果,但是我似乎快要结束了。帮助将不胜感激。即使您提供的任何资源或说明都不如我希望的那么简单,也将是非常棒的。 如果我能弄清楚,我将为新手页面写一个明确的方法7。 编辑:模式7文件:http://www.coranac.com/tonc/text/mode7.htm
19 pygame 

3
对于基于分形的程序化城市布局,有什么好的算法?
背景 我运行的是我的世界服务器,在这里我将设计一个规模相当大的入门城市。我有一系列东西,例如尺子标志和暴民笼子,我想在那儿放建筑物。这个城市本身将非常庞大且分布广泛,最大规模可达1000 x 1000街区。 建筑物本身将具有基于某个基本立方体的立方体或矩形足迹,例如3块的所有倍数。街道和建筑物之间的距离最好为5-11块宽,具体取决于街道的重要性。 当我开始制定城市规划时,我将确切地知道我想要多大的建筑物以及将要建造的建筑物。 问题 问题在于设计城市的布局。显然,由于规模如此之大,而且我来自编程领域而不是城市规划者背景,因此即使开始思考这个问题也颇具挑战。 具体来说,问题是我希望这座城市看起来尽可能自然。当然,在简单的网格模式上构建起来会相当容易,但是我要尽可能避免使用网格或任何看起来像网格的东西。 问题 我可能会追求哪些算法来帮助我使用代码进行设计?我当时以为,如果我以某种方式使用分形,那将是最自然的,因为我的世界在地形生成中已经使用了分形,而一个城市似乎自然以分形的方式成长。 我认为它在某种程度上与俄罗斯方块播放算法相似,因此,如果有人在该方向上存在解决方案,那么它也会有所帮助。我在想象可以在其中定义我要使用的形状的东西,然后该软件进行迭代,直到找到最“最佳”的解决方案来均匀分配建筑物。 是否已经存在帮助我使用python(最好是使用pygame以可视方式)解决此问题的方法? 自然,这在整个游戏设计中也对城市一代产生了有趣的影响,因此我很高兴看到最佳解决方案是什么。 编辑 为了清楚起见,我现在正在寻找布局,因为建筑物将在游戏中设计和建造。

2
为什么移动鼠标时我的精灵播放器移动得更快?
我正在尝试开发一个使用Pygame(Python库)制作的简单游戏。 我有一个sprite物体,player然后使用箭头键将其移动。如果我不移动鼠标,则精灵会正常移动,但是当我移动鼠标时,精灵会移动得更快(例如x2或x3)。该player对象位于charsGroupvar 内部。 我已经在W7和Ubuntu中运行了该游戏。两种操作系统都发生相同的情况。 我有更多的实体会像NPC和子弹一样移动,但它们不会受到影响,只是玩家。鉴于此,我认为问题可能与玩家移动系统(箭头键)直接相关。 这是对象的update()方法player: def update(self): for event in pygame.event.get(): key = pygame.key.get_pressed() mouseX, mouseY = pygame.mouse.get_pos() if event.type == pygame.MOUSEBUTTONDOWN: self.bulletsGroup.add(Bullet(pygame.image.load("bullet.png"), self.rect.x + (self.image.get_width()/2), self.rect.y + (self.image.get_height()/2), mouseX, mouseY, 50, 50)) if key[pygame.K_RIGHT]: if not self.checkCollision(): self.rect.x += 10 else: self.rect.x -= 10 if key[pygame.K_LEFT]: if not …

2
将“真实单位”缩放为像素的通用模式?
这是对另一个问题的后续问题。 我想知道是否存在一个通用/典型/最佳模式来缩放我对世界的表示(当前为160Kmx160Km)以使其适合绘图区域(当前为800x600像素)。 我可以想到至少四种不同的方法: 天真(到目前为止我的方式)。我实现了一个全局函数sc(vector),该函数将简单地返回传入的向量的按比例缩小的副本。这当然有效,但是必须我编写如下代码: drawCircle(sc(radius), sc(position)) 包装功能。我可以定义几个函数,每个函数都包装原始的中间件。例如,我可以定义myDrawCircle先缩放需要缩放的参数,然后再调用drawCircle后者。这可能会使我的代码更具可读性,并且更易于维护,但是我应该编写很多包装函数,听起来很傻。 功能装饰器。我可以简单地装饰现有的中间件功能,对所有属于这个类的一个实例参数提供自动缩放Vector3D,但问题是,这些功能也使用相同的参数是工作list还是Vector2D也和装饰就没有办法知道哪些列表需要缩放(例如半径),哪些​​不缩放(RGB值)。 表面初始化。在定义要绘制的表面时,我可以定义比例因子(这样我就可以使用米而不是像素作为参数)。这将对我透明地工作,并且是我选择的解决方案,但是当然应该在中间件中实现,因此这不是一个真正的选择。 ...无论如何:由于这是一个非常普遍的问题,所以我想知道是否存在一种可以很好地解决我未能找到的问题的既定模式。 PS:对于这个项目,我正在使用python(与pygame一起使用),但是-尽管对python / pygame特定的答案非常,但我对模式的一般/高级描述而不是其具体实现更感兴趣。 预先感谢您的时间和专业知识。

6
使pygame的帧速率更快
通过对游戏进行性能分析,我发现我的爱好游戏的绝大部分执行时间都在blit和flip调用之间。目前,它仅以13fps的速度运行。我的显卡相当不错,所以我猜想pygame没有使用它。 有人知道我需要在pygame中设置任何图形/显示选项以使其更快吗?还是自选择pygame以来我必须忍受的东西?

1
gluLookAt如何工作?
据我了解, gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 等效于: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); 但是当我打印出ModelView矩阵时,对的调用glTranslatef()似乎无法正常工作。这是代码片段: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

2
增加发条速度?
我正在PyGame中使用2D横屏游戏。对于每张地图,我们使用一个纹理(这是纹理的实际大小): 然后,我们使用以下代码加载图像: sprite = pygame.image.load("Maps/MapTesting.png") sprite.convert() sprite = pygame.transform.scale(sprite, (sprite.get_width()*6, sprite.get_height()*6)) 如您所见,纹理被炸毁了6次以创建实际的地图纹理。平均而言,此纹理约为4500x800。每帧都必须在屏幕上涂抹此纹理,因为整个屏幕都是脏的(由于侧面滚动)。我们使用以下代码进行操作: screen.blit(sprite, (0, 0), (cameraposx, cameraposy, windowheight, windowwidth)) 而且有效。问题在于它的运行速度很慢:我在低端的PC上只能获得40 FPS的微不足道,而且没有任何实际的AI /对象运行,而我们的目标是60 FPS。我们如何加快速度? 请注意,上面的代码已经过清理并且没有上下文。完整的代码可以在这里找到:https : //github.com/nightcracker/PyGG2 最后但并非最不重要的一点是,尽管上面的图像可能看起来像8位,但是游戏中的某些元素需要更高的位深度。
9 pygame 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.