Questions tagged «python»

Python是一种动态且强类型的编程语言,可促进可读性。

5
用Python编写的著名游戏[关闭]
我已经看到了其中的一些,即Java和C#/ XNA ...,最近我开始使用Python。哪种让我思考。 用Pygame / Pyglet / Pyopengl用Python编写了哪些(著名的)游戏?
30 python 

3
如何为许多独特的武器/法术/能力构建代码
我是一个没有经验的程序员,使用Python(类似于Pogue,到目前为止还没有PyGame,因为我仍然只关注文本),因此在FTL的背景下创建了“类似Roguelike”的游戏。 我的游戏将包含大量产生独特能力的武器(入门者约为50种)。我正在努力了解如何以既强大(就允许武器产生根本不同的效果)又具有可扩展性(以便以后可以通过将它们放入文件夹等方式添加更多武器)的方式来构造目标代码。 )。 我的第一个本能是拥有BasicWeapon类,并从该类继承不同的武器。但是,这对我来说似乎是个问题:要么我必须使BasicWeapon类变得如此准系统以至于它基本上是无用的(所有武器共有的唯一功能就是名称和类型(手枪,斧头等)),或者我必须预测每个我将想出独特的效果并将其编码到BasicWeapon中。 后者显然是不可能的,但是前者仍然可以工作。但是,这给我留下了一个问题:我应该将单个武器的代码放在哪里? 我是否要创建plasmarifle.py,rocketlauncher.py,swarmofbees.py等,然后将它们全部放入游戏可以导入它们的文件夹中? 还是有一种方法可以拥有一个数据库样式的文件(也许像Excel电子表格一样简单),而该文件却以某种方式包含每种武器的唯一代码-无需求助于eval / exec? 关于后一种解决方案(数据库),我认为我正在努力解决的基本问题是,尽管我理解保持代码和数据之间的分离是可取的,但我觉得武器模糊了“代码”之间的界限和“数据”一点;它们代表了可以在游戏中找到的各种各样类似的事物,从某种意义上说,它们就像数据一样,但是它们中的大多数将至少需要一些不与其他任何项目共享的唯一代码,从某种意义上说,它们自然就是码。 我在此站点的其他地方找到的部分解决方案建议给BasicWeapon类提供一堆空方法-on_round_start(),on_attack(),on_move()等-然后为每种武器覆盖这些方法。在战斗周期的相关阶段,游戏将为每个角色的武器调用适当的方法,并且只有定义了方法的对象才会实际执行某项操作。这会有所帮助,但仍然无法告诉我每个武器的代码和/或数据应该放在哪里。 有没有其他语言或工具可以用作半数据,半代码嵌合体?我是否完全掌握了良好的编程习惯? 我对OOP的理解充其量只是个粗略的知识,所以我希望对那些不太计算机科学的回答表示赞赏。 编辑:沃恩·希茨(Vaughan Hilts)在下面的帖子中明确指出,我本质上讲的是数据驱动编程。我的问题的实质是:我如何以一种数据可以包含脚本的方式实施数据驱动的设计,从而使新武器能够在不更改主程序代码的情况下做新事情?

5
noSQL-它是基于Web的游戏的有效选择吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 出于机会和无聊,我和一个朋友决定制作一个基于网络的游戏。这是我将要制作的第一个“游戏”,因为通常我会在Django中编写Web应用程序。 我选择在游戏中使用相同的框架,但由于无法预见未来的需求和与数据库相关的问题,因此我对数据存储并不完全确定。最近,noSQL运动逐渐兴起,我想探索这一领域。 因此,我有以下问题: noSQL数据存储(基于文档,例如MongoDB)是否适合基于Web的游戏? 使用传统的RDBMS(例如MySQL)可能会出现什么问题? 如何在玩游戏或定时事件(例如cron作业)期间,确保使用MongoDB的用户之间的数据一致性? 游戏概述:典型的冒险游戏,玩家与怪物战斗并获得物品等。 所有玩家的一些数据都是静态的:物品,武器,药水,地图等。 与玩家相关的一些数据:清单,指标(统计数据),进度等。 一个玩家可能需要知道另一个玩家的状态和状态 计划任务将在特定时间间隔运行

