将Sprite绘制到RenderTexture指定位置的方法

有时候我们想要复制一个Sprite或者Node,不但复制其自身还要包含其子元件。最直接的办法就是使用RenderTexture,将Sprite及其子元件都绘制到RenderTexture上。但是Sprite在RenderTexture上的位置是不能直接指定的,我们又不想改变Sprite的位置。解决方法如下:

 

赛道初体验

昨天终于和JST(纯原厂)在潍坊荣和赛车场同时完成了赛道初体验,是参加一个车友所在企业举办的赛道活动。参加活动的车辆不算少,总共跑了4节,个人最佳成绩59.18秒,没有拿到名次。

考虑到咱是首次下赛道,对赛道、赛车都不熟悉,所以关于比赛经验啦,赛道跑法啦什么的咱就不在这里说什么了,说了也不见得对。就简单聊一下个人的感受,和JST的表现情况吧。

一辆车,尤其是一辆小钢炮的真面目,真的只有在赛道中才能体现。在体会了每一挡都断油,每一刹都到底,每个弯都响胎之后,才明白日常那所谓有些激进的驾驶,对JST来说也不过是闲庭信步而已。在赛道上,要发挥车辆的三个极限:加速极限,刹车极限,过弯极限。我就分别说说JST在这三个极限上的表现吧。

JST是性能车,但是在性能车里算是性能最弱的级别吧,但在赛道上正好适合像我这样的新手,不会因为动力太强而收不住。当天就有一辆法拉利458两度冲出赛道……在荣和赛道基本只能用到JST的2、3两挡。2挡提速很快,我常常先察觉到断油才反应过来要升挡。3挡加速过程相对慢一些,在最长的直道末端也不会断油。

JST的原厂刹车真的不错,在1600米的赛道上全力跑五六圈,一点都没有衰减的感觉,而且全天都没有拖后腿。刹车力度也很够,可以在直道加速的时候给我很大的信心。晚上回家后看了一眼,跑4节赛道,刹车片大概磨掉了三分之一左右,备用的刹车片看来暂时用不上了。

然后就是弯道了。在极限状态下JST的过弯感觉依然犀利,只要操控得当,它可以快速准确的执行车手的意图,绝不拖泥带水。平时觉得很硬的悬挂终于找到了用武之地,即使是180度的发夹弯也感受不到很大的侧倾。原厂轮胎在弯道中表现也很出色,会牢牢抓住地面帮你过弯。当然新手总会有失误的时候,有时候进弯速度太快还是会转向不足,只能进一步减速来修正过弯路线。比较有意思的是如果你进弯的速度合适,但是方向打的有点大的时候,JST会把尾巴甩出去。当天我自己体验过甩尾,在赛道上眼看着前车甩尾,在赛道下看别的车180度甩尾……总之是切身体验了众多车评人所说的“尾巴很活跃”的这个特点,这也是在赛道之外基本无法体验的。

关于JST弯道犀利还有一点值得说的,就是在荣和这种中低速赛道上,小弟JST几乎压制了大哥FST一头,全场最快成绩由JST取得,整体成绩也比FST要快一些。(FST的兄弟们不要骂我,直道上你们稳赢,嘿嘿。)

对于我个人来说,这也是一次难得的体验。我知道了下赛道是什么感觉,知道了要跑好赛道是多么难,要付出多大努力,知道了自己仍然是一个驾驶新手,知道了要顶着大太阳站一天的赛道日有多累。最重要的是,我对JST的了解又更深了一层,感觉就像是两个人终于互相敞开了心扉,真正坦诚相待了一样,虽然还没有十分融洽。

