tween.js学习

心情烦躁了一段时间,还是需要安定下来,好好学习原生的js动画,找到大牛的推荐,学习一下tween.js.

Demo

tween.js 的github地址。
有很多examples可以参考学习.

自己写了一个坐标系工具

coordinate地址 ,来方便测试tween.js中的函数变化曲线

对于tween.js的理解

单独一个动画对象,后面有很多函数动画,难怪@dron说,这个是学习js动画非常好的动画库,里面的动画函数,非常丰富,在坐标系x[-1,1],y[-1,1]里,看到了全部的动画曲线,明白了这个js库对动画的含义。
简单配置一下库的参数,可以实现动画,非常简易,对封装的理解,非常透彻,值得学习。

后续的思考

可以把想到的函数单独拆开,简单封装就可以达到一个想要的js动画的效果,非常赞。
需要学习requestAnimationFrame函数的使用。

想念家人

早上被蚊子叮醒,不知道这个为什么这个季节蚊子还是如此猖狂,睡觉的时候又着凉,只好坐起来看书。

依稀记得梦见了奶奶,正在离我而去,好想奶奶,被奶奶一手带大,却对我要求最少的人,自己常年在外,和家人聚少离多。也许哪天和奶奶爷爷的相见就成了永诀。

应该庆幸爷爷奶奶健在。

每逢佳节倍思亲

晚上需要打电话回去问候下奶奶。

十一前的最后一天班,根本没心思坐在这里。

未来

吃过了药,总算鼻炎有些缓解了,昨天接到一搏的电话,有点心潮澎湃,好想马上把事情都做好。但是心里明白是急不来的,不过坚定了自己的想法,要坚持下去的想法,中午把设计稿发出去,需要尽快将页面做出来,让别人看到我们的页面。

今天的精神非常好,觉得心里对事情有了信仰,所以才会精神好起来,如果真的可以做好,我觉得游戏可以先放下一段时间来了。

不过转来转去,又转到smarty上了,好奇怪的轮回。

快点让我把黑暗渡过去把,加油!

话说最近办公都搬到mac上,好多东西需要学习,快点让自己生活丰满起来!i like mac!

一个html5游戏想法

坚持下去的想法

想要拼命留住自己坚持写游戏写下去的想法,虽然现在只是靠着写前端代码为生,但是内心一直都明白,游戏对自己的意义,所以坚持自己,也督促着自己一直创作下去。

下个游戏

做好block puzzle的手机版。
游戏地址

分享小游戏(blockpuzzle)开发经验

游戏地址

demo地址:http://farman.sinaapp.com/static/blockpuzzle/index.html

代码地址:https://github.com/FarmanYu/blockpuzzle

背景

游戏来自于facebook上的html5小游戏,现在因为一些原因(你懂的,FUCK GFW),无法访问了,可以看下windows phone上的应用
在这里,相类似的游戏。

游戏玩法

简单描述一下游戏的玩法,页面上随机生成一些 block,这些block是根据关卡来设计的,由简入难。
玩家需要将这些 block,拼到游戏背景地图上,无缝隙的拼完,即完成该关卡。

思考问题

  • 这个游戏开发难点是什么?
  • 怎么设计这些block?
  • 怎么计算完成?

我的设计

设计block

设计一个生产每个关卡的block数据的页面,链接在这里.
其中包含了一些简单的规则,

  1. block内部的小块,必须相连.
  2. 每个block的必须包含至少3个小块.
  3. 最重要的防作弊,如果每个数据都代表一个坐标,那很容易用这些坐标还原成图片位置,所以这些有比较关键的一步,将游戏数据的block位置,都让他们贴边,要么贴x轴,要么贴y轴.(哈哈哈,这下你们破不了原始数据了吧.)

设计游戏场景

  1. 有个开始界面,点击进去游戏主场景,不说了,so easy.
  2. 游戏主场景,本来想着用个什么js库来渲染什么的,后来发现还是想太多了,自己写快多了,本身没多少东西。
  3. 场景顶部放游戏的block,依次展开就好.
  4. 场景中心放置游戏地图.

设计游戏逻辑

  1. 存在一个辅助地图,就是看不到的逻辑地图,帮助玩家吸附block.避免没对上.
  2. 有个block的层次问题,想了很久,没啥好解决方案,因为是多canvas方案,最后使用的方案是,鼠标放在block上,自动提升该block的层级到最高,所以要是某个block选不到,可以鼠标放上去,马上就能被选中。还是有点撮啊…

对了,还有个问题没有交代,怎么选择canvas中的路径?

isPointInPath,正好用到canvas这个api.

碰撞问题,怎么判断block是否在map中?

