我正在制作一款使用粒子效果进行爆炸的 libGDX 游戏。这在新手机上运行得很好,但在旧手机上(在 HTC Desire 上测试过)当屏幕上出现多次爆炸时,fps 会显着滞后。
我目前正在考虑两种选择:
每个效果有很多粒子,因此减少粒子数量可能是一种选择,但出于一致性和美学原因,我宁愿不这样做。
使用运行粒子效果并保存每一帧生成的动画。这看起来不错并且会保持一致。图片大小可能有问题。我也看不出如何使用 libGDX 粒子实现来做到这一点。
有什么想法吗?
编辑: 部分代码 fragment : 在 Assets 类中加载效果后:
particleFire.load(Gdx.files.internal("explosion.p"),Gdx.files.internal(""));
我在射弹对象的构造函数中加载粒子效果。我在主渲染循环中创建这个对象,我知道这是优化的候选对象。
explosion = new ParticleEffect(Assets.particleFire);
在渲染线程中调用此方法绘制效果。
private void drawBlasts(float delta){
for(Missile projectile : world.missiles){
if (projectile.missileState == State.EXPLODING){
if(projectile.stateTime==0.0f) {
projectile.explosion.start();
continue;
}
projectile.explosion.setPosition(projectile.position.x, projectile.position.y);
projectile.explosion.draw(spriteBatcher, delta);
}
}
}
一段爆炸.p
- Delay -
active: false
- Duration -
lowMin: 1000.0
lowMax: 1000.0
- Count -
min: 0
max: 100
- Emission -
lowMin: 0.0
lowMax: 0.0
highMin: 250.0
highMax: 250.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Life -
lowMin: 800.0
lowMax: 800.0
highMin: 1000.0
highMax: 1000.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.66
timeline2: 0.9931507
编辑 2:这些效果是相加的,所以也有一些很好的混合。
最佳答案
看看你的两个想法,它们都会奏效。 第一个可以通过使粒子稍微大一点并使用更少的粒子来解决。手机必须处理的粒子越少越好,因为每个粒子动态移动,因此每帧滴答计算很多。
我觉得你的第二个选择会更好,因为没有/很少的处理时间(简单地计算“爆炸”的距离并选择合适的帧。但是也有一个权衡,你的所有爆炸都会看起来非常相似。如果你可以发布你的一些代码(你使用了多少粒子,爆炸发生的频率,同时发生的爆炸的大致数量)那将会很有帮助。我前阵子遇到过类似的问题,但是一个更简单的粒子效果,我通过渲染一个粒子效果并将它移动到每帧显示它的任何地方来解决它
编辑 1: 好的,所以我认为您正在寻找的是粒子效果池。您基本上预先分配了一定数量的粒子效果,而不是像我相信您可能有的那样根据需要创建它们。通过重用固定池中的对象而不是单独分配和释放它们,您可以节省大量内存和处理。我尝试了我相信你在我的 Desire HD 上所做的事情,并在屏幕上同时获得了大约 22 fps 和 12、1 秒 100 个奇数粒子效果。然后合并它们我得到了大约 25 个。它并不是非常好,但每一点都有帮助。此外,即使将粒子数减少到 75% 左右也不是那么明显,并且可以为您节省很多帧!
Particle Effect Pool Libgdx JavaDoc
抱歉,我帮不上忙了!
关于android - 为速度较慢的手机优化粒子效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13229482/
其实做自媒体的成本并不高,入门只需要一部手机即可!在手机上找视频素材、使用手机剪辑视频、最后使用手机发布视频作品获得收益!方法并不难,今天这期内容就来给粉丝们分享一种小方法,每天稳定收益100-300,抓紧点赞收藏!1、找素材(1)使用手机拍摄自己喜欢的经典段落,使用程序把文案内容提取出来(2)也可以在豆瓣、知乎、微博等网站中找一些自己需要的文案素材(3)把文案进行润色修改,可以加入一些自己的观点(4)视频素材可以使用软件中自带的素材,也可以在素材网站中下载完整版的素材2、文案配音(1)把复制好的文案直接导入小程序中(2)调整音色、音调后一键合成音频即可(3)可以选择自己朗读配音,需要花一点时
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在我在网上找到的每个基准测试中,Ruby似乎都很慢,比Java慢得多。Ruby的人只是说这无关紧要。您能举个例子说明RubyonRails(以及Ruby本身)的速度真的无关紧要吗?
ruby调试器不会在我在与执行开始时不同的文件中设置的断点处停止。例如,考虑这两个文件,foo.rb:#foo.rbclassFoodefbarputs"baz"endend和main.rb:#main.rbrequire'./foo'Foo.new.bar我使用ruby-rdebug.\main.rb开始调试。现在,当我尝试使用b./foo.rb:4在另一个文件的特定行上设置断点时,我收到消息Setbreakpoint1atfoo.rb:4,但是当我cont时,程序执行到最后,调试器永远不会停止。但是,如果我在main.rb中的一行上打断,例如b./main.rb:3,或者一个方法,
我希望Ruby的解析器会进行这种微不足道的优化,但似乎并没有(谈到YARV实现,Ruby1.9.x、2.0.0):require'benchmark'deffib1a,b=0,1whileb由于这两种方法除了在第二种方法中使用预定义常量而不是常量表达式外是相同的,因此Ruby解释器似乎在每个循环中一次又一次地计算幂常数。是否有一些Material说明为什么Ruby根本不进行这种基本优化或只在某些特定情况下进行? 最佳答案 很抱歉给出了另一个答案,但我不想删除或编辑我之前的答案,因为它下面有有趣的讨论。正如JörgWMittag所说,
我正在尝试从数据库中读取大量单元格(超过100.000个)并将它们写入VPSUbuntu服务器上的csv文件。碰巧服务器没有足够的内存。我正在考虑一次读取5000行并将它们写入文件,然后再读取5000行,等等。我应该如何重构我当前的代码以使内存不会被完全消耗?这是我的代码:defwrite_rows(emails)File.open(file_path,"w+")do|f|f该函数由sidekiqworker调用:write_rows(user.emails)感谢您的帮助! 最佳答案 这里的问题是,当您调用emails.each时,
今天我在我的Rails控制台中尝试了一些东西,这发生了,2.0.0p247:009>Date.today-29.days=>Fri,07Feb20142.0.0p247:010>Date.today-29.days=>Thu,09Jan2014我很困惑。我可以看到我缺少一些基本的东西。但这让我印象深刻!谁能解释为什么会这样? 最佳答案 实际发生的是这样的:Date.today(-29.days)#=>Fri,07Feb2014today有一个名为start的可选参数,默认为Date::ITALY。Anoptionalargument
手机访问电脑后AnyViewer可以做什么? 您成功将手机连接到Windows电脑后,然后您可以做任何您想做的事情,例如:查看文件和运行应用程序。电源管理:在远程会话中,点击电源管理,您可以看到三个项目:锁定、重启和关机,供您在不同情况下管理计算机。如果您需要暂时离开远程会话,可以锁定计算机。如果计算机死机,您可以重新启动它,然后再次连接。如果您已完成计算机上的所有工作,您可以使用手机远程关闭它。更改图像质量:当电脑和手机的网络都处于良好状态时,您可以选择高图像质量以获得更好的体验。当网络状况不佳时,您可以选择低图像质量以获得更流畅的操作。 显示桌面:我们无法在手机上按Windows+
恢复出厂设置后数据还在吗?格式化真的彻底吗?数据到底该怎么删?文章目录前言为什么不能彻底删除数据?手机如何彻底删除数据?第一步:恢复出厂设置第二步:手动覆写数据电脑如何彻底删除数据?方法一:命令提示符方法二:文件粉碎方法三:低级格式化硬盘总结前言个人数据安全再次成为大家关注的热门话题:在日常使用手机和电脑时,我们可能需要删除一些敏感数据,例如银行账户信息、个人照片、聊天记录等。数据删除的目的是保护个人隐私,避免泄露。以下是一些关于如何删除数据的方法。恢复出厂设置,不一定彻底清除手机数据电子产品迭代升级速度越来越快,大家家中的旧手机、旧电脑也越来越多,一键删除、格式化、恢复出厂设置能彻底清除个人
文章目录前言约束硬约束的轨迹优化Corridor-BasedTrajectoryOptimizationBezierCurveOptimizationOtherOptions软约束的轨迹优化Distance-BasedTrajectoryOptimization优化方法前言可以看看我的这几篇Blog1,Blog2,Blog3。上次基于MinimumSnap的轨迹生成,有许多优点,比如:轨迹让机器人可以在某个时间点抵达某个航点。任何一个时刻,都能数学上求出期望的机器人的位置、速度、加速度、导数。MinimumSnap可以把问题转换为凸优化问题。缺点:MnimumSnap可以控制轨迹一定经过中间的