要说刺激,其实对于经常跑卡丁车的我来说,跑赛道和跑卡丁车相差无几。卡丁车赛场会把车准备好,你只需要专注驾驶,而且卡丁车的机械纯粹感,操控感,甚至是速度感,都要强于我这台JST。跑赛道,除了个人驾驶技术和对赛道的了解,还要对自己的车有更深刻的了解,即使是不改装,你也要时刻关注轮胎、胎压、刹车片、机油、刹车油、汽油等各种油液的状态等等。改装的话,那又是另一个世界了。

总之,赛道这个成就终于解锁了,体验也很难忘,即便是明白自己以后不会经常去赛道,因为成本真的不低。这只能说咱和赛道缘分比较淡,是吧?T_T

丰田86体验报告-补充

今天跟Sion在淮安接头,把JST换回来了。两辆车都是MT,因此换车也是驾驶习惯的转换,也是肌肉记忆的重新调整,也是对比操控的最好时机。我也因此对86有了更深一点的理解。

换到开了一年多的JST,刚一上手还真不太适应!

  • 感受一:卧槽,座位怎么这么高?这不是我原来的车吧?踏板怎么这么低,脚要向下踩(而不是向前踩)。挡杆和手刹怎么离我这么近。这一系列的不适,都是驾驶舱各部件布局不同造成的,还好,回程300公里之后差不多就适应回来了。但是不得不说,86的布局操控起来更为顺手(脚),尤其是腿部姿势。
  • 感受二:涡轮迟滞!终于感受到了。之前开JST完全不觉得油门踏板响应有迟滞,但开惯了86那种几近零延迟的油门响应之后,JST的涡轮迟滞问题被严重放大。这种不适应直接导致JST降档顿挫,都怀疑自己不会开车了。然后也慢慢适应回来了,补油之后稍等一下(汗),等转速上来再松离合即可。
  • 感受三:加速体验不同。这个感受很微妙,JST的提速不慢,性能和86基本不相上下,01的跑分甚至略强,但感觉上却是86的动力更强。可能是因为自然吸气那种线性的提速更符合人的心里预期,更让人有人车沟通的感觉。
  • 感受四:过弯体验不同。JST和86在转向的精准和凌厉程度上可以说不相上下,都非常好。但是不得不说86还是更胜一筹。不说前驱和后驱的差别,这个只有在极限情况下才能感受出来。首先86的重心更低,轮距也更宽,所以过弯的侧倾一定更小。这一点JST只能用更硬的悬挂和更薄的轮胎来弥补,带来的结果就是滤震更差。其次,86的车头更长,前轮也更靠前,再加上轮拱突出的设计,能让驾驶者明显感觉到前轮的位置,过弯的时候可以更清晰的感受到前轮压到弯心的位置,也就是说更有压弯的感觉。
  • 感受五:也该说说JST的优势了,虽然不多……JST的车身更小,视野也更好,因此驾驶JST在车流中穿梭的信心也更足一些。JST车身虽小,空间却比86要大,无论是后座还是后备箱。可以停进更小的停车位,也不用担心外观扎眼的问题。JST在操控上更轻松,换挡和踏板都要更轻快,对操作的宽容度也更高,不像86那样会因为你一点小小的疏忽就用顿挫来抱怨。

基本上就这么多吧。之前总是听大牛们说自然吸气多么好,当时不甚理解。但开过一台像86这样如此经典的自然吸气跑车之后,才觉得自然吸气果然是会让人上瘾的啊。

再次感谢Sion借86给我,让我对驾驶有了更多美好的体验。赶紧来青岛吃海鲜吧!

 

什么是跑车? - 丰田GT86体验报告

人们总喜欢给常用的东西分类,比如衣服,有正装,有运动装,有休闲装。比如游戏,有射击,有角色扮演,有策略。车也有分类,轿车,SUV,跑车等等。这些分类自然是有其道理的,但是只有亲身体验过才能知道为什么要这么分类,才能知道类与类之间的区别。

若不是有得天独厚的条件,一般人对车的体会并不会特别丰富,比如我六年多的驾龄,也只开过几款轿车而已。所以要感谢sion同学把他的86借我开了两个月,也因此我才有机会深度体验跑车这种车型,对于什么是跑车终于有了一个初步的认识。