很简单,图片的每个block都拆成正方形和整个地图的正方形,碰撞检测.

每个关都加上一个计时器,最终结束的时候,计算一个总的时间。就是你的得分,加一个很傻的关卡难度算法。

游戏想象中的未来

我想起那天夕阳下的奔跑,那是我逝去的青春。

  1. 可以添加分享按钮,暂时还没有做成兼容手机版的,也不兼容pad, 其实都可以做。
  2. 界面可以设计的更漂亮点,互动性更好,比如:block不可以重叠, 可以花点钱,买关卡提示,最快完成的给点奖励什么的等等
  3. 增加比赛模式,和好友一起比赛,看谁完成的多,完成的快。
  4. 让全世界的人都来玩,赚好多好多的钱,当上CEO,迎娶白富美 ,走上人森巅峰…

思考点滴

早上无奈的醒来,被鼻炎折磨的不轻,很久没有睡安稳觉了。

思考能力下降,越来越懒惰,害怕坠入这样的循环,让自己麻痹,犹如死亡,心中愿望也变得模糊不清,生活诚然有巨大压力,但是自己应该努力去调节适应,逃避或者偷懒,都是懦弱的表现。

决心恢复锻炼,抽空完成想做的游戏。

坚持每天一篇日志,记录点滴,强迫自己适应。

你可以的!

html5游戏

想做html5游戏,专心看pixi和cocos2d.

目标

年底出来一个自己的html5游戏
有自己工资之外的收入
尽量完善这个游戏,移至到app中

git基本知识

声明

本文旨在声明怎么使用git来管理代码,结合项目组内目前现状,如果使用git tf来管理当前代码,摆脱ms对代码的束缚.
感谢 @向文文 同学发现这个非常不错的工具.

git安装

不详细说了,参考资料内有安装地址,对应不同平台,另外git还有界面版本,不习惯命令行的同学可以学习使用.

git-tf工具

一个可以使用git来管理tfs代码的工具,git-tf网站
大家根据不同的平台安装.

git-tf使用简单说明

git tf clone

clone tfs代码到本地

1
2
git tf clone [tfs host + tfs product] [tfs path]
git tf clone http://xx.xx.x.x:8080/tfs/Vacations/ $/Cruise/Release/162_0812/Cruise.Mobile/WebAppSEO5.8/WebApp

git tf checkin

checkin代码到tfs, 必须先将本地代码提交.

1
git tf clone

git tf pull

更新tfs代码到本地

1
git tf pull

多人开发

1.先创建本地dev分支

1
git checkout -b dev

2.将代码提交本地dev分支

1
git commit -am "commit code"

3.切换到主分支

1
git checkout master

4.更新代码

1
git tf pull

5.合并分支代码

1
git merge dev

6.编译代码

1
grunt web:cruise

7.提交编译代码

1
git commit -am "build code"

8.checkin代码

1
git tf checkin

参考资料

git-简易指南
git-tf网站
让你的Git水平更上一层楼的10个小贴士

程序员的职业规划

1.从程序员到PM,是一条脱变的路,事实上程序员走的路最终不应该是项目经理。首先有一点需要明白的就是,一定规模的项目中,项目经理不需要太懂技术,他可以是一知半解。项目经理的任务不是在技术方面,技术相关的应该交给SA去做。项目经理更多地是做管理,沟通等工作,你如果可以的话到书店查看一下关于项目管理的书籍,你就会明白。当然对于小项目来说,有可能是PM,SA是同一个人,而这样的项目经理更多只是SA加上一些管理工作。要做项目经理,你就首先告诉自己不再去碰技术细节了。程序员并不是一个培养项目经理的好环境。所以没有什么从Coder到什么developer再到SA然后是PM的路,这是一条比较悲哀的路。在大公司,SA下一个目标不是PM,而consultant,然后是senior consultant,PM走的是另一条路,所需要的技能不是技术,技术给PM带来的能力提升是很少的。在项目中你最后能分清楚PM与SA的关系及各自在项目中的分工与用途。

2.其实我蛮同意 gzlucky(Lucky) 的看法的,确实是我们公司不少项经理就是不很能跟得上现在的一些技术,因为很多人都快年近四十,儿子都上高中了,要他们再学新技术真的难度比较大,他们的工作基本上就是天天找手下的程序员,布置这个任务,询问那个任务做的怎么样了。不过我的头倒是和我一样编程,他手下写代码的就我一个人,他自己也会ASP和JSP,但是可能对.NET不熟,就由我来主负责了。我觉得项目经理还是像他这样的好,自己也能懂不少技术,可以服人。但是我的头儿好像在沟通这一块不是非常出色,当然也有可能是俺太内向,不太与他沟通,所以他也只是在交待任务后就不再多询问,而不像别的项目经理天天追程序员后头问。我想问问各位,你们看哪种项目经理才是比较好的,像我的头儿这样的,还是像某些喜欢追程序员后面问进展的。