4
最好的Python 3D引擎是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我想要一个简单的3d Python引擎,它对于Linux来说很容易获得并且易于使用。Soya3D对我失败是因为缺少文档。我应该能够加载常见的3D模型,而不会出现问题。
20 3d  python 

3
如何在游戏中生成随机的湖泊和河流?
我有一个2D方块建筑游戏,正在尝试制作随机生成的湖泊和河流。我已经研究了Perlin噪声算法,但是无法获得它来生成随机且不错的结果。 我一直在尝试使用python noise库,但是它并不是随机创建地图。 我在该库中缺少一些种子函数来使其更加随机吗?如果我希望它变得更随机,该更改什么变量?如果可能的话,给我一个不太技术的答案,减少数学运算,增加更多python术语。 该地图是2D平铺的地图。这是其他算法的非随机性的一些示例。以下代码连续输出3次。我使用以下方法将八度和频率随机化:freq = 16.0 * random.randint(1, 500000) * 0.000001 + 0.5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 …

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 …

5
Python Performance vs Game Maker [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 我最初考虑使用Python和SFML创建游戏。我了解Python与C ++相比速度较慢,但​​与Game Maker相比又如何? 我问的主要原因是我最近玩了一个Game Maker游戏(Iconoclasts),该游戏在我的计算机(GMA 950)上以相当差的帧速率运行。我担心Python / SFML会遇到类似的性能问题。

3
如何在网格上使用A *制作看起来自然的路径?
我一直在阅读:http : //theory.stanford.edu/~amitp/GameProgramming/Heuristics.html 但是有些事情我不理解,例如,文章说使用这样的东西进行对角线运动的寻路: function heuristic(node) = dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * max(dx, dy) 我不知道如何像本文中那样设置D来获得自然的外观路径,就像上面所说的那样,我将D设置为相邻正方形之间的最低成本,而且我不知道它们对启发式技术的意义是什么。是4 * D,那似乎并没有改变任何事情。 这是我的启发式功能和移动功能: def heuristic(self, node, goal): D = 5 dx = abs(node.x - goal.x) dy = abs(node.y - goal.y) return D * max(dx, dy) def move_cost(self, …

6
一组图块边界的高效算法
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我有一个已知的有限大小的瓷砖网格,可以形成地图。地图内的某些图块放置在称为“区域”的集合中。该区域是相连的,但对其形状一无所知。在大多数情况下,它是一个相当规则的斑点,但它可能在一个方向上被拉长,甚至可能有孔。我有兴趣找到该领土的(外)边界。 也就是说,我想要一个列表,列出所有与区域中的某个区域相关但未在区域中的区域。找到这个的有效方法是什么? 额外的困难是,我的图块是十六进制的,但是我怀疑这并没有太大的区别,每个图块仍标记有x和y整数坐标,并且给定一个图块,我可以轻松找到它的邻居。下面是一些示例:黑色是领土,蓝色是我要查找的边界。 这本身并不是一个难题,用伪python的一种简单算法是: def find_border_of_territory(territory): border = [] for tile in territory: for neighbor in tile.neighbors(): if neighbor not in territory and neighbor not in border: border.add(neighbor) 但是,这很慢,我想要更好的东西。我在整个领土上有一个O(n)循环,在所有邻居上有另一个循环(虽然很短,但仍然),然后我必须检查两个列表的成员资格,其中一个列表的大小为n。这给定了O(n ^ 2)的可怕比例。我可以通过使用集而不是边界和地区列表来将其简化为O(n),以便快速检查成员资格,但这仍然不是很好。我希望在很多情况下,由于面积和线比例缩放的原因,领土很大但边界很小。例如,如果区域是半径为5的十六进制,则其大小为91,而边框的大小仅为36。 谁能提出更好的建议? 编辑: 要回答以下一些问题。区域的大小范围从20到100左右不等。形成区域的图块集是一个对象的属性,而这个对象需要所有边界图块的集合。 最初,领土是作为一个街区创建的,然后大部分都是一块一块地获得。在这种情况下,确实最快的方法是保留一组边界并仅在获得的图块上更新它。有时,可能会对该地区进行重大更改-因此需要重新计算。 我现在认为,执行简单的边界查找算法是最好的解决方案。这带来的唯一额外复杂性是确保可能需要每次都重新计算边界,但不超过此数目。我非常有信心可以在当前框架中可靠地完成此操作。 至于时间,在我当前的代码中,我有一些例程需要检查该区域的每个图块。不是每回合,而是在创作时以及随后的创作中。即使它只是完整程序的很小一部分,也要花费我的测试代码运行时间的50%以上。因此,我渴望尽量减少重复。但是,测试代码涉及的对象创建要比程序正常运行(自然)要多得多,因此我意识到这可能不太相关。

2
如何为Python程序分发本机可执行文件?
最近,我所有的工作都是使用Python(和Ruby)进行的,我爱上了这两种语言。有许多用于Python开发游戏的库,但是我看到的问题是,这些框架中有许多都没有涵盖游戏创建的“发行”方面。我想用Python(以及我需要的任何其他纯Python额外的库)编写游戏代码,并能够为主要PC平台(Windows,Mac和Linux)分发可执行文件。 有没有其他选择,或者什么是最佳组合?(也许pyglet + cx_freeze)
11 python  pyglet 

1
python 3.5的Pygame?
我刚刚从...获得了Python 3.5链接:https://www.python.org/downloads/windows/ 以前我有Python 3.4和Pygame版本1.9.2a0。效果很好。但是,我的新Python 3.5与我为3.4获得的那个版本的Pygame不兼容。我在以下位置找到了最新的Pygame文件:链接:http : //www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 我下载了Pygame文件,但是它是.whl格式的文件。我应该做些什么? 我昨天尝试了一整天。到目前为止,我所发现的只是关于pip和wheel的信息,并执行一些命令,例如“ pip install”等。但是我完全迷失了。我以前从不知道点子。 我什至不确定是否有适用于Python 3.5的Pygame版本,但我确实尝试通过查找来查找,但我从未找到过此类信息。我想要做的就是让Pygame能够启动并运行Python 3.5,并使它能够像使用Python 3.4时一样出色地工作。如果Pygame尚未与Python 3.5兼容,那我就重新安装python 3.4和相应的pygame文件。
10 python 

3
Python游戏可以在多个平台上运行吗?
我计划用Python和一些SQL编写游戏。我担心我的程序在完成后会具有怎样的通用性,理想情况下,我希望它可以在Windows,Mac,Android和iPhone上运行...但是我有种感觉,手机将无法使用此功能那类的东西。我将如何编写可在多个平台上运行的程序?对于初学者来说,这是否可行?

3
脚本应该与引擎的抽象交互吗?
我正在使用Java和Jython,经过一些研究,我发现让脚本直接访问引擎接口可能是一个错误,因为它将两者紧密结合在一起。 看起来大多数脚本都允许mods通过某种抽象来创建和管理实体。出于这些原因存在这些抽象,还是只是为非程序员提供了一种更直观的方式来修改游戏?
10 java  python  scripting 

3
在python中开发非平凡的2d游戏是个好主意吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 4年前关闭。 我正计划开发2D空间RPG,但我面临的选择是:用哪种最佳语言书写?我的候选人是C ++,Java和Python。显然,我想用Python编写游戏,因为它的表现力,开发速度和添加脚本支持的简便性。但是我很担心: Python不会太慢吗?该游戏并非易事(例如像俄罗斯方块),可能需要为宇宙中数千艘飞船计算任务(尽管如果玩家看不到它们的飞船,它们的AI可以大大简化)。当然,我可以用C编写一些关键部分,但是它将立即使构建和部署变得复杂。 假设游戏开始流行,而我成为了超级巨星。Windows用户根本很少拥有Python(幸运的是我们拥有py2exe)。Mac OS X上的Python可能已过时,并且游戏可能因异常而崩溃。在Python中部署游戏会不会很困难? 由于缺少适用于Python 3的库,我将不得不用Python 2编写游戏。难道几年之内过渡到Python 3会不会太痛苦且耗时?
10 python 

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.