草庐IT

c++ - 全高清 2D 纹理内存 OpenGL

我正在为一家艺术家公司编写具有全高清功能的2D引擎,该引擎有望跨平台并使用OpenGL和C++编写。我遇到的主要问题是如何处理所有这些高清Sprite。艺术家以24fps的速度绘制图形,并将它们导出为png序列。我已将它们转换为DDS(不理想,因为它需要加载directxheader)DXT5,这大大减少了文件大小。游戏中的某些场景一次可以有5或6个动画Sprite,这些Sprite可以每个包含200多帧。目前我正在将Sprite加载到一个指针数组中,但这加载时间太长,即使使用压缩纹理也是如此,并且使用相当多的内存(完整场景大约500mb)。所以我的问题是,对于如何处理如此大量的帧,您

处理 1,000,000 个 2D Sprite 的 C++ 2D 图形库?

我正在尝试做一个需要处理大量简单二维对象的项目,当然还需要绘制它们。为此,我需要一个可以处理大量“Sprite”的优秀C++库。我一直在试用Qt,因为我认为他们的“40,000芯片”演示非常令人印象深刻。然而,稍微玩一下,我的电脑似乎在管理160,000个芯片时遇到了很多麻烦。我不知道它为什么慢的技术细节(CPU?糟糕的OpenGL的GPU使用?Qt对大量项目不好?)因此,我一直在网上搜索适合我需要的库。但我找不到任何东西,主要是因为没有图书馆似乎会说“嘿,我擅长管理1,000,000个对象!”,但我确信有些图书馆比其他图书馆更有能力。我不需要像SDL这样“好”的库,如果我没有操纵杆支

android - CocosSharp 和触摸

我在CocosSharp游戏中有几个Sprite,我为每个Sprite添加了一个CCEventListenerTouchAllAtOnce。我注意到我触摸的位置并不重要,所有Sprite都会收到OnTouchesBegan/Moved/Ended事件。有没有办法让Sprite只对与其相关的触摸使用react?此外,CocosSharp中是否有处理重叠Sprite的内置解决方案?(如果触摸在重叠区域,我希望顶部Sprite对触摸使用react,而不是底部Sprite) 最佳答案 要么使用触摸位置和sprite边界框编写命中文本,要么考

ios - Swift Sprite-kit 移动对象

我现在正在使用coreMotion来移动我的主角,但在使用此代码后我遇到了设备方向问题。manager.startAccelerometerUpdates()letdata=manager.accelerometerDatamanager.accelerometerUpdateInterval=0.0001manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()){(data,error)inself.plane.physicsBody!.applyForce(CGVectorMake(120.0*CGF

ios - cocos2d 动画不显示 Sprite 表

我的游戏出现了一些奇怪的错误。谁能帮我解决这个问题。我有一个运行游戏,英雄在运行时收集硬币,当英雄触摸硬币时,现在我正在展示在粒子制造商的帮助下创建的粒子效果。它工作正常。但是最后一天我购买了一个软件,它为我们提供了非常好的粒子效果,但它只能导出为pngs。所以我制作了Sprite表,而不是以前的粒子动画,我把它放在接触监听器代码上,以便在英雄触摸硬币时显示这种效果。不幸的是它没有显示任何东西。这是我以前的代码:-(void)checkHeroAndCoins{floatfDelta=0;if(m_hero->m_bMagnet)fDelta=iDevPixelX(30);for(Co

ios - 如何将单个 tileset 图像导入 xCode(Sprite Kit)?

图block集示例:http://www.rpg-studio.org/wiki/images/9/92/Tileset.png如何在Xcode中将这些图像导入到这个网格中?https://koenig-media.raywenderlich.com/uploads/2016/06/AdjacencyTileGrid.png问题是Xcode不理解父图像中有很多子图像。我已经看过很多使用平铺map编辑器的例子,但它有自己的格式,你不能在Xcode的可视化编辑器中设计这样的关卡。所以它们不适合我。我还看到人们总是避免使用tilesets-他们在某个地方得到了很多单独的图像,并且没有描述如何

ios - 如何跟踪 Sprite Kit 中的动画

我需要跟踪带有纹理的动画。我正在为电源条设置动画,当用户单击屏幕时它应该停止并节省电量。我不知道如何省电。到目前为止我有这个:第一次触摸电源条动画,但在第二次触摸时它只停止但不节省电量。这是我创建动画的方式:textureAtlas=SKTextureAtlas(named:"images")foriin1...textureAtlas.textureNames.count{letname="\(i).png"textureArray.append(SKTexture(imageNamed:name))}letanimateForward=SKAction.animate(with:t

ios - 在 SpriteKit 中将动态物理对象保持在手指下

我正在使用spritekit开发一个相对简单的child游戏,例如虚拟玩具屋。在这个游戏中,他们是纸质角色,还有一些互动对象,如弹力球。目前,我可以在移动手指时给出球的速度,并且球会跟随我移动的手指。但是,当我将手指(握住球)保持在屏幕上的一个位置时,球会变得不稳定并开始在整个房间内跳跃或从我的手指中掉落。我通过在角色被按住时将isDynamic设置为false并将它们的位置更新到我的手指来为角色解决了这个问题,但这不能为球完成,因为它会阻止速度工作。我已经包含了moveChar和moveBall函数,因此您可以看到它们的区别,以及调用它们的地方的touchesMoved。谢谢!ove

ios - Sprite Kit 所有对象只出现在屏幕的右半边

您好,我是一个不太有经验的iOS应用程序开发人员,我正在用表情符号创建这个太空游戏,但是一切都在屏幕中间产生,当我使用加速度计移动玩家时,如果一切正常消失,但如果我向左倾斜它就会消失并从右循环返回,我该如何解决这个问题并为我的游戏View添加边框??这是我的模拟器截图importSpriteKitimportGameplayKitimportCoreMotionclassGameScene:SKScene,SKPhysicsContactDelegate{varplayer:SKSpriteNode!varemojis=["emoji1","emoji2","emoji3","emoj

ios - 避免纹理切换(openGL es 2.0)

我正在为IOS开发小型2d渲染引擎。我想渲染许多位于不同纹理中的Sprite。现在这听起来很简单......只需渲染属于相同纹理的所有Sprite并移动到下一个......但是如何处理具有不同纹理的图元重叠?我想以与图片完全相同的方式渲染它们(重叠)。这意味着我需要切换纹理三次。如果我有数百个这样的混合Sprite怎么办?为了避免在客户端切换纹理并一次渲染所有Sprite。我在片段着色器中使用以下代码:if(txt>=0.5)gl_FragColor=texture2D(texture1,texCoords)*clr;if(txt>=1.5)gl_FragColor=texture2D