游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4988|回复: 7

手机网游里的战斗加速怎么实现的?

[复制链接]

11

主题

72

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
QQ
发表于 2015-9-10 10:10:33 | 显示全部楼层 |阅读模式
不需要代码,只希望有经验的程序帮忙指点迷津。我想不通实现方法,总不能是超频什么的吧。。也不太可能是拼2套图。那么是不是就只能在骨骼精灵里下功夫了?请求设计理念的概述,谢谢!

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2015-9-10 10:33:35 | 显示全部楼层
把播放的逻辑速度加快就可以,游戏通常都是有帧概念,比如一秒30帧

可以加快帧的播放速度,比如一秒60帧。

11

主题

72

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
QQ
 楼主| 发表于 2015-9-10 10:51:36 | 显示全部楼层
sea_bug 发表于 2015-9-10 10:33
把播放的逻辑速度加快就可以,游戏通常都是有帧概念,比如一秒30帧

可以加快帧的播放速度,比如一秒60帧。 ...

我们做单机游戏都是按60帧做的,就没法这么实现了吧?另外有些游戏还有x3,或x4的,那基础帧是不是太慢了

31

主题

257

帖子

1752

积分

金牌会员

申城谍影

Rank: 6Rank: 6

积分
1752
QQ
发表于 2015-9-10 12:41:38 | 显示全部楼层
我是不玩游戏的,所以没体会过楼主说的3X,4X,

我觉得要完全用升帧的办法,假设正常是30帧,4X要升到120帧,
不一定可行,

减少动画的帧,或者加速动画更新,不知是否可行。。。

0

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2016-1-18 11:03:33 | 显示全部楼层
我了个去.没有一个回答是对的....
加速其实就是加快动画的播放速度.举个最简单的2D游戏动画的例子.正常情况下一个角色动画10帧,播放间隔是80ms.如果要加速1倍则是把播放间隔缩短到40ms.加速2倍则是20ms.

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2016-1-24 12:25:20 | 显示全部楼层
一楼正解,首先要实现逻辑和表现的分离,加速逻辑帧即可实现加速播放。同理跳过战斗与战斗回放。

0

主题

2

帖子

42

积分

注册会员

Rank: 2

积分
42
发表于 2016-2-27 22:51:06 | 显示全部楼层
游戏中战斗加速,真正实现起来可能还是要看具体的游戏类型吧。不同类型的游戏,其战斗加速方式可能实现方式会不一样。

如果游戏的结算是以服务端为准的,则客户端其实就只是纯展现而已。此种情况,想加速的话,最快的、最简单直接的,就是直接点一下:查看战斗结果按钮即可。(有些如:类三国的策略类游戏中,就是这么做的)。

有些游戏战斗是主要“以客户端战斗为准”,但所有结果都需要经过服务端的验证后才认可的。则此种情况,客户端就不止纯展现了,还包括逻辑的run。这样的话,想加速。最好的办法就是使用前面几位说的,使逻辑帧加速的办法。这样,自然就会起到加速效果了。当然理论上,是想加速多少倍都可以(注意:这只限于理论上),可事实上,我们的游戏是做不到的。因为此种方法的加速倍数会受到性能的影响。举个例子说:如果我们正常情况下引擎能支撑的帧数极限为100帧(其实也不能说是引擎能够支撑的,主要应该还是说设备的性能能够支撑的),战斗的逻辑帧数为30帧。而你加速2倍速时,就相当于游戏是以60帧的速度在运行。加速3倍速时,是相当于90帧的速度运行。这两个情况都未超过极限值,此时游戏都还能正常动作。但如果你以4倍速加速时,此时实际需要的是要能支持120帧速的能力,此时明显超过极限值100帧。出现这样的情况,不是说游戏会有问题,而是游戏会运行的不稳定。事实上,比如手持设备,一般建议的帧率为60帧。因为在此帧速情况下,基本上所有的手持设备都能够比较稳定动作,也就是感觉比较顺畅。(其实pc设备一般也都是60帧,但要看具体项目,有的项目逻辑很复杂,可能项目经验或主程会主动将帧速降下来)。因此,我们一般情况下,游戏加速也都是会受到设备性能的限制的。

还有,游戏的战报播放其实也是一样的处理方案。如果说你的项目能够让4倍速的情况下运行的还很顺畅的话,那说明你的项目的程序员还是挺有实力的。(因为个人感觉有许多开发人员大多都是半桶水,许多经验、技能还不一定够。而且国内大多数团队都是一两个能力强的,带一群新人开发。)

0

主题

3

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2018-11-25 16:52:01 | 显示全部楼层
方法一:控制动画序列帧得播放间隔时间。
但只是对角色动画进行加速的话会显得有点怪异,还需要对作用在角色动画身上的特效同样进行加速处理,此外移动速度也需要相应加速。

方法二:加速游戏的时间心跳。
这个方法实现的前提是游戏的角色播放及移动逻辑需要独立在一个心跳循环中通过获取前后两次的时间间隔差来控制相应的逻辑。在这个基础上实现加速只要通过自己实现一个gettimer()方法来替代系统时间运行方法即可。在自己实现的gettimer()方法中只要根据真实时间做出相应的模拟加速即可实现游戏程序的整体加速。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-24 09:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表