Questions tagged «storage»

4
什么是存储动态游戏对象的最有效容器?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我正在做第一人称射击游戏,我知道很多不同的容器类型,但是我想找到最有效地存储动态对象的容器,该对象将在游戏中频繁添加和删除。EX子弹。 我认为在那种情况下,它将是一个列表,以便内存不连续并且永远不会进行任何大小调整。但随后我也正在考虑使用地图或集合。如果有人有任何有用的信息,我将不胜感激。 我是用c ++编写的。 另外,我想出了一个我认为可行的解决方案。 首先,我将分配一个大尺寸的向量。比如说1000个对象。我将跟踪此向量中最后添加的索引,以便知道对象的末尾在哪里。然后,我还将创建一个队列,该队列将保存从向量中“删除”的所有对象的索引。(不会进行实际的删除,我只知道该插槽是免费的)。因此,如果队列为空,我将添加到向量+ 1中最后添加的索引,否则,我将添加至队列前面的向量的索引。

5
如何将游戏的逐帧动画压缩到磁盘上的最少数量
我开发了一个类似帝国时代(地图上的建筑物)的游戏,对于每座建筑物,我都有一个动画精灵表。我正在使用逐帧动画为建筑物设置动画(无论如何都不知道任何其他方法)。我注意到由于放入其中的图像,资源文件夹变得非常大。 CoC和《帝国时代》等游戏如何将apk大小保持在50 Mg以下?我是否在游戏开发方面缺少一些东西? 谢谢 编辑:更多信息到我面临的问题 我有很多动画可绘制对象。我之所以选择这种方式,是因为它是最快的,并且正在产生我想要的结果。基本上,每个建筑物都是一个动画可绘制对象,其中的xml文件引用了8个可绘制对象(8个图像= 8个文件)。由于透明性,所有这些都是PNG。由于我有200多个图像,因此apk大小为120 MB(并且还没有完成一半文件的复制)。这就是提示,必须有一种解决方法。请协助其他开发人员

2
重播-存储和定时
我正在从事赛车游戏,只是实现了一个幽灵精灵来重播过去的比赛。我使用物理引擎,经过大量阅读后得出的结论是,存储重影数据以进行重放的最佳方法是在给定的时间点记录汽车的位置和旋转,例如此处所述:https:// gamedev。 stackexchange.com/a/8380/26261。 但是,在重播期间找到这些时间点的一种好方法是什么?一个示例是具有以下数据的记录: time: +3.19932 (seconds since race start) position: 180,40 (position at that time) rotation: 30.4 (rotation at that time) 但是我有几个问题: 重新播放时,不太可能再次达到3.19932的确切时间点-更有可能的是,我的时间点大约是3.1,必须找到最接近的匹配记录。插值时,即使是上下最接近的匹配。听起来效率很低,很费时间吗? 我可以在哪个列表结构中存储这些记录以供以后重播?数组?难道不是说比赛时间越长,匹配特定时间记录的搜索时间会增加吗? 我应该为时间点使用哪个频率?每个帧都是-我猜想是过大了,相反,我应该保存,即每第n帧并在它们之间进行插值,这使存储问题在2中更加困难。 那么这个想法甚至是正确的方法吗?如果是,我如何有效地存储和检索数据?请注意,我通常希望使用上面的数据结构,而不是确定性的游戏状态和记录用户输入等。 谢谢你的帮助! 编辑:我意识到我应该描述我使用的环境:iPhone的Cocos2D。有一种方法update:(ccTime)delta。理想情况下,每1/60秒调用一次此方法,但不能保证- delta是自上次游戏结束以来经过的实际时间,并且可能多于或少于1/60。我想用这种方法存储当前的游戏状态。

3
存储十六进制网格
我一直在为Unity3D创建一个小的十六进制网格框架,并遇到了以下难题。这是我的坐标系(从此处获取): 除了我不知道如何存储外,所有这些都很好地工作。我最初打算将其存储在2D数组中,并使用图像生成我的地图。 一个问题是它具有负值(可以通过稍微偏移坐标来轻松解决此问题)。 但是,由于坐标系的原因,此类图像或位图必须是菱形的-并且由于这些结构是方形的,因此即使我一起砍东西,也会造成很多麻烦。我有什么可以解决的问题吗?我记得在统一论坛上看到过与此相关的论坛帖子,但我找不到链接。 在这里编写一组坐标翻译器是最好的解决方案吗? 如果你们认为这会有所帮助,我可以张贴代码和问题图像。

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 
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.