Questions tagged «algorithm»

算法用于计算,数据处理和自动推理。更准确地说,算法是一种有效方法,表示为用于计算函数的定义明确的指令的有限列表。

3
如何分解精灵表
我有很多Spritesheets格式不佳,我想分解它们,或分解成许多小图像,每个Sprites一个。如果可以,我可以使用自定义纹理打包器工具来构建游戏资源。 我的开发工具是针对Windows的XNA和C#。如何分解图像?

2
可以处理多个吸引子的物理引擎?
我正在整理一款将主要在三维重力下进行的游戏。 我的意思是说,多个行星/恒星/月球表现得很真实,并且表示重力场中的路径绘制和路径预测。 我研究过各种物理引擎,例如Bullet,tokamak或Newton,但它们似乎都不适合,因为我必须在其框架中重新编写重力引擎。 您是否知道一种物理引擎能够处理多个彼此吸引的物体? 我不需要场景图管理或渲染,只需要核心物理即可。(碰撞检测和刚体动力学一样是额外的奖励)。 我的背景是物理学,因此我可以编写一个使用Verlet集成或RK4(甚至必须使用Euler集成)的引擎,但是我更愿意采用现成的解决方案。 [编辑]:有一些伟大的资源用于物理模拟N体问题的在线,并在计算器

5
增加相似图块彼此相邻生成的可能性
我正在开发一个瓷砖地图系统,它看起来像这样(绿色是草,空气是白色,石头是灰色,蓝色是水): 它使用了一个简单的随机数生成器,因此瓷砖有45%的机会是草,有30%的机会是水,有25%的机会是石头。 无论如何,我是否可以增加草块/石头块结成块形成土地块,并使水块形成海洋的趋势(有点像在《我的世界》这样的游戏中看到的那样)?
9 java  algorithm  tiles  maps  lwjgl 

4
有没有办法提高n个对象系统的碰撞检查效率?
我正在制作一个包含许多屏幕对象的游戏,其中一个是玩家。我需要知道哪些对象在每次迭代中都发生冲突。 我做了这样的事情: for (o in objects) { o.stuff(); for (other in objects) if (collision(o, other)) doStuff(); bla.draw(); } 这个有O(n ^ 2),我被告知是不好的。我如何更有效地做到这一点,甚至有可能吗?我在用Javascript编写,n通常小于30,如果保持不变,会不会有问题?

3
生成随机池或湖泊
我已经实现了可以绘制任何多边形的函数,但是我无法生成模仿湖泊圆角的平滑形状。我尝试生成两个圆并连接边缘,但是没有足够的变化或平滑度。是否有人有可能产生这样的形状的指针或想法?