3.(作者是两黄星)原来在一个小公司做过半年的DM,一年的PM,后来为了让自己的技术更扎实一些,离开了原来公司,现在在大公司做程序员,开始后悔了,在大公司里很难接触管理方面的东西,也很难晋升,个人认为在小公司做DM,PM,有经验后直接找大公司的PM,这样也是一条路。

或者考PMP之类的证书,然后直接找管理的工作。

希望过来人能给予更好的意见和建议,我也现在想往管理层发展。

技术很硬了再去做PM,这种想法是错误的,我就犯了这个错,边搞好技术(为了生计)边学管理知识(为了将来),慢慢向管理发展,不能等。有句话说的好,机会是属于那些有准备的人的。利用业余时间多学些管理方面的东西,所谓人的差异在业余时间。

要走向管理层,英语一定要学好。沟通很重要,要做好管理者,先学会做人。多跟下属沟通,多为下属着想,而不要去巴解讨好上司。体谅下属,把项目计划做的尽量合理,不要让下属加班,给下属发展和晋升的空间,这样才能是下属有干劲,才能把项目做好,你才有更高的升迁机会。只有把自己知道的不断的让你得力下属知道,只有提拔起一些得力的下属来,你才有时间和精力去向上爬,不然你抱着不放,就没有升迁的机会。管理不是喝酒抽烟那么简单,那只是过去的那种不思上进,耽误自己前程。

吃尽苦中苦,方为人上人。做PM不是混,是要把项目做好,这跟做人是一个道理,这也就是为什么做管理要先学会做人的道理。

pm的整个工作重点是什么?如果做为一个PM,技术不高怎么对付组里的牛人

————————————–

我们经常会因为公司里的顶尖人才、个性化太强,不能与其他人合作而感到棘手,要解决这一问题其实也是有法可寻的。

一、在肯定其价值和优势的前提下,明确地制定改进的目标;

二、”顶尖人才能够面对中肯的,明确及一对一的批评作正面反应,所以要加强与他沟通的力度;

三、可以根据具体情况调整考核目标,加强与其他员工合作的内容;

四、把“顶尖人才”调到相对能独立发挥其才能的岗位,减少与别人发生矛盾的机会。

技术总监的职责:(各个公司都可以不一样)

——————————————

1.负责产品中心的日常管理工作;规划部门的年度发展计划和发展方向;制定、确立部门内部管理的规章制度和工作规范;制定本部门年度财务预算;负责部门人员招聘、任用、考核的管理与控制等。(占工作量的40%)

2.根据公司整体发展要求,制定部门研发产品的发展规划和方向;负责组织、协调完成产品的规划升级、专项产品的开发与实施;进行市场调研、用户/代理回访等。(占工作量的40%)

3.及时了解、掌握新的开发技术,研究探求新的开发技术和方法方法,进一步完善产品结构和功能;从质量和易用性等方面不断发展、提升现有的产品。(占工作量的20%)

4.多为他人着想,这样他人才乐于为你着想。适当提拨一些下属,不是让自己有精力向上爬,而是他们为了向上爬只有一个方法,把你再往上顶。每个人心中的委屈都是天底下最大的,这时你需要无限的耐心;每个人都有极需要帮助的一面,这时你需要无限的关心;当别人有意思向你倾诉或表述的时候,这时你需要的是爱心。

5.劝大家如果学精了,还是到非it的企业里去比较好,把自己的专业知识和行业知识结合起来,这样对自己的长远发展有好处,不要把自己封闭在it企业里,以后到35岁以上就没有出路了

6.能够勇敢大胆的换工作,开始几年不要为了赚钱,而是为了赚经验,我工作2、3年了,身上的存款还是个4位数,你们肯定认为很搞笑。。。但我走过5-6家公司了。。每个一个公司都有不同的感受。各方面都有了些进步。。

7.多学些管理知识,多进行管理实践!

8.其实,我觉得做一个好的项目经理不是那么容易的,项目经理,主要的任务是协调程序员的开发与项目的进展.在面对程序员的时候,首先要抓住作为程序员的特点,如果你的技术过硬的话,那么你用你的技术去让下面的人佩服你的技术,那么他们会服服帖帖的,如果你的技术不过硬的话,那么你就谦虚点,不要太吹牛皮了,不然的话,下面的人忍得了你一时,忍不了你一世,迟早会反你的(当年我就反过,哈哈哈)!所以,我觉得,从一个程序员到项目经理过渡的话,还是掌握足够的技术是关键,当然,培养起自己的人格魅力也很重要.如果是从别的行业的人想去做项目经理的话呢,最重要还是谦虚,不要以职位压人!

