激战2卡顿我的配置开成这个特效都掉祯,在城里人多点都卡顿,这正常吗?还是我哪里设置不对?

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
最近一直在忙公司炒股大赛的页面,终于在昨天把他给上线了。一个看似简单的页面,做起来才知道其中的艰辛,暗藏深坑。由于直接使用jquery来写页面逻辑,因此要比想象中复杂很多。无论是从布局,功能还是逻辑上来说,都有值得总结的地方。
这篇文章主要说说关于无缝滚动的实现。
刚开始学习js的时候,真心觉得无缝滚动是一个神奇的功能。背后到底是怎么回事?为什么明明只有几个方块就是滚不到头?后来明白了原理之后,发现原来是通过一些障眼法来实现。
假如需要无缝滚动的4个元素是一个ul.items中的6个li.item。我们将控制ul.items在容器.wrap中滚动。html代码如下:
ul.items表示className为items的ul元素,其他地方同理
&div class="wrap"&
&ul class="items"&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner0.8a07a886.jpg" alt=""&&/li&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner1.56bcecb3.png" alt=""&&/li&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner2.9a7e8842.jpg" alt=""&&/li&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner3.47acdfbd.png" alt=""&&/li&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner5.e9205d49.jpg" alt=""&&/li&&!--
--&&li class="item"&&img src="https://static.tigerbrokers.com/portal/images/cooperation/stockGame/v2-partner6.83b14a71.png" alt=""&&/li&&!--
我们的目标是实现水平方向上的滚动,因此需要li.item水平排列。能够达到目标的方式常用的有使用float: left,或者使用display: inline-block。我们知道控制页面元素的移动无非就是控制元素的left, top, translateX, translateY,还有一种就是控制滚动距离scrollTop, scrollLeft。布局的选择,同时也会影响到js控制属性的选择。
本例选择使用display: inline-block布局,并控制ul.items的scrollLeft值,让整个ul滚动起来。布局上需要注意的有以下几点:
超出容器的部分需要隐藏,注意,此处的隐藏是给ul.items的,注意与float: left布局的差别。
.items { overflow: }
ul.items的内容不能折行,因此
.items { white-space: }
需要适配到移动端,因此li.item的宽度就必然会随着设配宽度的变小而变小。
@media (max-width: 780px) {
width: 190
@media (max-width: 580px) {
width: 160
html布局中的&!-- --&是为了消除display: inline-block元素之间带来的间隙。
那么无缝滚动的障眼法到底是什么呢?本来用图片描述会更加直观一点,不过这里我想偷个懒,用文字给大家讲述一下,希望大家能看懂。
我们有子元素123456, 一个一个向左滚动,复制一份,就变成。如果我们在整体移动到第二个1的时候,将整体的位置拉回到第一个1来,也就是初始位置,由于有div.items的overflow: hidden在,中间发生的变化我们没办法用肉眼识别出来,就感觉是一直在向左移动,永远都停不下来。
表达能力有限,如果没懂再结合代码理解一下吧,或者留言给我
一说到运动,我们常常想到的方法可能是利用setTimeout或者setInterval, 不过呢,html5为我们提供了一个更加高性能的方法requestAnimationFrame。
在性能上,requestAnimationFrame & setTimeout & setInterval。具体原因大家可以找找相关的资料了解一下。而setTimeout的最小定时值为100/60,因此,我们在实现运动时,从性能与兼容性两方面考虑,常常会如下声明:
var lastTime = 0,
nextFrame = window.requestAnimationFrame
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame
window.msRequestAnimationFrame
function(callback) {
var currTime = + new Date,
delay = Math.max(00/60 - (currTime - lastTime));
lastTime = currTime +
return setTimeout(callback, delay);
cancelFrame = window.cancelAnimationFrame
window.webkitCancelAnimationFrame
window.webkitCancelRequestAnimationFrame
window.mozCancelRequestAnimationFrame
window.msCancelRequestAnimationFrame
我们需要知道滚动到什么位置回退到0,这个位置刚好就是复制之前所有子元素加一起的总长度。但是子元素的宽度会因为设备宽度的改变而改变,因此配合布局,我们需要作如下处理:
// 单个子元素的宽度
var itemW = 240;
if ($items.children().eq(0).width() == 190) {
itemW = 190;
if ($items.children().eq(0).width() == 160) {
itemW = 160;
// 目标位置
var target = itemW * $items.children().
为了实现障眼法,需要复制一份子元素
$items.html( $items.html() + $items.html() );
定义一个运动函数,这里的运动为匀速运动,因此比较简单,只需要一直+1即可。如果需要运动快一点,就多加一点
var timer =
function adAni() {
timer = nextFrame(function() {
scrollX += 1;
// 当递增到大于了目标距离,就直接变为0
if (scrollX &= target) {
scrollX = 0;
$items.scrollLeft(scrollX);
// 运行这个函数就可以实现无缝滚动啦。
这样无缝滚动就已经实现了。不过还有一些其他的需求。比如,鼠标mouseover时,需要停止滚动,离开之后又要重新启动滚动。因为需求的变化,在移动端还需要能够滑动items.ul,手指松开之后继续滚动。因此我们需要一个区别pc于移动端的函数。通过UA的不同来区分。
function isMobile() {
return /(iphone|ipad|ipod|ios|android|mobile|blackberry|iemobile|mqqbrowser|juc|fennec|wosbrowser|browserng|Webos|symbian|windows phone)/i.test(navigator.userAgent);
在pc端,鼠标移入时停止,鼠标移除时继续滚动
if (!isMobile()) {
$items.on('mouseover', function() {
cancelFrame(timer);
}).on('mouseout', function() { adAni(); });
在移动端,可以左右滑动,滑动时停止自动滚动,松开之后继续自动滚动。移动端的滑动事件,主要通过touchstart, touchmove, touchend来实现,与pc端的mousedown, mousemove, mouseup类似。
var sX, sL;
$items.on('touchstart', function(e) {
cancelFrame(timer);
sX = e.originalEvent.changedTouches[0].pageX;
sL = $items.scrollLeft();
}).on('touchmove', function(e) {
var dis = e.originalEvent.changedTouches[0].pageX - sX;
var nowX = sL -
if (nowX & target) {
$items.scrollLeft(nowX);
}).on('touchend', function(e) {
scrollX = $items.scrollLeft();
if (scrollX &= target) {
scrollX = 0;
那么到这里,就已经基本搞定啦。虽然是一个比较简单的小例子,但是其中也包含了一些常用的功能,比如使用requestAnimationFrame来实现运动,移动端的滑动事件等。在这里总结一下分享给大家,有疑问欢迎探讨。
实例地址:
5 收藏&&|&&72
你可能感兴趣的文章
3 收藏,186
14 收藏,2.5k
14 收藏,210
本作品 保留所有权利 。未获得许可人许可前,不允许他人复制、发行、展览和表演作品。不允许他人基于该作品创作演绎作品
新手,跟着慕课网的做法做了一遍,感觉问题多多…
新手,跟着慕课网的做法做了一遍,感觉问题多多…
涉及到的小知识点蛮多的,慢慢尝试就好了
涉及到的小知识点蛮多的,慢慢尝试就好了
其实原理和您的很像,也是通过控制绝对定位的left值来达到“镶嵌”在container元素的障眼法, 作为一个新手,我基本上都能理解,但问题就出在过渡动画上。过渡动画的原理是利用定时器,每隔几秒位移一次,直到位移到目标值,原理我能理解。但实现时,图片过渡接近完成时总会抖动一次...我改了大半天还是找不到Bug在哪里`// 移动图片函数function movepic(offset){
if (offset = 0) {}
//获取.picture的left值,
//通过负的left值(其实是图片宽度)的递增让子img元素显示在container里
var onleft = parseInt(picture.style.left) +
var timer = 600; //位移总时间
var delay = 10;
//多久执行一次位移
var speed = offset/(timer/delay); //每一次位移的位移量
//图片切换动画,感觉应该是这里出了问题
var animate = function(){
//判断向左或向右,执行动画
if (( speed & 0 && parseInt(picture.style.left) & onleft) || ( speed & 0 &&
parseInt(picture.style.left) & onleft)) {
picture.style.left = parseInt(picture.style.left) + speed + "px";
setTimeout(animate,delay);
//如果不满足条件,则已经位移至目标处
picture.style.left = onleft + "px";
if (onleft & -800) {
picture.style.left = -800 * num +"px";
if (onleft & -800 * num) {
picture.style.left = "-800px";
animate();
其实原理和您的很像,也是通过控制绝对定位的left值来达到“镶嵌”在container元素的障眼法, 作为一个新手,我基本上都能理解,但问题就出在过渡动画上。过渡动画的原理是利用定时器,每隔几秒位移一次,直到位移到目标值,原理我能理解。但实现时,图片过渡接近完成时总会抖动一次...我改了大半天还是找不到Bug在哪里
// 移动图片函数
function movepic(offset){
if (offset = 0) {}
//获取.picture的left值,
//通过负的left值(其实是图片宽度)的递增让子img元素显示在container里
var onleft = parseInt(picture.style.left) +
var timer = 600; //位移总时间
var delay = 10; //多久执行一次位移
var speed = offset/(timer/delay); //每一次位移的位移量
//图片切换动画,感觉应该是这里出了问题
var animate = function(){
//判断向左或向右,执行动画
if (( speed & 0 && parseInt(picture.style.left) & onleft) || ( speed & 0 &&
parseInt(picture.style.left) & onleft)) {
picture.style.left = parseInt(picture.style.left) + speed + &px&;
setTimeout(animate,delay);
//如果不满足条件,则已经位移至目标处
picture.style.left = onleft + &px&;
if (onleft & -800) {
picture.style.left = -800 * num +&px&;
if (onleft & -800 * num) {
picture.style.left = &-800px&;
animate();
感觉动画应该有很多种实现方式,我会在慢慢摸索的。可能现在我的水平还不足以理解。
感觉动画应该有很多种实现方式,我会在慢慢摸索的。可能现在我的水平还不足以理解。
大概瞄了2眼,1是setTimeout的延迟事件最小最好设置成为100/60,否则会出现很多奇怪的问题。2是你这个应该是想递增left,然后改变speed的值来实现一些其他的运动效果。可能需要考虑的地方比如可能speed的值不是正值?可能没办法刚好就到目标点,会超过一点?这些都是需要思考的问题。先从简单的理解吧,不要给自己设置太大是障碍。我稍后可能会在公众号分享一个封装运动实现的方式,运动方式一般都是用一个叫做Tween的插件来事件的,这是一个计算的方式。
大概瞄了2眼,1是setTimeout的延迟事件最小最好设置成为100/60,否则会出现很多奇怪的问题。
2是你这个应该是想递增left,然后改变speed的值来实现一些其他的运动效果。
可能需要考虑的地方比如可能speed的值不是正值?
可能没办法刚好就到目标点,会超过一点?这些都是需要思考的问题。先从简单的理解吧,不要给自己设置太大是障碍。
我稍后可能会在公众号分享一个封装运动实现的方式,运动方式一般都是用一个叫做Tween的插件来事件的,这是一个计算的方式。
我会去瞧瞧的~ps:
setTimeout设置为100/60是什么意思呢?
关于speed的问题我没法深入理解,只知道:比如我的包裹层的left是-800,我要让它到-1600才能显示下一张图片,那我就需要让现在的left+speed(这时speed为负值),用定时器不断重复直至left=-1600。
我只能从我能理解的开始理解的,只是那时候照着视频做出来的出现BUG,但视频的源码却很正常,这就让我百思不得其解了。
再一次谢谢你,我会去关注那个分享的 :)
我会去瞧瞧的~
- setTimeout设置为100/60是什么意思呢?
- 关于speed的问题我没法深入理解,只知道:比如我的包裹层的left是-800,我要让它到-1600才能显示下一张图片,那我就需要让现在的left+speed(这时speed为负值),用定时器不断重复直至left=-1600。
- 我只能从我能理解的开始理解的,只是那时候照着视频做出来的出现BUG,但视频的源码却很正常,这就让我百思不得其解了。
- 再一次谢谢你,我会去关注那个分享的 :)
帮你把 codepen 的 demo 放出来了,很好的 demo。
帮你把 codepen 的 demo 放出来了,很好的 demo。
“我们有子元素123456, 一个一个向左滚动,复制一份,就变成”,应该并不需要复制完整的6个,复制可显示的数量就可以了,比如有6个,但是一次可显示的是3个,那复制前3个就可以了,在滚动到最后的时候,用复制的3个补上去以达到看起来的无隙
“我们有子元素123456, 一个一个向左滚动,复制一份,就变成”,应该并不需要复制完整的6个,复制可显示的数量就可以了,比如有6个,但是一次可显示的是3个,那复制前3个就可以了,在滚动到最后的时候,用复制的3个补上去以达到看起来的无隙
全部复制在计算上要简单一点
全部复制在计算上要简单一点
1,settimeout
设置100/60其实是为了迎合最优播放体验的动画原理“60祯/秒”这个祯率,并不一定要这么做,其实普通的一些动画有30已经不会感觉很流畅,但如果不足20祯/秒的话视觉效果确实会差,而settimeout的最小能达到的值主要还是看线程跟浏览器的优化,但主动写到最小(如0)的话可能会因过多的调用而导致卡顿。2,你那个抖动应该是因为你下面的这段代码,每一祯(settimeout)只需要改变1次left值就可以了,你这里做了2次的变换,
picture.style.left = onleft + "px";//第一次变换
if (onleft & -800) {
picture.style.left = -800 * num +"px";//按条件A第二次变换
if (onleft & -800 * num) {
picture.style.left = "-800px";//按条件B第二次变换
1,settimeout
设置100/60其实是为了迎合最优播放体验的动画原理“60祯/秒”这个祯率,并不一定要这么做,其实普通的一些动画有30已经不会感觉很流畅,但如果不足20祯/秒的话视觉效果确实会差,而settimeout的最小能达到的值主要还是看线程跟浏览器的优化,但主动写到最小(如0)的话可能会因过多的调用而导致卡顿。
2,你那个抖动应该是因为你下面的这段代码,每一祯(settimeout)只需要改变1次left值就可以了,你这里做了2次的变换,
picture.style.left = onleft + &px&;//第一次变换
if (onleft & -800) {
picture.style.left = -800 * num +&px&;//按条件A第二次变换
if (onleft & -800 * num) {
picture.style.left = &-800px&;//按条件B第二次变换
取消inline-block元素中间多余的间距的方法可以不用html标签,在父元素设置font-size:0;就可以了,如果inline-block元素有写文字的需要则在inline-block的元素里重新给上font-size
取消inline-block元素中间多余的间距的方法可以不用html标签,在父元素设置font-size:0;就可以了,如果inline-block元素有写文字的需要则在inline-block的元素里重新给上font-size
恩,这也是一个很好的办法。不过重新设置字体大小会导致页面渲染回流,所以从性能上来考虑我选择了加html标签,不过确实麻烦了一点。
恩,这也是一个很好的办法。不过重新设置字体大小会导致页面渲染回流,所以从性能上来考虑我选择了加html标签,不过确实麻烦了一点。
首先,依照浏览器渲染的原理来说,写在css的渲染应该在css文件及dom加载完成后就会完成,我觉得并不会带来太多额外的开销,其次,按性能来说,性能的大头反而在后面动画变动的元素上,例如要进行位置偏移的ul应该position:absolute阻止大面积的reflow计算,而偏移动画应该优先用transform而不是scroll和left,兼容性可以使用以下标的形式实现不同样式(style[(-prefix-)transform|left])的控制。
首先,依照浏览器渲染的原理来说,写在css的渲染应该在css文件及dom加载完成后就会完成,我觉得并不会带来太多额外的开销,其次,按性能来说,性能的大头反而在后面动画变动的元素上,例如要进行位置偏移的ul应该position:absolute阻止大面积的reflow计算,而偏移动画应该优先用transform而不是scroll和left,兼容性可以使用以下标的形式实现不同样式(style[(-prefix-)transform|left])的控制。
你好,感谢你的回答。
setTimeout的100/600是指设置setTimeout(function(){},100/600),也就是每隔100/60秒调用一次吗?
经过你的提醒我又回去试了下代码,我那两个条件是当轮播图向后播到最后一张(条件B),或者向前播到第一张(条件A)的时候才触发,我试了试把条件删除,还是会抖动。如果你有空,能否找个空闲时间看看我的代码呢?
你好,感谢你的回答。
1. setTimeout的100/600是指设置setTimeout(function(){},100/600),也就是每隔100/60秒调用一次吗?
2. 经过你的提醒我又回去试了下代码,我那两个条件是当轮播图**向后**播到最后一张(条件B),或者向前播到第一张(条件A)的时候才触发,我试了试把条件删除,还是会抖动。如果你有空,能否找个空闲时间看看我的代码呢?
恩,你把代码贴出来吧,一起研究下
恩,你把代码贴出来吧,一起研究下
[bug版轮播图预览](http://htmlpreview.github.io/?https://github.com/parabolazz/Front-end-demo/blob/master/%E8%BD%AE%E6%92%AD%E5%9B%BE-for-test/changepic.html)
[代码地址](https://github.com/parabolazz/Front-end-demo/tree/master/%E8%BD%AE%E6%92%AD%E5%9B%BE-for-test)
[跟随教学视频无BUG版](http://htmlpreview.github.io/?https://github.com/parabolazz/Front-end-demo/blob/master/Js%E8%BD%AE%E6%92%AD%E5%9B%BE/demo.html)
[代码地址](https://github.com/parabolazz/Front-end-demo/tree/master/Js%E8%BD%AE%E6%92%AD%E5%9B%BE)
看了这2个代码,主要的原因是教学的那个并不通用,通过debug可以看到在教学版的600宽的图片下,speed是一个整数,而且能确保每次跑到最后一次go之后图片能刚好填完整个显视区,但在你的demo下面用了800宽的图片就出现了speed是一个带小数的数字,并不能确保每次跑完都能填充完整个显视区。修改方案:1,首先先把speed变成整数的,(speed=parseInt(offset/(time/delay))或speed=offset/(time/delay)&&0),这样能大幅度改善抖动的问题,但是如果offset本来就是一个不能在被30整除(300/10=30,time/delay)的数,会在最后一祯漏出下一张图片一部分的问题。2,换成600宽的图片。
ps:如果要变成任意宽度通用版的话基本上核心算法要大改,并不建议继续用这个教学版的脚本进行改造,可以参考他的思路再融合一下本文作者的思路去做,而且这个教学版的算法确实也只能提供入门思路,正式用上的话问题还是很多的。
看了这2个代码,主要的原因是教学的那个并不通用,通过debug可以看到在教学版的600宽的图片下,speed是一个整数,而且能确保每次跑到最后一次go之后图片能刚好填完整个显视区,但在你的demo下面用了800宽的图片就出现了speed是一个带小数的数字,并不能确保每次跑完都能填充完整个显视区。
修改方案:1,首先先把speed变成整数的,(speed=parseInt(offset/(time/delay))或speed=offset/(time/delay)&&0),这样能大幅度改善抖动的问题,但是如果offset本来就是一个不能在被30整除(300/10=30,time/delay)的数,会在最后一祯漏出下一张图片一部分的问题。
2,换成600宽的图片。
ps:如果要变成任意宽度通用版的话基本上核心算法要大改,并不建议继续用这个教学版的脚本进行改造,可以参考他的思路再融合一下本文作者的思路去做,而且这个教学版的算法确实也只能提供入门思路,正式用上的话问题还是很多的。
如果是因为小数的PX会被浏览器忽略,这个原因会影响我的判断条件吗?我的速度是一定的,判断条件又是最终值parseInt(list.style.left)+offset偏移量和当前值list.style.left的比较,speed的小数是如何影响到动画的流程的呢?
另外,我试了你两种方法,好像依然抖动,我也试了改成600,依然不奏效。
我认为是这个算法本身是缺陷明显的,判断条件什么的总显得很“别扭”,但教学的能正常运行,而我的不行,我怀疑会不会是CSS的问题呢?你觉得呢?
- 如果是因为小数的PX会被浏览器忽略,这个原因会影响我的判断条件吗?我的速度是一定的,判断条件又是最终值`parseInt(list.style.left)+offset偏移量`和当前值`list.style.left`的比较,speed的小数是如何影响到动画的流程的呢?
- 另外,我试了你两种方法,好像依然抖动,我也试了改成600,依然不奏效。
- 我认为是这个算法本身是缺陷明显的,判断条件什么的总显得很“别扭”,但教学的能正常运行,而我的不行,我怀疑会不会是CSS的问题呢?你觉得呢?
数值比较的话不会有影响。图片改成600之后,css跟js内对应的800跟其他相关数值也要改喔,我直接在你demo上面改成600之后是没有问题的。整体来说,在固定了宽度之后,这一个教学版的算法其实是没有问题的,只是存在拓展跟优化的空间,在这里最后抖动的问题,基本都是入门会遇到的,最主要的原因就是最后1祯的时候,[偏移后的视觉区跟重置后的视觉区没有达到完全的重合],所以你能明白并解决“怎么能把重置之前和重置之后的视觉展示保持一致”的话才算是弄懂了无缝。当然,性能开销太大的话也会导致卡顿,但这个教学的脚本只要不是太老的机子都能应付下来。
ps:[]内的说法主要针对开始1张和结束1张遇到抖动的问题,你的demo的问题是,宽度(offset)跟time,delay的整除问题,因为demo用的这个算法很核心的就是把要滚动的距离(也就是宽度[offset])平均分配到n(n=time/delay{保留正负1次的误差})次的go中去,但如果按照无法整除的宽度(如800)来跑的话,在最后第2次go的时候,list.style.left的值先是跑到了-806n(类似,确切数字忘了),也就是超过了可视区,然后最后1次go的时候跑回到了-800n才回复成正常视区,所以造成了视觉上的抖动。
数值比较的话不会有影响。图片改成600之后,css跟js内对应的800跟其他相关数值也要改喔,我直接在你demo上面改成600之后是没有问题的。整体来说,在固定了宽度之后,这一个教学版的算法其实是没有问题的,只是存在拓展跟优化的空间,在这里最后抖动的问题,基本都是入门会遇到的,最主要的原因就是最后1祯的时候,**[偏移后的视觉区跟重置后的视觉区没有达到完全的重合]**,所以你能明白并解决“怎么能把重置之前和重置之后的视觉展示保持一致”的话才算是弄懂了无缝。当然,性能开销太大的话也会导致卡顿,但这个教学的脚本只要不是太老的机子都能应付下来。
ps:**[]**内的说法主要针对开始1张和结束1张遇到抖动的问题,你的demo的问题是,宽度(offset)跟time,delay的整除问题,因为demo用的这个算法很核心的就是把要滚动的距离(也就是宽度[offset])平均分配到n(n=time/delay{保留正负1次的误差})次的go中去,但如果按照无法整除的宽度(如800)来跑的话,在最后第2次go的时候,list.style.left的值先是跑到了-806*n(类似,确切数字忘了),也就是超过了可视区,然后最后1次go的时候跑回到了-800*n才回复成正常视区,所以造成了视觉上的抖动。
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。激战2 高配低帧 改最低效果帧数都不变_百度知道
激战2 高配低帧 改最低效果帧数都不变
激战2 前段时间在野外 开高配也有40-60帧,最近突然变成10帧左右,而且改最低设置 最低分辨率都没明显变化,系统、游戏、驱动全部都重新装过,依然没用。有人遇到过类似的情况吗?到底是哪里的问题?
我有更好的答案
是不是正式公测后才变成这样的吧我也是这样的,我经过1个礼拜各种测试目前得到的结论就是,他服务器人多负载导致的卡帧,只有这个解释。你应该有遇到过,全开帧数比全低帧数还高的时候吧。一定要找个说法的话,就是A卡的杯具。
采纳率:81%
和我遇到的情况一样 27号晚上还好好的 28号早上起来 卡的飞起 10帧左右 鼠标都快不能移动了我的是HD6870 驱动都重装过
后来换回旧的GXT460就好了 我就纳闷啊 我什么都没动过 咋么前天晚上好好的早上起来就 这样了
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。激战2卡勒顿之森跳跳乐 探险洞窟跳跳乐成就
  激战2探险洞窟跳跳乐成就攻略,文章介绍了探险洞窟……
  激战2探险洞窟跳跳乐位于希尔瓦里1到15级新手地图卡勒顿之森右下角区域,我们可以通过传送到星空村传送点然后往右下角走。不得不说,这个跳跳乐的入口有点坑爹,如果你不看攻略的话,可能找半天都不知道这个跳跳乐的入口在哪里。进入之后是一个长长的通道,一段草丛之后我们到了一个水底,然后又是长长的水下通道。尼玛,第一次来的时候实在佩服设计者,设计的太神奇了。当我们游过漫长的通道之后就达到了跳跳乐真正的起始点了,瞬间感觉这尼玛来到水帘洞了啊,猴子呢?地上会有一个蓝色的闪电石头,我们可以拿在手上,挺好看的。
  探险洞窟跳跳乐的整体背景比较暗,前面拿到的闪光石可以当作一个不错的灯光了,虽然也不是很亮。新手通过在跳的时候一定要注意前面的情况,不然跳下去了可是死不掉,你要游很长时间到达起始点。突然发现,有时候能摔死还是一件好事。整个跳跳乐都是蘑菇和树叶绑住的树干,因为背景比较暗,再次强调新手同学一定要调整好视野。特别是到了一个大石头之后,那边的视野非常非常的小,大家可以调整下镜头的距离,好确认前面的方向。当跳过这一段之后,整个跳跳乐之旅也就结束了。最后我们依旧向空色的星海同学致敬,新手朋友不会的赶紧来看看哦。}

我要回帖

更多关于 激战2幽灵灌注特效 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信