跑车的英文是Sport Car,也就是运动车,因此它设计的方方面面就要以运动为前提。我认为在这一点上,丰田和斯巴鲁的工程师简直是当作铁则来遵守了一样(因为日本人的性格吗?)。

刚拿到86,最让人无法忽视的就是它低矮的姿态,普通轿车在它面前都变成了SUV。仿佛一上来就告诉你:我可不普通。低矮的姿态带来的是低重心,可以从最根本的物理法则上抑制在弯道中的侧倾,保持车身姿态的稳定性。当然,低矮的坐姿在其它方面也带来很多不同的体验,比如贴地飞行的感觉,比如看两侧的车都要仰视的感觉,比如随便一个车都能挡住红绿灯的感觉…

进入驾驶舱。86的座椅包裹感还算不错,质感也很好,坐进不会觉得屁股陷下去了,腿部姿势很舒服,可以很轻松的操作三个踏板。唯一就是侧向支撑稍弱,转弯急了需要身体用力来保证不被甩的太开。方向盘较粗较重,是我喜欢的手感。三个踏板的位置非常好,可以轻松的做出任何操作。挡杆行程很短,换挡很快,但是入挡并不轻松。红黑色调的内饰简洁,富有战斗气息。

实际操作起来,会发现86像一匹小野马(不算烈马),很难驾驭。首先它的离合很重,结合点也有点高,而且低速换挡时似乎有两段行程的感觉。第一段比较缓,离合不能抬太慢,否则加速慢,第二段比较紧,不能抬太快,否则前窜。其次它的油门非常灵敏,脚稍微动一下转速立刻就有变化。因此油门和离合的配合就变得越发困难,需要很谨慎很精细的配合才能把车开的平顺。这种精细,也给驾驶者带来对车更加细腻的控制,对驾驶者的能力要求也高了很多。

86的转向一直被誉为是百万级跑车的水准,我想这应该是得自三部分共同努力的结果。第一是低重心,在最基本的物理层面维持稳定的姿态。第二是前置后驱的布局,既能保持前后配重比,又能完全分离前后轮的功能,前轮只管转向,后轮只管动力。还有偏向转向过度的设定,可以帮助车辆更快的对准弯心。第三就是转向机构的调教,偏重的转向手感,不让你觉得是在操作玩具,给人操控的信心。更重要的是几乎没有虚位的精准,人与车零沟通成本,车总是会向你想要去的角度行进。这三点给驾驶者带来的感受用两个字来概括就是:凌厉。过弯干脆利落,车身稳定无比,就像砍瓜切菜一样,信心十足。

动力,完全够用,降档超车丝毫不会拖泥带水,又不会因为动力太猛而有收不住的担心。当你平缓的压下油门,伴随着转速不断的攀升,引擎不断提高的轰鸣声,后背传来持续提升的推背感,你就会明白,这就是自然吸气发动机独特的魅力。

86是一辆很难开的车,86又是一辆很好开的车。这种矛盾不在86,而在于驾驶者。如果你想要在道路上拥有良好的视野,抱歉,86要的是低重心。如果你想要轻松的操控,抱歉,86要的是精准、敏捷和信心。如果你想要实用性,抱歉,86的后排和后备箱都小的可怜。86是一辆需要全神贯注去驾驶的车,换句话说,开86你也只需要关心驾驶。它开起来不轻松,但却尽最大可能的给了你操控的广阔度和自由度。

为运动而生,为驾驶而生。86是一辆不折不扣的,纯粹的驾驶者之车。

补充:

说到驾驶乐趣。86不去刻意营造驾驶乐趣,但是你如果喜欢纯粹的驾驶,那么它就会给你最大的乐趣。

嘉年华ST是个相反的例子,它是刻意营造驾驶乐趣的典范。关于这点以后再细说吧。:)