3
针对多个正方形的基于图块的高效碰撞检测?
目前,我正在自己开发一款基于图块的游戏(想想Terraria,但不要太幻想了(我认为这是一个词?如果不是,抱歉)。 无论如何,我目前有碰撞检测功能(甚至适用于极端情况!),这对我来说是一大进步。看到一个精灵没有穿过一个块,这让我非常高兴。但是后来我有了基准测试的想法。馊主意。 1000平方,没问题。10,000平方,对于3个字符来说有点滞后。100,000平方(真是巨大的地图),无法显示3个字符。 我遇到的问题是,我什至不想考虑与玩家,角色,物品等距离太远的块,但我不想不断地将这些块装入内存。 到目前为止,这是我的算法,请随时批评。 foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between the two bounding boxes if (depth of intersection != Zero-vector) { check y size vs x size resolve on smallest …

1
关于2D空间分区的文档
我正在寻找说明2D空间分区算法和数据结构的不同类型(无论如何都是主要类型)的文档。 除“ Google it并筛选数百篇论文”外,所有其他指标。也许是一本书?

2
太阳运动功能?
因此,考虑到将太阳精灵设置在地平线上(x = 0,y = worldheight / 2),我试图设计一个使太阳升起然后掉落的函数。 最好的方法是使用sin函数,但我不知道如何使用它。 如果使用y = sin(x),则对于完整的曲线,x的范围必须在0到pi之间,而对于X的速度必须恒定。 有什么想法或建议吗? 编辑:谢谢大家!

1
找出滑鼠点击进入的方块
我正在开发基于等距网格的游戏,并且在尝试将鼠标单击从用户链接到图块时遇到问题。我已经能够将问题分为两部分: 找到一个围绕瓷砖的矩形(我已经能够做到) 从矩形中找出点击的瓷砖(让我感到困惑) 这是一个内部有图块的矩形的示例: 矩形长70像素,高30像素,所以如果我使用30x(top)/ 20y(left)的输入,我将如何确定该像素落入哪个图块?

3
如何找到被移动的圆圈扫过的2D网格单元?
我正在基于2D网格制作游戏,其中有些单元格可以通过,有些则不能。动态对象可以独立于网格连续移动,但需要与不可逾越的单元碰撞。 我编写了一种算法来追踪射线对着网格,从而为我提供了所有与射线相交的单元。但是,实际对象不是点大小的。我目前将他们表示为圈子。但是我无法找到有效的算法来追踪运动的圆。这是我需要的图片: 数字显示圆与网格单元碰撞的顺序。有人知道找到这些冲突的算法吗?最好使用C#。 更新圆可以大于单个网格单元。

1
创建棋盘游戏AI
我想编写一个棋盘游戏,名字叫Okey,在土耳其最受欢迎。http://en.wikipedia.org/wiki/Okey 但是我有一些关于AI的问题。 Firslty让我解释一下游戏。 该游戏由4位玩家进行。 在这个游戏中,共有106张磁贴,其中2张是假小丑。其他104个瓷砖分为4种颜色,通常为绿色,黑色,蓝色和红色。所有颜色都有两组瓷砖。一组ise包含13个图块,其顺序为1到13。 每个玩家开始14个磁贴(一个是开始15,然后首先开始),然后将下一个玩家抛出最不需要的磁贴之一。下一个玩家可以获取此图块,也可以从桌子中间的堆栈中获取另一个图块。游戏以逆时针方向播放。 该游戏的目的是尽快找到14个图块的有效序列。玩家可以使用相同的颜色按顺序编号对齐图块,直到13。例如绿色1,绿色2,绿色3。这里有一个例外,可以跟1到13。例如红色12,红色13和红色1是有效集。但是红色13,红色1和红色2无效。 或者玩家可以按相同编号的颜色对齐图块。例如绿色1,黑色1,红色1,蓝色1。 每个集合必须是3个或更多的图块才能有效,并且每个集合都称为“每”。少于3个图块对完成无效。有效的整理集可以是这样的。G:绿色,B:蓝色,R:红色,BL:黑色G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13 最后一件事,当开始游戏时,选择一个图块来确定小丑(okey)。例如,如果选择“蓝色3”,则选择“蓝色”。蓝色4将是小丑(okey),玩家可以使用此图块,而不是玩家赢得或完成一组(每张)所需的任何图块。 当然,这些规则是一般性规则,可以概括以解释问题。如果您可以阅读英文,则可以查看此链接以获取更多信息http://tr.wikipedia.org/wiki/Okey或Google Translate的翻译页 http://translate.google.com/translate?js=n&prev=_t&hl= zh-CN&ie = UTF-8&layout = 2&eotf = 1&sl = tr&tl = zh-CN&u = http://tr.wikipedia.org/wiki/Okey 那我可以使用哪种AI算法?我搜索了minimax理论和alpha beta修剪。但是这些理论通常是大约2个象棋或井字游戏的玩家游戏。 原始问题在stackoverflow上:https …

5
塔防游戏中A *实现的性能降低
我正在Flash中制作没有预定义路径的塔防游戏。 尽管我的网格是40x40(小?),但每次重新计算时A *都在挣扎。因此,我进行了自己的修改以简化重新计算,并且触摸的单元数减少到900(在根附近进行修改时)。放置新塔时,它仍会冻结很短但可检测的时间。 这是一个实现问题,还是40x40太多了? 编辑: 我的代码的结构: 所有数据都保存在二维单元格数组中。 每个单元在路径方向(顺时针为1-8)中包含其父级,并在路径中包含其子项的按位编码的数组(每个位代表一个子项)。 搜索是由A *执行,并估计了欧几里得距离。
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.