9.项目经理主要工作就是“沟通”,目的是保证项目高品质完成,合理利用资源,这里还有对下属的培养,要善于用人,待下属要不遗余力的帮助,不要害怕被下属取代,在信任的前提下要适当放权,因为当你培养出一批可以取代你的下属时,正是你升职之时。

附:转载文章

如果你曾经以为自己在启蒙阶段就已经了解了需要了解的全部东西,那么你肯定从来都没有做过IT经理。曾经身为IT专业人士的你该如何成功过渡为IT管理者?下面这位经验丰富的专业人士所介绍的技巧应该能帮助你避免很多错误的发生。

从一位纯技术人员向一位IT管理者的过渡是一条充满了艰辛和曲折的漫长道路。已经在IT业打拼了十六年的Steven Crane对此可谓是深有体会。他曾经在一些实力雄厚的大公司(如吉列公司、派克公司)担任IT经理长达八年之久。在那段日子里,他成功的应对了很多来自管理工作的挑战。为了帮助新上任的IT经理们避免重犯他当年曾经犯过的错误,他根据自己的经验向大家介绍了十五项技巧。

培养管理能力的技巧

1、阅读Ken Blanchard撰写的“一分钟经理”系列丛书。根据Ken Blanchard在书中的定义,所谓的一分钟经理是指那些不需要花费很长的时间,应用他三个简单的管理步骤就可以达到很好的效果的管理者。

2、了解自己所在公司的规章制度,与自己的同事和上级建立良好的关系。认真听取他们的建议。管理人员们通常都愿意给其他管理者提供帮助。

3、尽快发现并了解自己的弱点和不足。要记住,你是可以通过培训来弥补自己的不足的。

4、学着把预算控制到最低限度,让大家清楚的了解资金是在哪些地方被节省下来的。

同公司主管人员增强交流的技巧

5、不要把每天的工作当中所出现的问题都汇报给自己的上级。相反,要善于发现那些重复出现的问题并为之寻找解决办法。然后再就几种不同的解决方案征求上级的意见。

6、如果你做项目同做支持工作一样出色,那么一定要把这两种工作区分开。只要把新增加的员工的薪水计算在整个项目的成本之内,那么你就可以为了新项目的进行而招募新的员工。不要让自己手下的员工在做支持工作的同时又陷入到正在进行的项目当中。

7、详尽记录、及时汇报。要求项目小组的成员填写时间记录,这样你就能够明白时间都花在了哪里。当你需要证明项目工期应该延长的时候,这些记录会起到帮助作用。当然,有了这些记录,你在向公司主管撰写月度报告的时候也会轻松许多。

8、当公司系统出现问题而瘫痪的时候,要知道你的小组的任务是让系统恢复正常。要保证关键系统的灾难恢复计划的到位,并且能够恢复其他的项目。

激励员工的技巧

9、如果公司以前没有正式的服务平台协议,而你又在实际工作中发现有大量的服务电话需要接听,那么就创建一个集中化的服务平台。如果必要的话可以寻求外包。如果真的需要外包的话,一定要制定服务水平协议。

10、花时间激励自己的员工走向成功,尽可能多的排除来自其他部门的不利因素。

11、学会“猴子管理”:当员工来向你寻求帮助时,要让他们知道自己接下来应该如何继续行动。不要帮助员工分担他们的工作,因为你会发现那样的工作永远都做不完。

12、每年至少对员工进行一到两次的业绩评估。让员工有明确的目标,并且帮助他们去实现自己的目标。

13、定期召开小组会议。由于工作任务总是一个接着一个,所有人看上去都是那么忙碌,要想做到这一点是有些困难。如果绝对必要的话,可以选择工作午餐的形式,只是别忘了给大家提供三明治就是了。

14、至少每个季度邀请小组成员一起外出就餐一次。如果预算控制的好,应付这笔花消是没有问题的。

15、要知道所有员工的能力的总和就是整个小组的最大工作产出。不要仅仅因为你自己给自己树立了高标准就希望所有的小组成员都能够做到和你一样。要根据他们的实际情况去赞扬和鼓励他们,并且针对他们的不足而对他们进行培训。

成功总会到来

成功的管理技能帮助Crane成为了独立的管理顾问。现在,他帮助很多中小型公司策划IT电子销售系统和电子商务服务战略。上面所介绍的这些技巧至今仍在帮助着他。