给cocos2dx中的spine骨骼动画添加shader效果

之前使用过给Sprite添加shader效果,具体方法参考这里。但是同样的方法在Spine的SkeletonAnimation上却不好用。

经过google发现只需要小改一下shader程序。

把.vsh中的

改为

即可。

最后,移除shader的时候,别忘了使用SHADER_NAME_POSITION_TEXTURE_COLOR而不是SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP。

游戏立项时需要切实明确的两个问题

人(团队)的精力和耐心都是有限的,我们要永远确保把最多的精力用在最关键的部分。所谓好钢用在刀刃上,这样才能做好游戏。要确保这点,我们就要先明确两个问题:

明确游戏给玩家提供的核心体验

所谓游戏类型其实就是一套成熟的核心玩法。要做某个类型的游戏,就要熟悉这套核心玩法,以及它为玩家带来的娱乐体验(也就是玩家喜欢它的原因)。这样才能着重去营造这种体验。如果要在游戏类型上创新,就更加要明确它为玩家带来的是怎样的娱乐体验。如果这点不明确,开发过程就会摇摆不定,浪费时间和精力,最终很难有好的结果。

这个核心体验得足够简洁,要能够用简单的一两句话就清楚描述。否则就是还不够明确。

有了明确的核心体验,接下来就要让游戏所有的方方面面都去为它服务。与它相悖的予以剪除,与它相称的则予以发扬。

另外,还要知道通过哪些方式可以给玩家营造这种体验。从而有效的去利用这些手段。

正确预估项目的大小

有了明确的方向和准则,还要清楚的了解自己的开发能力,并以此来确定项目的大小。

首先要确保了解你的团队。你是否了解团队中的每个人的工作能力?你是否了解每个人的工作状态?你是否了解他们之间的配合程度?你是否了解每个人对项目的理解?等等。只有你对团队有了充分的了解,才能够正确预估团队的开发能力。

然后,再根据你对团队的了解来确定项目的大小。

举个简单的例子,我们的目标是从A点运送尽可能多的沙子到B点,沙包有大有小,要做的选择只有一个:应该选择多大的沙包?

很明显,沙包太大的话很可能半路上就累垮了,沙包太小的话走这一趟就不太合算。最好的选择一定是选择你力所能及的大小。

但是如果路途遥远,就还需要考虑到路远无轻担的问题。因为走路本身就耗费很大精力和耐心,沉重的负担会变得更加沉重。在这种情况下,就要在力所能及的基础上再减轻一些重量。

如果沙包不是你一个人扛,而是两个人抬,甚至是三个人推,还得再考虑三个和尚的问题。每个人的性格,思想和状态都是有区别的。大家做同一件事情的时候,不可避免的会发生冲突。因此1+1绝对小于2,更不用说1+1+1了。所以如果是多人团队,就要考虑再次减轻预估重量。

游戏开发无疑是一项较为耗时的工作,并且往往要多人合作。因此在立项时,项目的大小就应该尽量低于我们认为可行的那个预期。

纪念Jayisgames

这世界上最难的电子游戏,是制作一款电子游戏。这世界上最棒的电子游戏,也是制作一款电子游戏。

上小学的时候,爸妈给家里买了一台任天堂的红白机,也就是FC。在那之前谁知道电子游戏是什么呢?甚至游戏怎么玩都不知道,只是从说明书上知道游戏是用手柄控制的。那简直就是一个全新的世界等你去探索。于是你要学的第一件事情是怎么开机,怎么选择游戏,怎么进入游戏,怎么退出游戏。里面的每一个游戏又像是一个小世界,它的目标是什么,它的规则是什么,怎么操作,都需要自己一点点摸索。从那时候我开始领略电子游戏的无穷魅力。

