HUMAN游戏 怎么设置方块笑脸衣服什么牌子上的字和脸

&p&为了项目安全且干净其实插件用的越少越好,因为插件很多都自己封装了Dll,如果出了BUG,想解决就特别的麻烦。&/p&&p&但是自己造轮子简直太累,作为强迫症患者又见不惯自己的轮子写的难看,一不小心一天就过去了。&/p&&p&所以这里我就举3款项目里面常用的插件,好用又免费:&/p&&p&&b&1.DoTween &/b&&/p&&p&做动画非常的方便,直接链式结构写代码也非常的快。避免代码里面控制物体还需要写协程或者再Update里面循环。&/p&&div class=&highlight&&&pre&&code class=&language-text&&using System.C
using System.Collections.G
using UnityE
using DG.T
public class DotweenTest : MonoBehaviour {
public Transform targetP
// Use this for initialization
void Start () {
gameObject.transform.DOMove(targetPos.position,2).OnUpdate(()=&
//在移动中每帧执行
}).OnComplete(()=&
//移动完成后执行
gameObject.SetActive(false);
&/code&&/pre&&/div&&p&效果:&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-9fcae42b06a_b.jpg& data-rawwidth=&623& data-rawheight=&312& class=&origin_image zh-lightbox-thumb& width=&623& data-original=&https://pic3.zhimg.com/v2-9fcae42b06a_r.jpg&&&/figure&&p&&br&&/p&&p&缺点是:是DLL包,想修改还得反编译。而且在Dotween回调(如OnUpdate)里面的报错是黄色警告(这个很坑,层级一个回调里面有报错结果谁都没有发现,最后游戏卡死)。&/p&&p&下载地址:&/p&&p&&u&&a href=&//link.zhihu.com/?target=http%3A//dotween.demigiant.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&dotween.demigiant.com/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/u&&/p&&p&&br&&/p&&p&&b&2.Cinemachine&/b&&/p&&p&影视镜头插件,2017的首推插件,这个做镜头非常的简单,而且效果也很棒。&/p&&p&可以很简单的创建自由视角的摄像机&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-85ca39c5ae7bc_b.png& data-rawwidth=&318& data-rawheight=&184& class=&content_image& width=&318&&&/figure&&p&&br&&/p&&p&创建好的效果&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-626420dcd24cf1a5f5bd6d084cac693c_b.jpg& data-rawwidth=&710& data-rawheight=&262& class=&origin_image zh-lightbox-thumb& width=&710& data-original=&https://pic1.zhimg.com/v2-626420dcd24cf1a5f5bd6d084cac693c_r.jpg&&&/figure&&p&&br&&/p&&p&Cinemachine的功能很强大,之后我们会做相关文章来介绍。&/p&&p&下载地址:&/p&&p&AssetStore上免费的&/p&&p&&b&3.Litjson&/b&&/p&&p&对Json数据处理非常的简洁方便&/p&&p&比如我们要去读取一个json的数据换成游戏里面的脚本类,只用 JsonMapper.ToObject的函数就搞定了。&/p&&div class=&highlight&&&pre&&code class=&language-text&&using S
using LitJ
using System.T
using UnityE
using System.IO;
using System.Collections.G
public class configBagData
public readonly string itemN
public readonly string spriteN
public class LitJsonTest
public void Load(string rSheetName)
TextAsset textAsset = Resources.Load&TextAsset&(&assetsbundles/data/sheet/& + rSheetName);
if (textAsset == null)
Debug.LogError(rSheetName + &未找到&);
var str = textAsset.
Dictionary&string, configBagData& data = JsonMapper.ToObject&Dictionary&string, configBagData&&(str);
&/code&&/pre&&/div&&p&下载地址:&/p&&p&&u&&a href=&//link.zhihu.com/?target=http%3A//lbv.github.io/litjson/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&lbv.github.io/litjson/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/u&&/p&&p&&br&&/p&&p&当然还有一些美术插件,比如T4M地形插件,美术场景很多要用unity的地形功能,但是Unity的地形网格数量太多了,用T4M重新渲染可以降低网格数量。但是要注意的是美术资源用完插件后做好代码清理,不然会污染主工程代码环境。&/p&
为了项目安全且干净其实插件用的越少越好,因为插件很多都自己封装了Dll,如果出了BUG,想解决就特别的麻烦。但是自己造轮子简直太累,作为强迫症患者又见不惯自己的轮子写的难看,一不小心一天就过去了。所以这里我就举3款项目里面常用的插件,好用又免费:…
与其讨论计算机行业能够火几年,不如将问题聚焦在:未来世界的行业格局将会是如何?以下这篇来自著名程序员霍炬的雄文,让这个问题的答案不言自明。&br&&br&&figure&&img src=&https://pic1.zhimg.com/5d4ba6bbce09b32177a4c_b.jpg& data-rawwidth=&1000& data-rawheight=&667& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic1.zhimg.com/5d4ba6bbce09b32177a4c_r.jpg&&&/figure&&br&&b&为什么你招聘不到程序员,以及软件如何定义现实世界&/b&&br&原创霍炬&a class=& wrap external& href=&//link.zhihu.com/?target=http%3A//chuansong.me/account/wxieshuo& target=&_blank& rel=&nofollow noreferrer&&歪理邪说&i class=&icon-external&&&/i&&/a&&br&&p&现在已经是2015年的最后几天了。这一年里面,互联网创业从火热到“寒冷“,但有一件事全年都没有变化,就是大家都觉得招聘不到程序员。我没有确切的数字知道2015年这一年程序员的薪资增长的比例,但是我确切的知道,在2015年,一个有3~4年工作经验的年轻程序员,在北京和上海能拿到的薪水已经接近2010年盛大创新院给我的薪水了。要知道,2010年盛大为了创建创新院,给出的是业界顶级的薪水,而且那时候我已经有8年的工作经验了。这不过是5年前的事,今天,3年工作经验的程序员薪水已经到了这个水平。在中国,大概唯一增长率可以比的上北上广房产的,就是程序员的薪水了。&br&&/p&&br&&p&很多人人根本拒绝相信这件事,不仅仅这个行业之外的人,甚至连这个行业之内的人也觉得非常不可思议。但所有人不得不面对的一个事实是:当你需要程序员的时候,会发现根本招聘不到程序员。那个“所有都准备好了,只差一个程序员就可以开工了” 完全不是笑话,我知道无数个项目,都是真的就差一个程序员了。&/p&&br&&p&但是,他们就是招聘不到这个急需程序员。&/p&&br&&p&还有很多人的看法是,过几年程序员就好招聘了,现在只是泡沫时期罢了。甚至还有人认为,过几年我们就不需要程序员了,因为有更多的工具可以帮助生成软件。不好意思,这两种想法都不是2015年才有的,从1995年,甚至1985年,这两种看法就存在了。30年来,泡沫起了一轮又一轮,破了一轮又一轮,自动化工具也确实出了一个又一个,更多的平台也被建立起来,确实某种程度人,一些人可以“不需要写程序”,也能 &strong&*开始*&/strong& 进行互联网创业。但是,几十年来程序员的需求始终是上升的,符合需求,能写出可用代码的程序员从来没好招聘过,这个职业一直处于一种古怪到近乎疯狂的供不应求阶段。回头来看,就算是2008年金融危机的大崩溃时刻,全世界范围内,程序员好招聘也只持续了半年。美国H1b签证只有2008年没用满,之后每一年都要抽签才能获得,无数中国和印度的程序员急盼签证。&/p&&br&&p&“不需要写程序就可以进行互联网创业”,这个倒是某种意义上是实现了。不过并不是有自动生成软件的工具,而是各种应用平台发展起来了。比如,一个专心内容创业的人,用微信公众帐号就可以开始,一行程序都不用写。但是不要忘记,这些平台背后,仍然是无数程序员的工作成果。就算是用微信公众平台开始了创业,如果规模发展的大一点,终究还是要写一些程序的,要么是自己的App/社区,要么是HTML5做的各种活动,或者是用微信SDK接口做的各种自动化功能。总之,早晚你还是要写点程序的。如果换个角度看,像微信公众平台这类应用,只不过是把过去没有写程序能力的人拉了上来可以有个开始,等其中的强者被筛选出来之后,他们又回到要雇程序员的境地。这么一看,这些平台不仅没有减少程序员的职位,反而扩大了需求。如果没有公众平台,可能很多创业者压根到不了需要程序员支持这一天,也赚不到钱去养活一个程序员,现在,他们中的成功者终于可以活到这一天,加入竞聘程序员的行列了…&/p&&br&&p&这个世界对程序员的需求几十年没降低,按照我的观点,甚至未来几十年也不会降低,薪酬也只会持续上升。各种社交平台上,也会见到各种恶毒嘲笑讽刺程序员的人和段子(基本来自传统行业,他们大概觉得自己一辈子也不需要好好的和程序员打交道吧),这些人显然是不相信我这个看法的。无论相信不相信,眼前的情况就是这样的。为什么程序员会这么难招聘,背后的原因是什么?要回答这个问题,我一般会推荐对方看一篇文章,叫做《软件正在吞噬整个世界》,这是2011年美国著名风投Andreessen Horowitz创始人Marc Andreessen写的文章。今天看来,这篇文章的意义显然被低估了,Andreessen写过很多文章,但这无疑是最重要的一篇,也是对未来的指向最清晰的一篇。但别说2011年,就算是今天,也很少有人真正理解它的重要性。这篇文章并不长,看完我这篇,推荐找来再读一遍,相信你会有新感受。&/p&&br&&p&我一直非常推崇这篇文章的看法和远见,但是,我觉得他用的“吞噬”(Eating)这个词并不好,它没有能精确体现真实情况,我更愿意使用的词是“&strong&定义&/strong&”(defining)。“&strong&软件定义现实世界”&/strong&,这算是我发明的一个新词。我这篇文章要写的,就是关于软件是何如定义现实世界的。&/p&&br&&p&今年3月份的时候,我在杭州和一个朋友聊天,我们叫她夕总,是做传统行业的。她很惊讶程序员为什么这么难招聘。我给她大致描述了越来越多的行业开始使用软件来替代传统人力劳动的状况。她恍然大悟的说:“啊,我知道了,我家小区过去是个老大爷负责收停车费,现在变成了完全自动刷卡进入。所以,很多个老大爷被软件替代了,软件又需要程序员来开发和维护?” 这个例子找的非常准确,从一个具体的案例来看,就是这样的。她敏锐的抓住了现实世界最基层的情况。我也继续用这个例子做为背景说下去。&/p&&br&&p&图片:以前是这样的&/p&&figure&&img src=&https://pic3.zhimg.com/2aee060b0b610d8f1ebede6_b.jpg& data-rawwidth=&297& data-rawheight=&289& class=&content_image& width=&297&&&/figure&&br&&br&&p&图片:以后都是这样的了…&/p&&figure&&img src=&https://pic1.zhimg.com/f4cc2fd263e367f99e70f5c_b.jpg& data-rawwidth=&500& data-rawheight=&332& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic1.zhimg.com/f4cc2fd263e367f99e70f5c_r.jpg&&&/figure&&br&&p&当我们用一套停车场管理系统,替代了停车场管理员(那个老大爷)之后,整件事情改变了什么?它并不仅仅是节约了一个老大爷的人力成本这么简单,仅仅节约人力成本的价值并不大,因为基层体力劳动的人力成本是相当有限的,节约20个老大爷的工资,也未必能比得上一个程序员的工资支出。&/p&&br&&p&比节约一个人的人力成本更重要的是,我们用软件来规范了停车场的行为,即所谓“定义”。在使用软件之前,停车场管理员是有很大权利的,很多人都知道,给停车场管理员塞一包烟,他可能就会少收你20块钱停车费。甚至很多停车场管理员会直接把停车费塞到自己口袋里面,如果你没要停车发票的话。停车场的运营是没办法监督这种行为,要监督,就需要付出巨大的人力,甚至冒很大风险。有了软件系统之后,一切都不一样了。不再需要去监督这种往自己口袋里面塞钱的行为了,只要软件没有能被他们找到的漏洞,一切都变成了非常规范的行为。开车来的车主进入停车场的时候取卡,系统拍下车牌照,出停车场的时候自动计时收费,付钱之后停车场出口才打开,车才能离开。这个过程可以完全没有人力参与,就算是保留那个停车场老大爷的职位来做应急工作,他的行为也是严格被软件规范的。不交钱,停车场出口不打开,车就没法离开停车场,这是一条被明确定义了的基本规则,除非暴力去破坏停车场设施,否则,一切都是被软件管理的,人改变不了什么。从此,整个过程中不会再有钱的损耗,停车场运营方会获得更多收益。这些收益中的一部分,就变成了软件公司的利润,软件公司利润的一部分,变成了程序员工资。&/p&&br&&p&这就是软件企业为何有巨大盈利,程序员工资为什么这么高的原因。仅从这个例子看,软件没有创造新的价值,但是在若干传统行业中,软件夺回了一部分人本来不应该拿到的钱,把这些钱重新变成了利润,程序员分享了这部分利润。在这个停车场的例子中,按道理说,停车场管理员的收入只应该是一份工资,不包括偷偷塞到口袋里面的停车费,但是如果没有软件,这种行为是没法阻止的,一定会有很大一笔钱流到不应该获得它们的人手里。另外一方面看,在车主这边,他们的行为也被定义了。过去很多人是愿意接受10块钱买一包烟,省20块钱停车费这种设定的。但在软件管理之下,这种利益交换没机会发生了。在这个停车场的案例中,参与业务的两方行为都被软件重新规范和定义了。&/p&&p&整个过程可以这样看:在软件企业的帮助下,现实世界的资金流向被重新分配了。这就是“软件定义现实世界”。软件重新定义了社会规则,定义了人的行为。当然,目前软件还只是体现了业务人员的意愿,在这个阶段,更确切的说法是:软件&strong&帮助&/strong&人们重新定义社会规则。&/p&&br&&p&这只是个开始。我们站的高一点看这个已经被软件接管了的停车场。你会发现,关于它的细节都被隐藏了,你只知道它存在着&strong&接口&/strong&(Interface)。所谓接口,就是对资源的一种抽象,我们知道它提供什么,比如在这里例子中,可能是停车场有多少空车位,已经停有多少车,每天有多少收益,停车场的位置在哪…等等,具体的细节,被装进了一个黑箱子里面,我们不再关心它。比如,一个软件管理的停车场还有没有看车老大爷,这就算细节,在这种视角下,我们不再关心这个人是否存在,也不关心他在做什么,因为已经用软件定义好了他的行为,这时候我们只关心提供结果的接口即可。&/p&&br&&p&在软件世界中,知道了接口,就可以使用这一份资源。从此,我们把这个停车场可以看作软件世界里存在的一个&strong&单元&/strong&(Unit),刚才说了,它的现实状况已经被装进黑箱子屏蔽掉了。如果你只有一个这样的单元,它只能用来规范基本行为,但如果你在相邻街道再有一个这样的“停车场单元”,这时候就能开始有一些新的变化了。比如,停车场单元A已经几乎停满了,但停车场单元B还空着一半车位,这时候就可以通过软件来调整资源,让车主尽量往停车场B停。具体手段有很多,比如通过智能手机发送一条消息,告诉正在开来的车主,停车场A要排队10分钟,停车场B排队1分钟就可进入。自然可以分流一部分人到停车场B。甚至是把停车场B的停车价格降价10%,吸引更多人前往。这些实时的,根据资源剩余情况的动态配置,利用传统手段是不可能做到的。一方面是传统手段没法快速反馈信息,另外一方面,传统方式的审批决策流程过长,要降价总要有个负责人批准一下吧?从而让实时的动态调整变得不可能。但在一个被软件定义的世界里面,是可以做到的。在这种模式下,如果我们再屏蔽掉具体的引导办法(降价,排队时常通知之类),甚至可以把A和B两个停车单元合并成一个看,即,在软件层面上,我们有了一个更大的停车场单元。&/p&&br&&p&再继续下去,如果有更多的资源具有了接口,他们之间还可以发生什么交互?比如,两个停车场旁边有两个规模和品质相似的餐馆A和餐馆B,它们也具有了接口,软件世界里面,我们抽象出餐馆单元A和B,知道它们的座位有多少空余,知道今天厨房有什么材料,知道价格…那么,停车单元A报告自己已经满了的时候,这时候餐馆B是不是愿意暂时降价10%来吸引更多客源?如果餐馆B通过降价,成功把自己空余的资源卖掉了,他是否愿意分享一部分利润给停车场,以及分享一部分利润给帮助进行资源配置的软件运营方?&/p&&br&&p&这些都是会在未来发生的事情。越来越多的现实世界资源通过一个接口,接入软件世界,成为一个抽象的单元,它们会直接发生相互的作用,这就是我们多年所说的“智能化”。所有的这一切,最终都需要软件实现。把一个现实资源抽象成接口这件事,在软件行业称之为“虚拟化”,一个60年代软件行业就使用的概念。通常这个词被用于云计算行业,云计算产业在真正的物理计算机上虚拟出了计算机、路由器、内存…把这些资源弹性分配给需要的用户使用。但实际上,现实世界的一切都是可以通过这种方式被虚拟化的。这就是未来被软件定义的现实世界。对于这样的世界,如果找一个更容易理解的例子,最适合的是游戏。未来的一切都像即时战略游戏所表现的那样,如果你玩过星际争霸,大概会记得拿鼠标点一下,派出一个SCV去采矿,用鼠标点一下工厂,坦克就开始被生产出来。在这个过程中,操作者只需要知道点鼠标下达指令,之后收获指令的结果。点一下鼠标,几分钟之后得到一辆坦克,至于工厂里面具体如何生产一辆坦克,SCV如何获得矿石,这些细节被屏蔽掉,不用在关心。将来现实世界,传统行业的一切都会变成这样,甚至连下达指令的(玩游戏)的这个操作者早晚也会被软件替代。&/p&&br&&p&我并不是在写科幻小说,在今天,很多行业已经实现了类似的效果。比如航空业,这个行业里面很多部分已经是高度虚拟化的了,他们已经可以用一个指挥系统调动各种地勤和支持资源去完成航空行业运转的各种流程。当然,他们也需要好多程序员来开发和维护这个系统…&/p&&br&&p&说到这里,推荐一部非常符合这个主题的动画片,叫做《夏日大作战》,这部2009年的动画用图形化和更易懂的方式描述了这种未来的场景,非常好看。这是2010年,当时还在九城工作的布布推荐我的,我们都非常喜欢它,也一致认为这就是未来。(布布这个人也在笑来关于比特币的文章里面出现过,他跟笑来说不要挖矿,要花钱去买比特币…是一个非常传奇的家伙)&/p&&br&&p&图片:夏日大作战&/p&&figure&&img src=&https://pic4.zhimg.com/d3ff87754cbb3b02f1ad31308a52ffcf_b.jpg& data-rawwidth=&250& data-rawheight=&358& class=&content_image& width=&250&&&/figure&&br&&p&我们再站高一点,看之前描述的场景。现在我们有了若干的资源单元,他们分布在不同的行业,这些单元已经被软件定义好了,我们看作是黑箱。在软件之下,又定义了无数具体工作人员的行为。刚才的例子里面,除了停车场管理员,还有厨师,服务员…沿着这个思路继续想,还会有给餐馆进货,供应原材料的供应商,维修停车场设施的公司…所有这些,会会被虚拟化成软件世界中的一个单元。然后是各种被提供服务的人(所谓用户),他们有接收信息的方式,大到计算机,小到智能手机,或者各种嵌入式系统,比如特斯拉电动车驾驶舱里面的那块大屏幕…一个使用手机的用户,或者一辆特斯拉,同样都可以被抽象成一个带有接口的资源单元。所有资源单元的行为,都是被软件定义的,他们之间的交互方式和可能产生的结果,同样是被软件定义和调配的。这其中的每一层,每一部分,都需要大量程序员的工作。越来越多的现实资源被虚拟化,也就产生了更多的交互和更多的可能性,这些一样需要程序员去实现。今天,人类社会被虚拟化成软件的资源还只有极少的部分,我没有具体统计的数字,但大家只要想想自己每天的现实生活所需所用,至少能有个大概的感知,恐怕被虚拟化的资源连1%都不到。未来的空间有多大?几乎是无限量的大。&/p&&br&&p&现实世界能被虚拟化到什么程度呢,我之前几次推荐过科幻小说《雪崩》里面描述了未来的世界只剩下三种职业:娱乐业、程序员和Pizza快递员。这本写于90年代初的小说,早年看起来非常震撼,今天看起来…觉得他还不够极端。因为现在我们已经确知了,Pizza快递员的工作会被无人机改变,娱乐业会被VR/AR改变。最后干脆现实世界只剩下了程序员这一种职业…软件并没有吞噬掉现实世界,而是重新定义了现实世界的所有资源。&/p&&br&&p&图片:雪崩封面&/p&&figure&&img src=&https://pic3.zhimg.com/e043407dae261c633dc442_b.jpg& data-rawwidth=&390& data-rawheight=&600& class=&content_image& width=&390&&&/figure&&br&&br&&p&所以,今天一切关于软件/互联网泡沫的看法都是过时的。现实世界的虚拟化已经快到了相当的程度,我们真的需要大量的程序员,未来仍然需要,有多少都不够用。因为程序员职业缺口太大了,早就不是有钱就能招聘到的了,甚至一个程序员因为公司要打卡,就会选择另外一家企业,因为他们可选择的余地实在太大了。很多企业远远没意识到问题的严重性,而聪明的企业,已经在忙着做“企业技术文化”工作了。如果你不是BAT,又不是一个很酷的新公司,程序员们根本对你没有兴趣,到这个境地,花别人一倍的钱也未必能雇到人,所以就需要做技术文化工作,去宣传我们也是很酷的,我们也是能改变世界的…从而不至于在这种竞争中落后。&/p&&br&&p&最近一段时间,我周围很多其他行业的朋友都跑来问我,是不是他们应该学写一点程序。我通常都回答,只要你有兴趣,学的下去,那就当然应该。就算不能成为职业程序员,在这个软件定义一切的行业里面,理解程序如何产生,理解程序员如何工作,那就一定会有一份更好的职业机会等着你。为什么不学呢?&/p&&br&&p&以上这些,就是难以雇到程序员这种状况产生的基本面,因为这个职业缺口确实太大了,未来这种职业缺口不仅不会减少,毫无疑问还会继续扩大下去,甚至可以夸张一点的说,人类世界现代化的速度,很大程度被程序员数量不够制约…这个话题会是一个系列,下面还有好几篇,关于程序员、关于创业、关于工程…敬请关注。&/p&&br&&p&顺便再推荐阅读我年初写的文章 “人类的未来注定灰暗”,链接我放在文末 ,这篇文章同样是说这个话题,只是更科幻一点。&/p&&br&&p&如果你读完这篇文章对程序员这个职业发生了兴趣,无论是想学一点,还是想理解他们多一点,推荐订阅漫画公众号《神秘的程序员们》。这部漫画是我和西乔多年经验的总结,等你以此为乐,能理解每一期漫画里面包含的几层梗和彩蛋的时候,对这个行业的理解就已经非常深了。不可错过,扫码关注。&/p&&br&&br&&br&&p&对了,这应该是我今年年底最后一篇文章了。所以在此提前祝各位朋友,各位读者圣诞快乐,新年快乐。感谢大家2015年的关注,就算我更新这么少也没退订…真是太感动了。谢谢大家。&/p&&br&&p&我们2016年见!&/p&&br&&br&&p&参考备注:&/p&&ul&&li&&p&《&a href=&//link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMjM5MTE4Nzk1NA%3D%3D%26mid%3Didx%3D1%26sn%3D32d72cc75f20548a5fdc%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&无论强人工智能能否出现,人类的未来注定灰暗&i class=&icon-external&&&/i&&/a&》&/p&&/li&&li&&p&标题图:Image used under Standard license from &a href=&//link.zhihu.com/?target=http%3A//Shutterstock.com& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&Shutterstock.com&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& (这张图是我们付费购买的,转载也可直接使用,不用换掉它)&/p&&/li&&li&&p&译言翻译的中文版《软件正在吞噬整个世界》:&a href=&//link.zhihu.com/?target=http%3A//article.yeeyan.org/view/640& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&译言网 | 软件正在吞噬整个世界&i class=&icon-external&&&/i&&/a&&/p&&/li&&li&&p&华尔街日报英文版“Why Software Is Eating The World”:&a href=&//link.zhihu.com/?target=http%3A//www.wsj.com/articles/SB29460& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&wsj.com/articles/SB1000&/span&&span class=&invisible&&0&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&/li&&/ul&&br&&br&&p&本文来自霍炬的微信公共帐号“歪理邪说”,用微信添加 wxieshuo 公众号,即可订阅。转载必须保留作者、公共帐号信息,必须与本文严格一致,不得修改/替换/增减本文包含的任何文字和图片,不得擅自增加小标题、引语、摘要等。除特别声明和单独授权,本公众号一切内容禁止包括但不限于转载、摘编的任何应用和衍生。&/p&
与其讨论计算机行业能够火几年,不如将问题聚焦在:未来世界的行业格局将会是如何?以下这篇来自著名程序员霍炬的雄文,让这个问题的答案不言自明。 为什么你招聘不到程序员,以及软件如何定义现实世界 原创霍炬 现在已经是2015年的最后…
&figure&&img src=&https://pic3.zhimg.com/v2-d025f5d8_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic3.zhimg.com/v2-d025f5d8_r.jpg&&&/figure&自我开始做职业编程培训以来,已经过了一年多的时间(见下方链接)&br&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&我计划做金光闪闪的线上编程培训 - 知乎专栏&/a&&br&&br&包括在那之前的教人经历,让我在这编程学习/教学方面积累了丰富的理论知识和实践经验&p&&br&&br&这篇文章打算聊聊一下对于一个想要从事编程工作的新人,该如何选择学习的方向,如何有效学习,以及自己的教学心得&br&&br&&br&&/p&&h2&自学编程的最佳方法&/h2&&br&&b&第一步:学习编程基础&/b&&p&在这一步,具体的编程语言其实并不是那么重要&/p&&p&你应该先明白编程在做的是什么样的一件事&br&你应该去了解代码的执行顺序类型(顺序、条件、循环)、了解数据的类型(数字、字符串、布尔值、……)、了解数据的处理(四则运算、比较运算、逻辑操作、字符串处理、……)、了解函数和类(你可以在任意一个编程基础教程里找到这些)&br&&br&&br&&br&&b&第二步:决定自己从事的方向&/b&&br&&/p&&p&在掌握编程基础后,进一步的学习之前,你得知道自己想通过编程做些什么&/p&&p&你学习编程后能从事的行业:有游戏、Web、安全、桌面软件……以及具体岗位(以 Web 为例:前端、后端、移动端)&br&在这一步,你应该充分考虑以下几点因素来做出最终的决定:&/p&&br&&ul&&li&市场环境&/li&&li&个人兴趣和资源&/li&&/ul&&p&这个决定可能会在将来被更改,但它会决定了你接下来一段时间具体学习的内容是什么&br&&/p&&br&&br&&b&第三步:了解自己所选的方向考察工具&/b&&p&这里以 Web 后端为例,你在了解这份工作后,应该进一步了解这个岗位需要解决的问题:开发框架、数据库、服务器、常用库等&br&在这一步,你需要考察市面上对于这些问题流行的解决方案有哪些,哪套方案对你来说是最合适和有利的,具体需要用到哪些工具,以及这些工具所使用的具体语言和技能(比如 Web 后端有不同语言不同框架,数据库的选择也是多种多样,Linux 服务器的版本也是百花齐放)&/p&&p&这些可能会比较困难,找相关行业和岗位的在职人士会比较有帮助(比如这个链接里面,很多人是通过我给出的方案来学习的,这就扫清了无数障碍 &a href=&https://www.zhihu.com/question/& class=&internal&&有多少人按@萧井陌大神给出的Python+Flask路线找到工作了? - 知乎&/a&)&br&&br&&br&&br&&b&第四步:对需要学习的语言的进阶,以及其他基本知识的掌握&/b&&/p&&p&在这一步,你需要根据上一步整理的内容,学习具体语言的进阶特性,以及其他的基础知识(例如 Linux 的基本操作),这方面会有很多资源,花时间就能搞定&/p&&br&&p&&br&&br&&b&第五步:学习工具&/b&&/p&&p&这个时候你就可以开始学习第三步整理的工具了(比如一个具体的库,一个数据库的用法),和上一步一样,寻找相关的资源,花够时间即可,理论上完成了这一步你就能成功就业了&br&&br&&br&&br&&br&&/p&&h2&我的教学理念&/h2&开班一年多,期间也有很多人来问自己情况是不是适合来报名之类的问题,之前也零星回答过一些,但感觉还不够&p&一方面,回答场景多种多样,因为条件限制,有不尽人意的地方&/p&&p&另一方面,回答过的东西没有计划保存和整理,对于一些经常提及的问题反复回答显得很没必要&/p&&p&&br&所以这里针对 “&b&什么样的情况适合报你的班?&/b&” 的问题统一做一下解释,也简要阐述一下我的教学理念,或许你能理解为什么我对自己的学习路径会有如此自信(以及它的效果为何会那显著)&br&&br&&br&目前对外开放报名的有两个班级:Web 班和 Web 前端班&br&&/p&&ul&&li&Web 后端班:针对有 Python 编程基础的人,以能够处理 Web 后端开发,独立开发网站,具备一定的前端能力,并找到工作为目标&/li&&li&Web 前端班:针对没有任何编程基础的人,以能够熟练使用 JavaScript 编程,处理前端开发的常见问题,并找到工作为目标&/li&&/ul&&br&&br&&br&Q:&p&那么久都没人站出来说效果&/p&&p&A:&/p&&p&首先是有很多同学出来说的,但是会被讽刺为演员&/p&&p&&b&我统计的教学成果可见下方链接&/b&&/p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&金光闪闪的 Web 后端第 5 期、Web 前端第 4 期公告和前几期的成果说明&/a&&p&&br&&br&&br&Q:&/p&&p&有什么特别的优势&/p&&p&A:&br&&b&时间短,知识充足有效,在学习效率这一点上,无任何可见可媲美的对手&/b&&/p&&p&学习最重要的是掌握重要知识,所以时间短效果好是建立在高效掌握知识的前提下的,所以学习有如下几个要点:&/p&&ul&&li&难度曲线要平滑,这样能够逐步掌握知识并且不卡壳&/li&&li&训练量要有,这样才能掌握知识并且能够运用自如而不是感觉掌握了但是不会写具体的程序&/li&&li&要抓主要的知识,不同知识的权重是不同的,集中精力掌握主要知识,就可以举一反三地轻松掌握其他权重低的知识&/li&&/ul&&br&&p&以上几点看上去似乎不难,但是要达到理想的效果是很不容易的,&b&所以我班上会有很多程序员的弟弟妹妹朋友&/b&&/p&&p&很多人会猜测我们不教基础,实际上不教基础怎么可能学得好呢?我们不仅讲基础,而且讲得足够基础,比如前后端都要学习『数据结构与算法』,并且教会了,有实现 hashtable 的作业(下图是前端的某一课的作业)&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-f0aac8eecc432e_b.jpg& data-rawwidth=&302& data-rawheight=&217& class=&content_image& width=&302&&&/figure&&br&&br&&br&Q:&/p&&p&我觉得有能力自学的话,自学不是更好吗?毕竟自学效果也不会差,而且都说程序员必须拥有自学能力&br&&/p&&p&A:&br&如果资料齐备,目标清晰,有解决问题的途径(比如你有个朋友、同学可以回答你问题),那自学的确也没什么问题(问题是你有没有这些先决条件)&/p&&p&有这个打算的话,又想对比一下区别,那么下面或许是你想了解的信息:&br&&/p&&ul&&li&效率,在我的班级里,能按照课程要求来学习做作业,不需要脱产,只需两个月,每天准备 2-3 个小时,即可毕业去工作,并且具备工作环境中所需的能力&/li&&li&完整的教学框架:不需要额外花费大量时间了解和评估自己应该学习什么技术,直接按照课程安排学习即可,不会踩坑&br&&/li&&/ul&&br&实际上,班级里也来过很多自学过的同学(几个月甚至一年),最终两个月就顺利掌握知识并毕业工作&br&&br&&br&&br&Q:&br&我已经有一些编程基础了,课程是针对小白的,来了会不会也只是浪费?&br&A:&br&其实在针对新手的 Web 前端班,基础的部分在课程里只是很小的一部分(一周),即便你已经掌握了这些,剩余的部分依然会给你远超其他针对非新手教程的收获,所以完全不存在浪费的情况&p&再者,在实际教学过程中,也发现了很多自认为已经掌握了基础,但其实有很多误解和错误的情况。&/p&&p&所以即便是基础课程的部分,你也很可能会得到意料之外的收获&br&&br&&br&&br&Q:&br&我就业已经没问题了/我已经在业了,培训班对我是不是已经没价值了?&br&A:&br&这种情况比较复杂,你应该评估一下以下几点是否还需要再争取,然后再决定:&br&&/p&&ol&&li&工作中,是否已经有全套好用的工具,对于工具的原理是否能深入理解?如果还没有,在课程中的工具体系和底层知识教学能让你对此有所收获&/li&&li&工作过程中,是否已经形成基本的流程,对于其中细节是否能够把握?如果还没有,课程中的作业训练应该会有所帮助&br&&/li&&li&对于工作中出现的问题,能否快速进行处理?如果不能的话,你可以在课程中的项目实践和指导中学会并掌握完整的应对流程&br&&/li&&/ol&&br&我的经验上来说,如果你月薪在 10k 以下,通常都是能有很大收获的&br&&br&&br&&br&Q:&br&我是应届生,offer 到手,就业并没有什么压力,薪资也还不错,但对于工作没有足够自信,你能帮到我么?&br&A:&br&常有人会说应届生需要培养后才能真正投入战力,这是高校教育和市场环境脱节导致的。&p&如果你觉得自己在校园中还没有接受足够多有针对性的职业培训,这很正常,可以参考一下之前几个问题,看看自己有没有有疑虑和感兴趣的方面,这些内容可以帮你更快融入岗位,提升战斗力&br&&br&&br&&br&Q:&br&有没有课程大纲?&br&A:&br&有,但是不会在学完前提供课程大纲,理由如下:&br&&/p&&ul&&li&对于还没开始学习的同学,了解大纲并不能学得更好,也无法打消疑虑。课程已经有完整的预习学习复习体系,循序渐进,所以不需要提前知道学习的内容&/li&&li&想要试图通过得到大纲来打消自己疑虑,其实完全是没有用的,因为有评估大纲内容的好坏的人,早已脱离了初级阶段,也就没必要再通过我来学习这些知识了。相比之下,我认为只能通过建立培训班的信用来达到打消疑虑的效果(不过我会在文末给出大致的内容范围)。如果你实在不放心,不妨关注这个专栏,直到得到满意的信息&/li&&li&更重要的是,对于新人,得到一份完整的大纲反而会阻碍学习进度的推进(在过去(包括开班前)教编程的经历中,我发现很多人会更愿意提前拿着大纲中的关键词自己去查些无关的信息,看一些额外的书(往往会是比较糟糕的资料),而不是按着教学安排来(总想比我更快一点),最终严重影响了学习效率和效果,也影响到了其他同学的注意力)&/li&&li&如果你有这方面的需求,不妨在课程完全结束、掌握了完整的体系后,再去找自己感兴趣的信息学习和印证,这样才能达到事半功倍的效果&/li&&/ul&&br&&br&&br&&p&Q:&/p&&p&我还是想看看教学大纲&/p&&p&A:&/p&&p&Web 后端班会把精力投入在以下几块:&/p&&ul&&li&通过自己从头实现一个 Web 服务器框架来掌握 Web 开发中的各种技术概念&br&&/li&&li&掌握通用的开发模型、框架、技术&/li&&li&掌握常用数据结构与算法,并且能够实现它们&/li&&li&实战项目&/li&&li&其他能有效提升开发效率和体验的技术、工具&/li&&/ul&&p&Web 前端班会把精力投入在以下几块:&/p&&ul&&li&编程能力(包括硬技术、编码规范、代码风格、分解需求等能力)&/li&&li&前端领域的技术(你工作中需要用到的技术)&/li&&li&项目能力(分解项目需求,实现)&/li&&li&实战项目&/li&&li&工作中用到的技术、工具&/li&&/ul&&br&&br&&p&暂时停开的基础班:&/p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&只学两周的新手就是能写出这些代码(标题党) - 知乎专栏&/a&&br&&br&&br&&p&下面贴几张同学做的项目截图(我只教编程、项目能力,项目是大家用自己学到的知识自行写出)&/p&&p&有前端有后端,后端项目界面也好看是因为后端也学了 CSS 和 JavaScript&/p&&figure&&img src=&https://pic4.zhimg.com/v2-6c5cd6e9ac4af2bb948150efa401c860_b.jpg& data-rawwidth=&1292& data-rawheight=&527& class=&origin_image zh-lightbox-thumb& width=&1292& data-original=&https://pic4.zhimg.com/v2-6c5cd6e9ac4af2bb948150efa401c860_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-5b2ae241ca9dc491ff7ead5529ead57f_b.jpg& data-rawwidth=&310& data-rawheight=&555& data-thumbnail=&https://pic1.zhimg.com/v2-5b2ae241ca9dc491ff7ead5529ead57f_b.jpg& class=&content_image& width=&310&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-f5b8d6e26704cf9eaa372cf18c104502_b.jpg& data-rawwidth=&1032& data-rawheight=&693& class=&origin_image zh-lightbox-thumb& width=&1032& data-original=&https://pic4.zhimg.com/v2-f5b8d6e26704cf9eaa372cf18c104502_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-4af0bb77648d01bba5277aed70e657c8_b.jpg& data-rawwidth=&1274& data-rawheight=&950& class=&origin_image zh-lightbox-thumb& width=&1274& data-original=&https://pic4.zhimg.com/v2-4af0bb77648d01bba5277aed70e657c8_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-0f85ebd25_b.jpg& data-rawwidth=&1306& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&1306& data-original=&https://pic4.zhimg.com/v2-0f85ebd25_r.jpg&&&/figure&&br&&br&&h2&下期的课程,会在本周内发布报名公告,本月底开始上课,如果你有兴趣,请关注本专栏&/h2&
自我开始做职业编程培训以来,已经过了一年多的时间(见下方链接)
包括在那之前的教人经历,让我在这编程学习/教学方面积累了丰富的理论知识和实践经验 这篇文章打算聊聊一下对于一个想要从事编程工作的新人,…
&figure&&img src=&https://pic4.zhimg.com/v2-fa9648b47afd1bc788e56c1_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-fa9648b47afd1bc788e56c1_r.jpg&&&/figure&&figure&&img src=&http://pic2.zhimg.com/v2-c7ded7c1aa_b.jpg& data-rawwidth=&1024& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&http://pic2.zhimg.com/v2-c7ded7c1aa_r.jpg&&&/figure&&p&今天我想给大家介绍一个人。&/p&&p&&strong&有他在,全世界没人敢说中国人做不出好游戏。&/strong&&/p&&p&作为我的偶像之一,他并未被大众所熟知,但如果你不认识他,你对游戏的认识注定浅薄。&/p&&p&他是“禅派”游戏的创始人、最有才华的国产游戏制作者。&/p&&p&是的,&strong&[陈星汉 - Jenova Chen]&/strong&,&strong&一个将游戏视作艺术,将理想付诸现实的神人。&/strong&&/p&&p&在大多数人眼里,陈星汉设计的游戏总是与传统背道相驰,&strong&没有打怪、没有对抗,只有一种从感官到心灵的解脱,一种对孤独的思考。&/strong&&/p&&p&很多人觉得,这种跟文艺片一样的游戏,肯定没多少人玩。但你可能不知道,陈星汉和他的游戏早已取得了业内你所能想到的所有成就。&/p&&p&&strong&[花],&/strong&&strong&成为了美国历史上第一款,被华盛顿博物馆收藏的游戏艺术作品&/strong&。在此之前,从没有哪一款游戏被当做艺术对待。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-fe8c96ba152aff_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic1.zhimg.com/v2-fe8c96ba152aff_r.jpg&&&/figure&&p&[风之旅人],创造了PSN史上最快销售记录,发售5个月后,还排在总榜前三。几万玩家玩完游戏,哭的稀里哗啦,成天给他写信感恩。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-f030026dfb67f8d445edb_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic4.zhimg.com/v2-f030026dfb67f8d445edb_r.jpg&&&/figure&&p&2013年,还是陈星汉,在游戏界的奥斯卡 - Game Developer Choice大会上,席卷了包括最佳年度游戏在内的6项大奖,要知道,这次大会总共才11个奖项。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-f2c01318cce51caeff9d6_b.jpg& data-rawwidth=&570& data-rawheight=&796& class=&origin_image zh-lightbox-thumb& width=&570& data-original=&http://pic3.zhimg.com/v2-f2c01318cce51caeff9d6_r.jpg&&&/figure&&p&回头看看国内这些天天靠日活量吃饭的“金牌制作”,看看那些除了氪金以外,一无是处的“最佳”游戏,也难怪外国人会那么看不起国产制作。&/p&&p&不过好在还有陈星汉,&strong&在这名制作人身上,我仍然能看到那种,属于国产游戏从业者的内敛和坚持&/strong&,有这样的人在,中国游戏就不会死。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-022ab25e85c0f86f36cce8_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic1.zhimg.com/v2-022ab25e85c0f86f36cce8_r.jpg&&&/figure&&p&&strong&一路走来,他的每个脚步,都是游戏界不可磨灭的经典。&/strong&&/p&&p&1981年,陈星汉在上海的某个小区内呱呱落地,他的人生如何起步,严苛的父亲早已胸有成竹。&/p&&p&满6周岁后,陈星汉跳过幼儿园大班,被提前一年扔进了静安区的一所重点小学。&/p&&p&尽管那时的学业竞争,远不如现在来的可怕,但年幼的陈星汉,从那时起,就处在各种压力之下,&strong&时间、考试、竞赛、家庭,&/strong&&strong&想成为最好的,就得付出最多&/strong&&strong&。&/strong&&/p&&figure&&img src=&http://pic4.zhimg.com/v2-5e1e748c7c3f50a56feae3d4cb0cd383_b.jpg& data-rawwidth=&1280& data-rawheight=&722& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic4.zhimg.com/v2-5e1e748c7c3f50a56feae3d4cb0cd383_r.jpg&&&/figure&&p&他每天早晨6点钟起床,父亲骑车送他上学。下雨天,他把小脑袋挤进父亲厚重的雨衣里,一遍遍问着:“&strong&爸,到哪了?不会迟到吧?&/strong&”&/p&&p&&strong&从小到大,陈星汉最爱干的事儿就是画画。&/strong&&/p&&p&读小学时,班上有个富二代同学,经常从家里带来成套的原版日本漫画书,两人关系好,看完就索性全送给了他。&/p&&p&陈星汉爱不释手,他每日每夜照着临摹,还经常想象一些情节,自己画下来。几番手绘过后,功力大进,对漫画的喜爱也更加坚定了他走入艺术行业的信念。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-d1b50e8efcf26bc2f9fa1f_b.jpg& data-rawwidth=&1200& data-rawheight=&1793& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&http://pic4.zhimg.com/v2-d1b50e8efcf26bc2f9fa1f_r.jpg&&&/figure&&p&父亲始终不认可他的理想,觉得艺术那玩意不稳定,“&strong&指不定啥时候就没饭吃了&/strong&”。思来想去,他打算让孩子走自己的老本行,&strong&计算机&/strong&。&/p&&p&于是,陈星汉被生拉硬拽地送到了上海少年宫的编程培训班,两年后,又转到了专业的信息技术学校。&/p&&p&陈星汉对编程始终提不起兴趣,成绩也一直处在中下游。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-50ec3dabd013f6e92c0e31ce364f02e6_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic3.zhimg.com/v2-50ec3dabd013f6e92c0e31ce364f02e6_r.jpg&&&/figure&&p&为了让他能好好学,老父亲下了血本,购入一台PC286电脑,专门给陈星汉学代码。结果一个星期过去,&strong&程序没写多少,游戏倒是安装了很多。&/strong&&/p&&p&没人想到,这一玩,陈星汉的人生产生了巨大的转变。&/p&&p&那是个寂静的午后,陈星汉坐在公寓的床边,敲击着键盘。电脑屏幕上是[仙剑奇侠传]的通关画面,李逍遥击败了拜月教主,失去了生命中最重要的两个人。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-34bba3ee8d84_b.jpg& data-rawwidth=&1280& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic1.zhimg.com/v2-34bba3ee8d84_r.jpg&&&/figure&&p&14岁的陈星汉,仿佛被游戏动人的剧情戳中了心扉,抱着电脑,嚎啕大哭。他轻声问自己:&strong&“我到底想要什么样的生活?&/strong&”&/p&&p&数个小时后,他有了答案,&strong&要穷尽一生,帮助所有人获得,自己刚刚从[仙剑]中得到那种感动。&/strong&&/p&&p&陈星汉决意走上艺术的道路。&/p&&p&为了得到父亲的理解,&strong&他继续在计算机行业深造,并连续两次获得奥林匹克竞赛金奖&/strong&。学业之余,他还同时参加多个美术院校的培训班,学习素描。整个大学,他都在忙碌中度过。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-750ff695783_b.jpg& data-rawwidth=&1280& data-rawheight=&716& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic4.zhimg.com/v2-750ff695783_r.jpg&&&/figure&&p&临近毕业,陈星汉决定出国留学。&/p&&p&2003年初,他就收到了美国一所计算机院校的录取通知,校方同意提供全额奖学金,但他却把通知扔进抽屉,一直不给对方答复。&/p&&p&半个月后,南加州大学电影艺术学院发来录取通知,附加条件远不及前者优越,陈星汉毫不犹豫,带着行李远赴大洋彼岸。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-75832aac88ca56c018e2cd6da84d9bf7_b.jpg& data-rawwidth=&453& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&453& data-original=&http://pic4.zhimg.com/v2-75832aac88ca56c018e2cd6da84d9bf7_r.jpg&&&/figure&&p&没想到画画没两天,陈星汉就被调了岗位。由于具有编程基础,又在计算机方面颇有造诣,&strong&讲师将他分配到了电影学院的游戏项目中。&/strong&&/p&&p&学院不只要求学生“纸上谈兵”,更多的是要做出自己的作品。恰逢[GTA3]面世,美国枪击案频发,传出不少舆论,认定游戏毒害青少年,让他们变得暴戾。&/p&&p&于是,&strong&陈星汉打算撬开游戏的边界,制作出一款没有暴戾、没有焦躁的游戏。&/strong&&/p&&p&&strong&[云]&/strong&&strong&应运而生。&/strong&&/p&&figure&&img src=&http://pic3.zhimg.com/v2-ceb846fd7c222_b.jpg& data-rawwidth=&767& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&767& data-original=&http://pic3.zhimg.com/v2-ceb846fd7c222_r.jpg&&&/figure&&p&当时没有Unity,陈星汉只能自己写引擎,除此之外,他还负责小组内8名成员的分工、监制、统筹等等,那时的陈星汉常常住在工作室里,没日没夜地绞尽脑汁,创造、测算。&/p&&p&半年后,游戏发售,在此之前没人会想到,这款简单的小游戏竟然能引发如此巨大的轰动。&/p&&p&那天夜里,陈星汉为游戏发售架设的个人服务器,和南加州大学的服务器全部宕机,&strong&原因是来自[云]的访问量太过庞大。&/strong&&/p&&p&几天过后,玩家的Email陆续寄到陈星汉的个人邮箱里,通篇都是感谢的话语。&strong&那些习惯了怒刷装备的玩家们,第一次发现,游戏竟然也可以如此纯洁美好。&/strong&&/p&&figure&&img src=&http://pic1.zhimg.com/v2-f896b84c9fd4dadffaad8_b.jpg& data-rawwidth=&1024& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&http://pic1.zhimg.com/v2-f896b84c9fd4dadffaad8_r.jpg&&&/figure&&p&2个月后,EA公司牵头几个大厂,公开表示鼓励这种“全新的游戏形式”,还将[云]搬上了EA的官网首页。&/p&&p&在此,陈星汉也感受到了玩家的热情和市场的空乏,他认定,这种充满着美好想象的游戏,一定能帮助大家走出暴戾。&/p&&p&一段时间后,他拉上好友Kellee,&strong&成立了Thatgamecompany(那家游戏公司)&/strong&,努力探寻“禅派”游戏,为所有玩家寻求植根于内心的纯粹感动。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-c39a5a27c9ba9b03be0e0_b.jpg& data-rawwidth=&1265& data-rawheight=&661& class=&origin_image zh-lightbox-thumb& width=&1265& data-original=&http://pic1.zhimg.com/v2-c39a5a27c9ba9b03be0e0_r.jpg&&&/figure&&p&研究生毕业季,&strong&陈星汉制作了第二款游戏 - [流]。&/strong&&/p&&p&这款以操作浮游生物完成“吃”与“游”的迷你游戏看似简单,引发的躁动却远远不比[云]来的差。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-fe548cd01e4a6e0db59ca3_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic4.zhimg.com/v2-fe548cd01e4a6e0db59ca3_r.jpg&&&/figure&&p&那年的GDC游戏开发者大会上,业内大佬公然指出,让诸位在场的游戏从业者多学学“Jenova”。&strong&EA为了完成[孢子]的制作,直接高薪聘请陈星汉来公司上班。&/strong&&/p&&p&玩家对游戏的评价也很高,有人甚至反向抱怨:&strong&“这个该死的游戏太可怕了,我不知不觉地玩了整整2天,真爽!”&/strong&&/p&&p&然而很少有知道,这款游戏的创作初衷,仅仅是为了收集玩家数据,完成毕业论文。显然,[流]为陈星汉带来的价值,远远超出了预期。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-c85ae57a681e_b.jpg& data-rawwidth=&480& data-rawheight=&200& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&http://pic3.zhimg.com/v2-c85ae57a681e_r.jpg&&&/figure&&p&毕业后,陈星汉拥有了更多的创作时间,也在业内大亨的帮助下,得到了更好的资源。&/p&&p&那一年,罗杰·艾伯特的“游戏非艺术”言论,在行业内掀起了巨大的风浪,这名曾获得普利策奖的影评人,撰文说,“&strong&游戏是立足商业的东西,它永远无法成为艺术。&/strong&”&/p&&p&而不到半个月,陈星汉的第三款大作,就狠狠地打了他一耳光。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-2fd15fc3a22d4bd29efdf_b.jpg& data-rawwidth=&1000& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&http://pic4.zhimg.com/v2-2fd15fc3a22d4bd29efdf_r.jpg&&&/figure&&p&美丽绝伦的画面、引入深思的故事、充满禅意的探索,&strong&那一年,IGN给了[花]一个惊人的9.5分。&/strong&&/p&&p&洛杉矶的当代艺术馆,甚至拍摄了一个以[花]为主题的游戏纪录片,在这部片子里,每个玩家都从[花]里,找到了属于自己的东西。&/p&&p&从此以后,再也没有说过诸如“游戏非艺术”的话语,陈星汉用自身的行动,彻底印证了14岁那年的懵懂理想。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-8b29d0641e3ebdabeadb8_b.jpg& data-rawwidth=&1024& data-rawheight=&680& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&http://pic1.zhimg.com/v2-8b29d0641e3ebdabeadb8_r.jpg&&&/figure&&p&纪录片正在演绎[花]&/p&&p&名声越来越大,身价也越来越高,但陈星汉却没有停下脚步,他的创意仿佛从天而至,永不枯竭。&/p&&p&&strong&三年过后,他创作了[风之旅人]&/strong&,这款里程碑式的游戏,重新解释了“情感互动”,究竟是个怎样的东西。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-b6b28bab671cb3d66b0428a_b.jpg& data-rawwidth=&892& data-rawheight=&491& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&http://pic3.zhimg.com/v2-b6b28bab671cb3d66b0428a_r.jpg&&&/figure&&p&&strong&游戏的灵感源于陈星汉三年的[魔兽世界]经历。&/strong&&/p&&p&“魔兽里的大多数玩家总是专注于游戏本身,所有的对话都集中在任务里,整整三年,这款游戏没有任何一次让我感受到了深层次的情感对话。那时我就在想,一定要做出一款这样的游戏。”&/p&&p&在[风之旅人]当中,&strong&两名玩家在不同的地点出生,没有名称、没有代号、没有服饰上的差别,所有的互动都来源于内心的感触。&/strong&只有在游戏结束后,字幕滚动完毕时,你才能看到这位玩家的名称。&/p&&figure&&img src=&http://pic2.zhimg.com/v2-48acaf8d40bad_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&http://pic2.zhimg.com/v2-48acaf8d40bad_r.jpg&&&/figure&&p&游戏上架PS PLUS后,一些玩家在论坛里发起了“旅途的歉意”帖子,&strong&这是一部分玩家在向旅途中遇到的伙伴致以歉意。&/strong&&/p&&blockquote&&p&今晚我真心感激你的帮助。你在我没有获取飞行技能的时候如此地耐心。&/p&&br&&p&我很抱歉当那东西找上我们的时候我因为恐惧藏在了石头后面。它让我有点措手不及。&/p&&br&&p&致我在第五区域里的朋友。我从没有想过要离开你,只是在跳跃的时候被猛地吹跑了。我想你。抱歉。&/p&&br&&p&致我所有一起游戏的人:感谢你们从未离我而去。&/p&&/blockquote&&p&[风之旅人]是一款伟大的游戏,这不仅仅因为它在发售的那一年,拿到了几乎业内所有的奖项,也与其巨大的销量无关。&/p&&p&它的伟大,是因为在漫长的摸索中,&strong&跳脱出了原先的圈子,将游戏的魅力提高到了另一个档次。&/strong&这是目前市面上任何一款游戏都做不到的。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-8f6fb52cca59ccffa7413004_b.jpg& data-rawwidth=&1000& data-rawheight=&660& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&http://pic1.zhimg.com/v2-8f6fb52cca59ccffa7413004_r.jpg&&&/figure&&p&&strong&接受采访时,陈星汉曾提到制作[风之旅人]的动机。&/strong&&/p&&p&“人们不会花四个小时玩游戏,但却愿意花四个小时看书,因为书籍能给他们的生活带来真正有意义的东西。而人们说起游戏,基本都觉得是毒害青少年。”&/p&&p&&strong&“我希望在退休之前,如果你跟别人说你是游戏设计师,就像说你建筑师、电影导演、作曲家一样,得到全社会的尊重,这是我最大的梦想。”&/strong&&/p&&p&不知何时,游戏制作人的头衔开始广为流传,估值上亿的页游厂商、流水几千万的手游老板,这些人真的担得起这个名号吗?又或者说,这些真的能算得上是游戏吗?&/p&&br&&blockquote&&p&&strong&不得不承认在这个娱乐至死的年代里&/strong&&/p&&p&&strong&秉持初心不为所动的人&/strong&&/p&&p&&strong&真的是少数。&/strong&&/p&&/blockquote&&br&&figure&&img src=&http://pic1.zhimg.com/v2-153a74e539979cbbc02a748_b.jpg& data-rawwidth=&850& data-rawheight=&664& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&http://pic1.zhimg.com/v2-153a74e539979cbbc02a748_r.jpg&&&/figure&&p&PS:由于某种神秘力量的影响,第十期发在了第十一期后面,诸位看官见谅!如果想第一时间看到这些文章,那就关注我们的公众号吧~&/p&
今天我想给大家介绍一个人。有他在,全世界没人敢说中国人做不出好游戏。作为我的偶像之一,他并未被大众所熟知,但如果你不认识他,你对游戏的认识注定浅薄。他是“禅派”游戏的创始人、最有才华的国产游戏制作者。是的,[陈星汉 - Jenova Chen],一个将游…
多图,注意流量.&br&--------------------------------&br&买几本好书,坐电脑前不停的写,废寝忘食的写,编程是世界上最容易的事,你还不用碰底层,先学学基本流程控制和调用API,然后理解下分层思想,这就能写脚本了,然后有兴趣有时间就研究底层,没兴趣就弄好一门语言,专心写脚本开发好app,难度方面你可以放心,是个人就能学会,学不会是不可能的。&br&你要用java就研究好面向对象,一个月有点短但要是全力投入也不是不可能。&br&你知道自己学,这可比那些就差一个程序员的强太多了。&br&祝你成功,有问题可以私信我。&br&---------------------------------------------------------------&br&&b&今天是第1天.&/b&&br&&a data-title=&@题主& data-editable=&true& class=&member_mention& href=&//www.zhihu.com/people/0edcd80b65& data-hash=&0edcd80b65& data-tip=&p$b$0edcd80b65& data-hovercard=&p$b$0edcd80b65&&@题主&/a&&br&书买到了吗?开发环境装好了吗?大体理解接下来29天要学习的内容了吗?还有信心和意志力坚持下去吗?&br&如果决定搞安卓开发,应该学习java.如果决定搞iOS开发,应该学习Obj-C.&br&这两门语言是&u&&b&面向对象&/b&&/u&的语言.它们将程序看成一个个&对象&的互相作用,对象有自己的特征和工作方法.&br&一个App有视图,控制代码和模块三个部分.这被称为&u&&b&MVC模型&/b&&/u&.&br&一个成熟的类似ins的App的开发,要实现移动终端上的程序(&u&&b&Client&/b&&/u&)和专用的服务器上的程序(&u&&b&Server&/b&&/u&).&br&Client 和 Server通过IP协议上层的传输层协议(TCP或UDP)通信.&br&接下来29天,大体要学习的部分就是这些:&u&&b&1.程序开发基础;2.MVC模型;3.网络编程相关知识.&/b&&/u&&br&如果想继续学习,请私信我或留言.&br&Hope you will carry on your career.&br&&br&The end of this section.&br&------------------------------------------------------------------------&br&第1.5天 说明下情况,以免新手被坑&br&鉴于下面有知友说想看后续,于是决定更新.&br&不过更新前必须交个实底,本人学生一名,之前&b&只搞过MFC&/b&(可以理解成Windows窗体程序开发的一种方法),会数据库操作和网络编程,上过计算机网络,自学过操作系统和数据结构.可以称得上熟练掌握的编程语言只有c++.安卓和iOS开发都看过书,但掌握的不是很全面,实际经验也很匮乏.&br&但这些开发的本质,个人看来是一样的.并不会因为语言特性的些许不同和实际操作的一点区别而影响本质.因此希望通过更新这个答案也能巩固自己的学习.&br&(说通俗点就是我是个大菜鸡,非要装成高手写了这么个东西...)&br&-------------------------------------------------------------------------&br&今天是第2天.&br&规定一下格式:&i&斜体字&/i&是非必须看的,新手可以不看,&u&&b&粗体下划线&/b&&/u&是必须掌握的概念.&br&程序开发语言主要分两种:&br&0.面向过程式.(现在多数已经成为面向对象式的一部分,如C语言,在App开发中已经不常用)&br&1.面向对象式.(Java和Obj-C,C++都是面向对象的编程语言,这类型的语言在实际应用中最重要,必须学习掌握)&br&2.函数式.(阳春白雪,相对业务应用少一些,和App开发关系不大.如果在以后希望深入学习算法等,可以考虑学习一门)&br&&br&App开发的核心是程序的书写.因此今天讲面向对象编程思路.(注意,是&思路&.具体的语法不会涉及太多)&br&面向对象的编程将&对象&(Object,物体)视为核心,对象的&动作&称为&b&方法&/b&,对象的属性(特性)称为&b&成员变量&/b&.&br&如果用面向过程的视角来看,成员变量是特殊的&u&&b&变量&/b&&/u&.方法是特殊的&u&&b&函数&/b&&/u&.&br&&i&可执行程序加载入计算机内存后摆放在三个地方:代码段(用于保存函数中的命令),数据段(用于保存全局变量和常量),栈段(用于保存函数调用函数的关系,还有一些其他信息,如上下文切换,这里没必要不介绍).&/i&&br&&u&&b&变量&/b&&/u&的本质是一块&u&&b&内存中的空间&/b&&/u&,能够记录一定形式的数据.&br&&u&&b&函数&/b&&/u&的本质是很多条指令,能够被执行并&u&&b&读取,计算,判断,修改一些&/b&&/u&指定地址&u&&b&变量的值&/b&&/u&.&br&&br&对象是方法和成员变量的集合.&br&类(class)是对象的集合.&br&&br&是不是很抽象?举个例子.&br&人类是一个&类&,某一个具体的人A是这个类的对象,A的体重是变量.人有一个方法叫做吃(记住,方法就是函数,函数就是指令的集合,吃是一个动作,也就是一堆指令),通过执行&吃&这个方法可以改变人的体重.&br&如果还不明白(其实暂时不明白也正常),就拆解的更细致一些:&br&类,就是某种对象的公共特征,比如人,是个人就一定有体重这个属性,因此体重是这个类的成员变量,这个类的每一个对象(具体的人),都有体重这个变量.&br&吃,就是这种对象都可以有的动作,是个人就可以吃,通过这个动作能改变一定的变量(比如人的体重等).&br&那么怎么用代码实现呢?(注意,不同语言的代码看起来不一样,但是实际本质是一样的.)&br&&i&下面有人喊要我讲Obj-C,那我就现学现卖了.&br&定义一个类.&br&@interface Human&br&{&br&&br&}&br&-void eat:(int)foodweightinKG;&br&@end&br&&br&@implementation Human&br&-void eat:(int)foodweightinKG&br&{&br&
weight=weight+0.15*foodweightinKG;&br&}&br&@end&br&&br&这就实现了吃一公斤胖0.15公斤的人这个&类&.&/i&&br&类,对象,函数,变量是以后开发的重要概念,必须熟练掌握.建议想学习的知友买本参考书,用于学习某门语言的语法.这个答案不可能特别具体的讲解每一个语法,但如果有资料辅助的话学习起来是不难的.&br&如果从后面来看我的答案,建议看到这里的时候找一些学习资料,学习一下某门具体语言的语法.这里重要的是理解这个思路,就是通过控制&对象&,修改对象的属性,调用对象的方法来控制程序的行为.&br&&br&The end of this section.&br&---------------------------------------------------------------------&br&今天是第3天.&br&今天主要讲程序设计中的一些基本问题和概念.&br&有些问题要强调一下:&br&
0.本人菜,能搞明白的只有c++,java会的相对比oc好一些,oc非常生疏.但基本原理都一样.&br&
1.看完这个基本上就有思路了,但还是要自己买书实践.篇幅所限不可能内容太完备.如果有具体问题还是要自己查找资料,结合实践解决.&br&
2.这么多赞确实出乎我意料,我会尽力更新.有问题也可以在下面提问,如果能解答的话我会尽力解答.&br&-----------------------&br&今天想告诉大家一些当初我在学MFC时候弄了很久才理解的很简单的道理.&br&一.一个App,甚至一个窗口程序,绝大多数功能,都不是靠自己硬写出来的,而是调用已有的库函数,套用已有的类,加上中间业务逻辑的代码,和自己的算法实现(如果有).&br&
就说最简单的Hello,world 这个东西如果要从一无所有的裸机(没有操作系统)上实现,必须得从头写向显示缓冲区中写数据的汇编指令(假设在8086上).&br&
这个工作量显然不小.但我们不需要这样做.只需要调用系统自带的库函数就可以解决问题.&br&
在Windows程序开发中,我们要画一个窗口,即使用调用WindowsAPI的方法,也要写几十行代码(注册窗口类,设置属性什么的),最后ShowWindow(),才能显示出来.这显然不符合面向对象的设计原则,而且增加了完全不必要的复杂程度.&br&
因此,绝大多数普通开发者(非底层开发者)的日常工作是:寻找一些适当的库,调用这些库中已有的代码,来进行功能的实现.&br&
因此后面讲的网络编程,不是叫你从头控制每个数据包里的每个字段填什么,而是只需采用适当的类(java有个Socket类,c++用socket函数从OS获取句柄),调用其中的函数(bind,listen,connect,accept,send,recv,close/sendto,recvfrom等等)就可以了.&br&
这就是一个非常重要的理念:分层模型.将复杂的逻辑分成多层来实现,上层只和自己紧挨着的下层交互,保证了层与层之间一定的独立性,为复杂应用的开发提供了可能.&br&&b&情况1&/b&.你的软件比较复杂,应该用分层.&br&
比如未来我们要开发一个小型社交软件(假设),那么首先我们要写一个服务端,服务端要记录用户的信息,对话的信息.可以创建一个用户类,用于记录用户的信息.再创建一个对话消息类,从高层上抽象用户与服务器发消息的过程,便于写客户端;再创建一个好友类,用于记录用户和朋友列表的对应关系(&i&可以思考一下朋友列表怎么实现?&/i&).再创建一个记录类,用于帮助客户端实现聊天记录的实时查看,搜索,管理功能.&br&
假设我们已经构造好了这些类.那么在新用户填写完用户名密码,点击注册按钮的时候,就应该创建一个对话消息类的实例(也就是这个类的对象),尝试向服务器发出一组消息,里面包含着新用户的用户名,密码(&i&或者密码的Hash散列,但这个目前先不讲&/i&),一些填写的资料等等.&br&
如果你在点击按钮后被调用的函数(称为&回调函数&,Call back function)中,没有使用你已经创建好的类,而是从头写了一遍TCP报文内容填充代码,那么这显然不是对已有层模型的良好应用.正确的做法是用你已经有的那个高层类的各个函数实现报文的填充.&br&
同理,如果你想创建一个客户到客户的好友关系,不应该自己从头改数据,而应该调用之前建立的好友关系类的成员函数.这样不容易出现问题(比如从头写的时候忘了考虑边界条件),也能大大节约开发,维护,升级(如果你把同样的代码拷贝了一份过去,那么你修改这段代码的功能的时候就必须把拷贝的那份也修改了!)的成本.&br&&b&
情况2&/b&.你的软件和操作系统内核交互,或者想要操纵硬件,那么必须调用系统的API(Application Programming Interface).这种情况下,你被迫接受了分层模型.&br&
这样说可能显得比较抽象不好理解.那么举个具体的例子.&br&
首先,如果你要判断2^17+1是不是素数,而且判断结束后的结果也不输出,就那么放着,那么当然可以不去碰系统的API.&br&
但如果你想把结果输出到屏幕,或者通过网络传输回服务器,或者获取传感器的信息等,那么必须调用操作系统提供的函数.因为操作系统利用地址空间变换,让你碰不到真实内存空间.调用这些API时具体的参数很多,需要时可以上网查找相应的函数参数和返回值的约定.&br&二.一个APP的开发分这几个部分,以安卓开发为例.这里假设大家都已经安装了Eclipse作为开发环境,并且都有Android开发包.如果没有可以去下载一下.这两个软件都是免费的.&br&新建一个空的Android工程.&br&&figure&&img data-rawheight=&582& data-rawwidth=&402& src=&https://pic3.zhimg.com/23749eddd095facd3815ca_b.jpg& class=&content_image& width=&402&&&/figure&大概长这样.&br&认识一下图中的文件和目录.&br&1.首先是src和下面的那个package(对就是那个图标像准星瞄准肿瘤一样的东西,好像看它裂成4块啊).&br&src是源代码文件夹.&br&解释一下,在java里一个package相当于一个&包&.&包&里可以有一个或多个*.java的源代码文件.编程的工作就在这些.java文件里进行.&br&2.然后是一些资源文件.在res目录下.&br&比如这个AndroidManifest.xml,这里面记录了一些文档信息.比如软件的版本,包的关系之类的东西.&br&又比如res\layout\main.xml(图中忘展开了,但是你自己建完工程点进去肯定是有的.),这个xml文档控制了你的App的一个界面,App有单界面和多界面的,咱们先死磕这一个界面.双击这个文件,看到的大概是这样的.&br&&figure&&img data-rawheight=&697& data-rawwidth=&1261& src=&https://pic2.zhimg.com/5dbedbad6ab779bf29ad2b9_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1261& data-original=&https://pic2.zhimg.com/5dbedbad6ab779bf29ad2b9_r.jpg&&&/figure&是可视化的.所以可以做&所见即所得&的编辑,就像编辑文档一样简单(当然了如果要考虑兼容其实也不是那么简单的,但初学者不用考虑太多).&br&&i&当然了,如果你想求根问底那满足你.&/i&&br&&figure&&img data-rawheight=&268& data-rawwidth=&723& src=&https://pic4.zhimg.com/db65a04dffae7ce7d4bbf9f_b.jpg& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&https://pic4.zhimg.com/db65a04dffae7ce7d4bbf9f_r.jpg&&&/figure&&i&这个的确很容易把初学者吓回去,但是不用担心大部分时间你是不用碰这个的.而且这个xml文档就类似html文档一样.不信你打开一个网页,右键-&查看源代码看到的也是类似格式的东西.用尖括号组表示一个段落,段落之间嵌套或并列,是xml文档的特点.目前不必深入.&br&&/i&然后就是一些其他的资源文件,比如drawable-hdpi里面有图片文件,用于显示.这个和网页制作是有共同点的.后面再介绍.&br&3.可执行文件.&br&&i&这里有必要介绍一下计算机程序的运行过程.&br&计算机程序的运行有两种形式:编译型和解释型.&br&先说编译型.(如C系语言)&br&首先,程序员采用各种高级语言(相对汇编码)编写程序.然后编译器把程序员书写的源代码分析,转换为汇编码,链接器链接多个文件,形成最终的可执行文件.最终发布的时候如果只发布可执行文件,那么用户是看不到高级语言源代码的.&br&再说解释型.(如php,asp等网页脚本语言)&br&首先,程序员书写脚本.然后解释器读取源代码,并动态的分配空间给程序中的变量,判断程序的走向,执行相应的动作.如果要发布给用户(当然脚本一般不发布出去),用户是能看到源码的.&br&&br&而Java就很特殊了!!!&br&Java编写的程序,首先经过初步的编译,生成了Java字节码.(一种比较底层的东西,但不能碰到具体硬件)然后把这个东西放到JVM上跑.因为JVM这个东西每个平台上都有,因此也就相对容易移植到不同平台上.这个JVM的全程是Java Virtual Machine,也就是一个虚拟机.所以性能相对就比较烂,不过现在大多数应用场合是不特别在乎运行性能的,反倒是开发速度和可移植性可维护性比较重要.&br&这个JVM也可以理解成一个大型的解释器(...)因此Java算哪种不好说,两种特点它都有.&br&然后呢,AndroidApp更特殊,在Java这么奇特的大背景下它也算特殊的.为什么呢?为了适配移动设备(低能耗等需求),出了一个东西,叫Dalvik Virtual Machine.这个东西的字节码和java字节码还不一样...&br&所以为了编写一个AndroidApp,你的Java源码经历了这样一个流程:&/i&&br&Java源码-&Java字节码-&Dalvik字节码-&.apk文件&br&
(与资源等打包)&br&&br&说了这么多,那如何得到最终的apk文件呢?&br&点击Eclipse上面那个绿色的箭头就可以了.&br&&br&The end of this section.&br&------------------------------------------------------------------------------&br&今天是第4天&br&今天计划继续研究第一个AndroidApp,HelloWorld工程的结构,并添加一个按钮控件.&br&今天将介绍&u&&b&回调函数&/b&&/u&的概念.&br&如果可能我更一个iOS开发的,毕竟也不能太坑想学iOS的...但是各位小伙伴记住原理都是一样的,只是具体实施方法有那么一些区别而已.&br&&br&&br&遇到点问题卡住了.这个答案更新可能比较慢....等我调一下&br&&br&好的,回来.&br&首先,建立完工程之后,如果没有现成的Android设备(如本人手头的老机器好久没用了得找找),可以建立一个AndroidVirtualDevice.这个在下载开发环境的时候会有AVDManager,在那个里面建立就行.&br&如果建立完之后start有问题,那么改环境变量.附一篇文章:&a href=&//link.zhihu.com/?target=http%3A//jingyan.baidu.com/album/91f5db1beb12d41c7f05e39f.html%3Fpicindex%3D3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度经验——实用生活指南&i class=&icon-external&&&/i&&/a&(如侵犯作者著作权请通知,会删除)&br&然后点击绿色按钮,会在刚才建的虚拟机中出现界面.就像这样.&br&&figure&&img data-rawheight=&796& data-rawwidth=&1610& src=&https://pic3.zhimg.com/4d5e146aa2b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1610& data-original=&https://pic3.zhimg.com/4d5e146aa2b_r.jpg&&&/figure&然后呢,工程里的那个R.java不要改,那个是自动生成的,用来配合你写的部分.&br&今天先把开发环境配置好.如果能顺利走下来建立工程打开AVD看到这个基本主要任务就算完成.有中间卡住的可以百度,百度不到可以下面留言问我.&br&然后如果想在界面上加点东西应该怎么办呢?&br&我试试改下main.xml.一会继续更新.&br&&br&好的,现在回来.&br&&figure&&img data-rawheight=&714& data-rawwidth=&1495& src=&https://pic4.zhimg.com/750ccbf39b9e4bae4c139e8b976e228b_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1495& data-original=&https://pic4.zhimg.com/750ccbf39b9e4bae4c139e8b976e228b_r.jpg&&&/figure&&br&这里你直接拷贝代码是不行的.要注意几点:&br&1.MVC模型中,你创建的&b&视图&/b&(在main.xml的可视化编辑界面中拖拽过来一个按钮)&b&和Button对象MyButton1是没有直接关联的&/b&.要让他们有关联,必须绑定.这个动作在代码中的findViewById中实现.至于那个id参数填什么,可以看你的R.java(别改,千万别手贱),点击那个东西一个个展开,R.java-&R-&id,里面一定有你刚才在视图里创建的那个button的id.找到他就可以了.&br&&i&这个东西的实质是一个类似宏定义的整数,打开R.java,你会发现一堆public static final class,里面有一堆int型的变量,那个其实就是类似于宏定义的按钮的类似&句柄&的东西,用MFC的类比.只要知道这个整数唯一对应着视图域的那个控件就行了.&br&&/i&然后下面的行为就是确定按钮的行为.这里通过setOnClickListener,实现了把自己的回调函数(onClick())绑定到按钮的被点击事件上.可以理解成一旦点击这个按钮,Android就会触发这个函数执行.&br&&br&接下来讲解下回调函数的概念.&br&之前&b&讲变量的时候我埋了一个伏笔&/b&,说&b&所有变量都可以通过他们的地址来读写&/b&.&br&好的,现在回到这个伏笔.&br&可以认为setOnClickListener这个行为传入了一个对象地址,这个对象的地址由new OnClickListener得到,而里面的那个OnClick()函数认为是新创建的这个OnClickListener对象的一部分.&br&&br&这个行为就类似于C++当中传函数指针.如果能理解最好,不能理解就记住这么写就能好使(是不是要求太低了...).&br&The end of this section.咦,this怎么变色了.&br&--------------------------------------------------------------------------------&br&PS[0]:再强调一下,这个东西本人也是第一次写(指的是在这个开发环境下写,之前可视化的开发一直写windows窗口程序的).所以可能更新过程中突然卡住了.答主应该不会弃坑.&br&PS[1]:看这架势有可能不到30天就更完了.如果这样的话很可能太快有人跟不上,有问题随时留言问就好.当然能搜索的请自觉先搜索,搜索不到解决方案再来问.&br&PS[2]:答主好久以前安装的开发环境,如果要开发环境的话我去找找还能不能找到那个包了.这个安装的时候实在太麻烦了,因此学习Android开发我也是拖了很久.希望真的有兴趣开发App的朋友们不要仅仅因为安装过程中遇到一些困难就放弃.尤其是之前没有开发可视化程序经验的新手,如果能成功看到自己写的不是黑框框的东西,会很大程度上提高对编程的兴趣.(当然后来我又主动退回到黑框框里去了,这是后话.)&br&--------------------------------------------------------------------------------&br&第4.5天.&br&咨询下大家意见.我打算接下来25天(可能用不了那么久就完结了)讲快点,做一个聊天工具的开发.这个怎么样?能接受不?还是先回顾下前面?&br&iOS那边我一会看看,争取更一个,今天Android那边打算先停一下,因为前面侧重点太靠这边了,而且这推进速度也不算慢.但注意,原理是相通的,细节略有不同.毕竟前面一直都没怎么偏向iOS这边,不能太厚此薄彼.&br&等下,答主换台mac回来接着更新.&br&好的回来了.&br&首先要搞iOS开发得有台MacOS设备,注意,没有Mac可以弄虚拟机,或者借一台,本人的mac是借的.虚拟机也完全一样,就是有点卡.&br&还有必须说明的一点就是要开发iOS App的过程不需要开发者账号,但如果想发布在AppStore或者在自己没越狱的iOS设备上用,那必须得有开发者账号.付费之后就可以使用.价格记不清了,不低也不算高.如果不买开发者账号,就只能在模拟器上跑.&br&另外就是软件方面.有了MacOS设备之后在AppStore下载安装一个XCode作为开发环境就可以了.&br&------------------------------------------------------------------&br&今天是第5天&br&那么想学习iOS开发的朋友们请打开你的XCode.&i&学习Android开发的朋友可以把之前做的HelloWorld工程自己做一做,加上一个按钮.你在虚拟机里运行完一遍之后可以到你的工程文件夹下找*.apk,然后放到你的真机里去跑跑看.&/i&&br&&br&File-&New-&Project-&iOS-&Application-&SingleViewApplication(暂时选这个).Device那里暂时选Universal就行.&br&然后选择一个喜欢的位置放置工程文件.&br&为了验证你之前的开发环境配置是否正确,点击上面的三角形开始按钮,在模拟器(Simulator)中执行程序.&br&(下面这三段的第一个版本有问题,已经更正.)&br&应该能看到一个模拟器的界面弹出来,当然了整个屏幕不一定放得下,可能需要往上拉右面的滚动条.什么都不用做,等待片刻之后会出来一个界面.你会惊奇的发现它居然和LaunchScreen.xib的视图是完全一样的(不一样就见鬼了),当然,不一会它就没了,取而代之的是一个空白界面.&br&所以这里LaunchScreen.xib表征的就是启动时预先加载的一个Logo摆放的地方.&br&好的,那么由之前几天提到的MVC模型,或者按我个人理解:App工程=源码+视图+资源文件+杂七杂八&br&&br&既然要系统的学习,那么就应该掌握下iOSApp工程的文件结构.&br&等我出去看一下怎么截图.MacOS下我不会截图...&br&好的学会了.图解如下:&figure&&img src=&https://pic1.zhimg.com/51ec8cdc914dcae6f859e384_b.jpg& data-rawwidth=&240& data-rawheight=&355& class=&content_image& width=&240&&&/figure&&br&上方为图1&br&&figure&&img src=&https://pic4.zhimg.com/b209af4a6ffa8ab1b10ea289fe8bc5b3_b.jpg& data-rawwidth=&573& data-rawheight=&244& class=&origin_image zh-lightbox-thumb& width=&573& data-original=&https://pic4.zhimg.com/b209af4a6ffa8ab1b10ea289fe8bc5b3_r.jpg&&&/figure&&br&上方为图2&br&&figure&&img src=&https://pic2.zhimg.com/64b1dab71e1cd_b.jpg& data-rawwidth=&787& data-rawheight=&116& class=&origin_image zh-lightbox-thumb& width=&787& data-original=&https://pic2.zhimg.com/64b1dab71e1cd_r.jpg&&&/figure&上方为图3&br&&br&那么图1中的各个文件都有什么用处呢?&br&首先看,有一堆.h和.m文件;*.h文件不必说,自然是C系语言都有的头文件.*.m文件是Obj-C的代码文件,就类似于*.cpp文件和*.h文件的关系.由于声明和实现分离是C系语言一贯的德行,而且前面也提到了Human类的接口声明在@interface后面,实现在@implementation后面,我们在这里也就不多说了.&br&&br&接下来说说具体每个文件的用途.&br&AppDelegate.m,里面装了许多回调函数.读那个函数名字,就知道它是在什么时候被调用的.有准备进入后台,已经进入后台,准备回到前台,已经回到前台等事件的监听.监听到事件后会调用相应的回调函数.&br&ViewController.m,里面装载了界面加载和内存不足时调用的回调函数.&br&Main.storyboard,这个是工程的主视图文件.因为建立工程的时候我们选择的是SingleView型的,所以这里只有一个.&br&你可以在这个界面上加入一些控件,比如按钮文本框之类的.当然了,这里的东西现在只能看,不能点,点了也没用,因为对应控件事件的处理函数没有写.&br&那么在哪里写这些事件的处理函数呢?答案是在ViewController.h中.注意这里XCode提供了一种很方便的绑定控件实例与事件回调函数的方法:拖拽.&br&&br&首先打开ViewController.h,和Main.storyboard,要保证两者能同时被看到.然后右键点击你要设置事件的控件,点住相应控件右侧的圆点,向ViewController.h中拖动.然后会弹出一个对话框让你填写函数的名字.给函数起一个好记的,含义充分的名字,以确保自己不会弄混乱.然后在&b&&u&生成的函数体(注意在ViewController.m中!!!)&/u&&/b&中填写适当内容就可以了.&br&注意,C系语言声明和实现的分离,决定了&b&&u&新的函数体在ViewController.m中.找到对应的函数,填写适当的内容即可.&/u&&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/0cc02abbf55dee1aefa3d_b.jpg& data-rawwidth=&754& data-rawheight=&462& class=&origin_image zh-lightbox-thumb& width=&754& data-original=&https://pic2.zhimg.com/0cc02abbf55dee1aefa3d_r.jpg&&&/figure&如图所示.&br&&br&做到这里之后可以休息一下了.今天的内容大概就是这样.求赞求鱼丸甩起(误)&br&&br&The end of this section.&br&----------------------------------------------------------------------------------------&br&今天是第5.5天.&br&看一下题目.要独立开发ins类的app是吧?&br&答主没用过ins,所以可能做的和题主想要的有点出入.&br&然后今天讲什么?咨询下大家意见.突然感觉没什么可讲的了.这哪用的上30天啊(笑)&br&&br&初步计划讲讲AndroidApp的结构,Activity之间的关系,App的状态.&br&然后做个比之前Helloworld稍微大一点的东西.&br&iOS那边先放一放,安装开发环境也挺折腾的,想学iOS的朋友先配置下开发环境把之前那个做出来吧.&br&----------------------------------------------------------------------------------------&br&今天是第6天.&br&讲一下AndroidApp里面Activity是什么.&br&Activity我个人的理解就是视图.可以认为App整体是一个网站,打开这个App之后看到的第一个视图是主页,页面之间可以来回跳转.&br&因此,可以认为Activity是一张类似于网页的东西.&br&仔细观察会发现Activity跟网页真的很相似.还记得那个main.xml吗,里面的布局和html布局的语法是很接近的,甚至有div.&br&布局的时候要考虑这样几个问题:&br&1.Android设备种类多,屏幕分辨率五花八门.网页一般兼容和的屏幕问题就不大了,而Android设备屏幕分辨率有:&br&320X480&br&460X640&br&----------------------上面这两种不常见.------------&br&480X800//这个还有一些&br&480X854//小米1就是这个分辨率&br&540X960//HTC以前的机器用&br&640X960//坑爹3:2,好像魅族用过,相对少见&br&0P,比较主流&br&&br&//1080P,高端机有采用的.&br&据说还有2K的,这个就更好了.&br&&br}

我要回帖

更多关于 笑脸是什么牌子的衣服 的文章

更多推荐

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

点击添加站长微信