后来上了中学,街机开始流行。还记得和同学一起攒零钱,攒几天才能一起去玩一把。再后来家里就有了电脑,游戏可以存档了,有了键盘鼠标了,各种RPG,RTS,就像游戏世界整体进阶了一样。现在回想起来,许多跟电子游戏相关的往事历历在目,电子游戏无疑在我成长阶段扮演了重要的角色。

到这里其实也没啥特别的,许多像我一样的80后的游戏之路,大概都是这样的吧。虽然在我十几岁的时候,也曾经梦想过自己有一天会去开发一款自己的游戏,也曾经切实的去尝试过,但也只是小打小闹,如今看来很天真的demo而已。那时估计我自己也没有想到,十年之后真的能踏上游戏开发的道路。

这里要说起Jayisgames了,JIG是一个游戏评测网站,准确的来说是一个Blog。它几乎每天都会发布一个游戏评测,大部分是在线Flash游戏。而它的特点就是它推荐的游戏质量普遍都很高。在我刚“上路”那会儿,JIG给了我很大的启发,甚至我还跟朋友专门翻版了一个国内的JIG,叫茶饭后。我们同样也保持高质量的推荐和评测,尽量保持每天都更新,如此坚持了近3年。然后由于各种原因,就像如今的JIG,停站了。不以成败论英雄的话,我们在各种方面还是有很多收获的。我相信JIG的运营者们也是同样。茶饭后自然不能跟JIG相比,无论是在知名度还是用户量,还有质量和时间上。JIG从03年开始运营,如今已经过13个年头,如今停站让人更加觉得惋惜。

电子游戏如此深刻的影响着我们这一代,它的市场也是如此之大,因此任何与之相关的事情都不是那么容易的。包括运营一个游戏网站,或者开发一款游戏。它本身就是一个游戏,你需要从怎么进入游戏开始学习,每一个游戏类型都是一个小世界。然后你要学习如何操作,要熟悉它的规则,找到它的窍门。你需要非常努力才能通过每一个小小的关卡。你会在过程中体会到快乐,痛苦,惊喜,压力,当然作为世界上最难的游戏,大部分时间你体会到的都会是负面的情绪。然而它偶尔透露给你的一点喜悦之情却会让你对它难以割舍。

游戏行业是一个快节奏的行业,起起伏伏,大家都习以为常了。如今JIG停更,改天又会有一个新的JIG出现。但是它曾经推荐过的每一款让人印象深刻的游戏,却会永远留在每一个喜欢它的人的心里。

RIP, Jayisgames.

 

青岛圣悦雷速卡丁车俱乐部赛道跑法总结

青岛圣悦雷速卡丁车俱乐部的赛道分为上下两层,起始点从上层的(1号弯)开始。由于是商场的停车场改造,所以赛道不是很规则,又有上下坡,因此增加了不少分析难度。

赛道平面图:

ThunderSpeed_Up

ThunderSpeed_Down

具体说明:

  • 1号弯是个发夹弯而且刚好是一个上坡的顶端,轮胎抓地不牢靠,这里需要谨慎控制不要让车打滑。出弯后全力加速。
  • 2号弯很关键,因为2,3,4结合起来是一个可以全力加速的大弧线,整条赛道的极速应该就出现在这个弧线上。所以,2号弯入弯时要尽量从弯道最外侧切入以便提高出弯速度。1到2的全力加速可能会有点高于入弯速度,所以入弯时要轻点一下刹车,稍微减速即可。
  • 3号弯全力加速通过,注意走线贴近弯道内侧,出弯也要注意尽量贴近弯道外侧。
  • 4号弯入弯前的减速很重要,找准刹车点,减速时要保持方向笔直。出弯贴近弯道外侧,全力加速。
  • 从4号弯的出弯外侧到6号弯的入弯外侧可以全力加速,忽略掉5号弯即可。
  • 6号弯的入弯减速也很重要,刹车点往往比想象的需要更提前,否则很容易打滑。再次强调,减速时要保持方向笔直。出弯尽量贴近弯道外侧,全力加速。
  • 7号弯通过小幅调整方向也可以全速通过,可以忽略。
  • 8号弯入弯注意减速,出弯到9号弯这里还不太确定,是走中线提高9号出弯速度好,还是直插9号apex好。待定。
  • 9号10号要连起来看,这里现在也不太确定怎么跑。一个方法是10号弯画一个大圆,以提高出弯速度,但这样会减慢9到10的入弯速度。另一个是贴着10号的弯道内侧画小圆,入弯快,出弯就慢一些。我现在采用的是后一种方法,因为9到10这里的入弯距离不算短,另外出弯时是一个下坡,提速快,还有下坡后不算太远就需要减速了。到底哪种好,还是待定。10号弯出弯加速点要找好,尽量提前。
  • 因为从10号弯下坡的速度快,所以11号弯的入弯速度就很容易过快,结果不是入弯过晚就是造成后轮打滑,所以刹车点要找好,可能比意识中的点要提前一些。出弯全油门。
  • 12号一直到13号弯都可以全力加速通过,13号入弯视情况可以稍微松一下油门。
  • 14,15,16也需要综合考虑,也是目前不太确定跑法。16号弯出弯开始就是个大上坡,所以很明显,出弯速度越快,就越有利于圈速。但是画大圈不但加长了路线,还会大大减慢14号和15号弯的速度。所以不妨把这里看成一个变形的发夹弯,用贴内线的走法,这样可以更快的通过14,15号弯,这也是我目前采用的跑法。究竟哪一种跑法更快,还是要具体进行测试了。

 

驾驶笔记(十一)

新年第一次跑卡丁车,把圈速刷到了40.873,哈哈。之所以进步,还是跟平时关注了一些赛车理论有关系。知行合一,果然是提高任何技能的不二法则啊。

这次的改进主要有几点:

  1. 敢于大力刹车。尝试学习临界刹车的技巧。
  2. 更多的使用地板油。在不打滑的前提下尽可能多(早)的地板油,使用全部的加速能力。
  3. 找到了更好的路线。找到了之前的两个大路线错误,对路线的探索永无止境。
  4. 一个小技巧:有时候在全油门后快速的点一下刹车就可以把车减到适当的入弯速度。

今后要努力的方向:

  1. 继续探索路线,开始寻找参考点。路线是圈速的基础。
  2. 练习临界刹车技巧,甚至更进一步的带刹车过弯法。

驾驶笔记(十)

今天发现自己一个跟趾动作的毛病,就是补油完成后,刹车踏板抬起速度过于随意,因此会导致车辆前窜一下,不够平滑。

正确做法应该是在补油完成后平缓的抬起刹车踏板,慢慢释放刹车的制动力。

这里其实可以再强调一下三个踏板抬起动作的重要性:

  • 离合器踏板:这个是常识了,在低档位慢抬,在高档位快抬。但是在低档位高转速时,抬起动作还是应该更干脆利落一些,这时候对离合器来说,长痛不如短痛。当然,所有动作都应该平滑,线性。
  • 刹车踏板:刹车是对车轮进行制动,加大轮胎与地面的反向摩擦,从而抵抗车辆向前的惯性。如果刹车抬的过快,一下子释放掉与惯性对抗的力,惯性自然会重新主导平衡,向前的力会突然加大,导致车辆前窜。这种突然变化的力,不但对乘车舒适性有影响,对安全性也有很大影响(因为重心突然后移,四轮抓地力瞬间发生变化)。
  • 油门踏板:和刹车的道理一样,只不过是相反的。当深踩油门时,车辆向前的动力会持续增强,这时候如果突然松掉油门,这个增强的力会一下子消失,之前的加速越强,造成的反作用力也就越大。重心前移,车辆顿挫。

结论还是那个驾驶技术中最常见的词:smooth.