一款fc游戏雪山场景横版的,一开始一个小人,屋顶会掉万朵雪堆秀和冰刺,走一会就走悬崖,下面全是刺,要冲刺

头图加载中...
小嘟妈正在慎重考虑春节是应该在家休整还是找个地方去玩玩的时候,忽然有一天,收到了蚂蜂窝的亲子游产品体验邀请。啊?天上掉馅饼了?居然还有这样的福利吗?看来每一次带儿子出游回来的两万字游记没有白写。
有这样的机会可以出游实在太令人兴奋了,免费不是关键问题,关键是对小嘟妈勤勤恳恳码字的认可啊,同时也说明写出来的东西对大家是很有参考价值的,太有成就感了。
因为要带儿子去,去之前做了不少功课,用蚂蜂窝APP看了无数篇关于的游记和攻略,在这里感谢蚂蜂窝上的各位朋友,出发之前全靠大家的攻略,特别是那些带娃出去玩的家长,回答得非常迅速,谢谢你们这些活雷锋们。
,这个地方听起来很熟悉,知道是人去度假的首选海岛,度个蜜月什么的。虽然离的很近,但是一直很无感,这次正好去看看大韩民国的欧巴到底是个什么样子。
蚂蜂窝给我们提供的是4日亲子自由行套餐,包含了往返机票,天空花园济州1酒店(Hotel&SKYPARK&Jeju1)住宿含早餐,以及接送机服务。其他的自由行部分我们自由安排。时间是固定的四天三晚,第一天晚上6点的飞机,实际上是三个整天的游玩时间。据说济州岛不大三天就够了,我还是觉得时间有点儿短,似乎有很多的地方可以去呢,要认真的看攻略研究一下。
先来几张照片看看我们爬雪山、过草地、乘着小火车的童话之旅
济州岛攻略准备篇
虽然时间短,毕竟要出国,准备的东西,查找的资料还是挺多的,看来蚂蜂窝旅游攻略这个APP没有白下,查攻略,看游记,有了它对当地一切几乎了如指掌,偶也瞬间可以像当地人一样玩耍了。
免签,拿着本护照就可以出门了,随时可以安排一次说走就走的旅行。
飞2.5个小时,我们的飞机是国航往返,去程CA711&18:05-21:35,返程CA712&22:35-00:10,属于充分利用时间的航班,相当于3个整天的游玩时间。
关于座位,还是提前预定了比较放心,国际航班5岁以下的儿童是不可以提前网上值机的,必须去机场办理,所以提前选好一排的座位就比较重要了,可以不用太早去机场办手续。国航航班可以提前提前打电话95583预订座位,原本想预订儿童餐的,客服说此次航班不提供儿童餐预订,这方面还是海航比较好。
我们住宿的天空花园济州1酒店(Hotel&SkyPark&Jeju1)位于济州市的繁华地带,旁边就是鼎鼎的,开业不久的全新酒店。
一般的住宿选择是这样的,先看看分区域地图,住宿一般就是在北部的新济州市,南部的市,或者旅游区的中文区。豪华酒店在中文区比较多,乐天酒店。
带孩子出境游,我们每次都要买一个旅游险,保障意外、医疗、航班延误、信用卡盗刷之类的风险。防患于未然总是有必要的,我们买的是美亚的“美亚乐悠游海外旅行保障计划”“美亚小探险家少儿境外旅游保险计划”。在开心保(www.kaixinbao.com)买的,这次买的时候发现有很多公司也推出了旅游险在促销很便宜,对美亚的印象好一些,也就没有改别的了。
的酒店都有wifi,实测之下我们住的酒店信号也是不错的。不过我们对实时网络的要求比较高,所以提前定了Wifi。网上有各种Wifi促销活动,首日1元之类的,一般的Wifi的价格是在18元左右,我们出行的时间临界春节了,在携程预订的是22元一天,四天费用88元(晚上6点之后取或者早上6点之前归还减免当天费用),机场取还很方便的。
我觉得这个Wifi还是有用的,对于这种语言不通的地方,实时地图是多么的重要啊,如果没有网络估计不是丢在外头就是公交车坐过站的下场。
和的时差1小时,北京时间9点,济州岛是10点。到了以后要先调下手表,手机只要是自动上网的自动更新时区很方便。
出门之前在蚂蜂窝先查了一番攻略,的最佳旅游季节是春秋两季,这天气不去暖和的海岛有些奇怪,不过如果不是冬季来济州岛又怎么能看到白雪皑皑的汉拿山呢,所以说相同的地方,不同的时节,都可以规划出靓丽的行程。
查了下天气预报,这几天的天气最高气温是10度左右感觉很是温暖了,这边的温度好像也差得不是太多。
所以,我们带的衣服囊括了羽绒服、冲锋衣、抓绒、长袖T恤、雨衣等等,三天的行程也装了满满一大箱,后来发现天气预报真的靠谱,衣服居然差不多都用上了,也没算白装这么多。
人的英语不是很好,酒店前台的英语还是可以沟通的,问个路什么的一切OK。韩国的服务业人士很有意思,说的最流畅的就是“一万”“四千八百”,基本上711便利店、小卖部、出司机,都是可以用中文说钱数给你的,我接下来究竟应该是和他们说中文还是英语?通常是他说“四千八”,我给了钱之后说“Thank&you”。有些地方的服务人员明显中文比较好,莲洞酒店附近的小店里很多人可以说中文,保健路的餐馆也是有中文服务人员的,接机导游说的好“我们都在努力的学习中文,因为游客太多了”。
韩元兑换,始终没想通的就是为什么到了在ATM&取现要比提前在银行兑换的汇率还要好,但是事实就是这个样子的。
华夏银行第一次境外取款免费这件事情估计常出国的人都知道的,不过我们没有这个卡。我们一直用的是银行的白金卡,也是取现免手续的。
中行汇率&100韩元兑换0.5944人民币,也就是1人民币=168.23韩元。
当天在济州机场ATM取现汇率100韩元兑换0.56847人民币,也就是1人民币=175.91韩元
当天直接取了40万韩元,到最终回到机场离开的时候,手头还有5万多韩元没用完,在机场消耗掉了。需要买的东西都提前在乐天免税店官网买好了,在全程未刷卡,全部用的现金交易。
关于本地交通
我们开始打算坐一天公交车,包一天车的,也算体验下多种多样的交通方式,后来发现以我们带娃慢慢玩的方式,不适合一天跑很多景点,包车就适合一天跑好多地方的才有价值。最终,我们选择的是公交车加出的模式,精力充沛的时候和方便的时候就坐公交,累了就打车。
的交通,我们第一个参考的是蚂蜂窝的游记,各路神仙给出的提示,以及问答里指路人靠谱的回答。
此外,出行靠的是韩巢网(www.hanchao.com)的地图和随身wifi配合,至少坐公交车的时候实时可以知道是不是快到地方快下车了。还有一个是济州通(www.jejutong.com),可以看各条公交车的线路,其实看了也记不住太多,主要是可以看看地图全面的了解下酒店、景点的位置。
公交体系分为市内的和市外的,我们住在莲洞,所以市内就是济州市内的,靠近北部。很多景点都要到市外巴士总站(Bus&Terminal)换市外公交车,有些市外公交车也是经过我们住的地方的,就可以直接上车了。
要说一下的是市内的公交车貌似是不找零钱的,1200韩元还是多少一次,所以一定要备好零钱,我们第一天就很丢人的上了502路,然后说去Bus&Terminal,然后还糟糕的只有1000块零钱了,然后就给司机1000,看司机说不够的样子,就直接换10000,司机又摇头,我又给1000,然后司机大叔无奈的收了1000块挥挥手让我走了,然后我第一天就占了人家一千多块的便宜。
脑子里浮现出这样的画面,一个老外在的公交车上上车后一手拿一块,一手拿一百,给司机一块不够,然后给司机一百太多,然后语言不通司机无奈的样子,估计就是和我现在一样的。后来就学乖了,留了一堆千元的钞票坐车用,但是也再也没有坐过不找钱的市内公交车。
市外的公交车都是可以找钱的,说好去哪里,然后给钱,司机输入后机器可以自动吐出找回的零钱,比较方便。
去之前还是高估了自己和棒子的沟通能力,原来有时候真的是听不懂啊,开始第一天坐公交车那是摸不着头脑的,经过三天的历练终于搞清楚了状况。写写心得给大家。
如果去之前打算做公交出行,要做好如下准备。先搞清楚自己要去的地方坐什么车,然后搞清楚去的地方的韩文是什么,写下来一定要写下来,拿给司机看,毕竟公交车不比出,出租车你可以慢慢和司机连比划带说,公交车人家停车,收钱,开走,不可能一直在那里和你说影响一车的人。
每个景点去哪里蚂蜂窝有无数的攻略写的很清楚了,我就把自己去的几个地方列出来吧。我们住的地方是莲洞,,交通比较发达,出门左转不远就有个26,502和600路的车站,名字好像是Gr&Hotel。
&ECOLAND,从门口坐26或者502路到达市外汽车总站(英文&Bus&Terminal,这个英文公交车司机是听得懂的),然后坐730到达石文化公园下车。730车费去程是在市外公交总站窗口买的,两个人1300*2,返程的时候不知道为什么收了3600,猜想是收了1000小朋友的费用。
&汉拿山御里牧登山口,步行到汉拿医院(英文Halla&Hospital,每次我们坐公交车回来说的都是这个名字,司机也还明白了),乘坐740到达。车费两大一小3600。
&返回酒店乘坐600路公交返回到Halla&Hospital。4500*2
&,从门口车站乘坐600路或者步行到Halla&Hospital乘坐780路到达,这个我们直接给司机看的中文区的手机图片,不知道怎么说。600路是机场专线车费要贵一些,返程坐的600是4500*2,去程780是2800*2。
&打车两次,一次是从市外公交总站打车回酒店,打表4300,第二次是从汉拿山打车到,没有打表司机开价40000,原因是过去就容易放空还是什么的,我们也没砍价,最有意思的是我们在柱状节理带逛了有2个小时吧,出来居然在公交站又碰到了这个司机,看来真的是没有拉到活儿啊,这么久了还在转悠。
&关于包车,出行之前也大概查了一下,印象里韩语司机的是人民币600左右,英语的是800左右,中文的1200。
关于游玩地点的选择
最后一天去中文区的时候拿到一份宝贝地图,回来写游记的时候参考了很多信息。就是这个了,正面地图、反面是的地图。
还有着一本玩翻济州,是在600路公交上拿的,因为看着是每个座位都有,免费摆摊的,就给拿回来了。公交车线路介绍的比较详细。地图也比较清晰。
不大,但是可以玩的地方真是不少,因为是海岛和火山岛,还有很多的自然景观可以去参观。这里有很多韩剧取景地,也是有很多可以说的故事。另外,人很能折腾,各种主题弄出无数个博物馆来。有时候同一个主题,你能找到很多个博物馆,完全是搞疯外国人的节奏,多么希望能有一个全面的中英韩语对照名称来救救我啊。
经我的不完全研究,得出的结论,也不排除有错误的可能性啊,总之我是这样选的。
先来说主题公园和博物馆系列:
泰迪熊博物馆
泰迪熊博物馆是很有名的一个景点,但是,实际上有三个,建议选好了再去。
(1) 泰迪熊博物馆1(Teddy&Bear&Museum)
位于内,这个地方由两个展厅The&History,The&Art,以及室外区域Teddy’s&Forest组成,还有一个纪念品商店。两层展厅中的泰迪熊基本都是在玻璃展柜中陈列的,就是像我们常见的博物馆展厅陈列的样子,以泰迪熊为角色展示了很多著名的历史事件,以及模拟很多各种艺术作品。室外区是个照相的好地方。另外,很久以前有一部韩剧《宫》中有很多很萌的泰迪熊造型,就在这里陈列及取景的。
这里为很多人所诟病的是说不能和泰迪熊亲密接触。
(2) 泰迪熊博物馆2(Teddy&Bear&Safari&Teseum)
这个在竞园旁边的那个,据说是可以很多和泰迪熊亲密接触的地方,可以抱着各种熊照相,还有个大熊乐园可以玩。
(3) 朝安泰迪熊博物馆Joanne&Bear&Museum
这个也在中文区附近,离比较近,中青旅给我的行程里就附带这个门票优惠券,据说是私人收藏的泰迪熊展览。
我们最终选择的是Teddy&Bear&Museum,关于是否能近距离接触的问题,我们并不纠结,最终证明儿子玩的也很开心,还知道了很多历史事件知识。另一方面,这里行程安排起来方便。
票价:成人8000,儿童6000
活生生博物馆(Alive&Museum),也叫做爱来魔相艺术馆,4D错觉艺术体验馆
这个也位于内,开始的时候我一直以为活生生和爱来魔相是两家不同的,最后找到了网站才确定是同一家,Alive&Museum在一共四家,只有中文区这一家。反而是网上写的有一家中文翻译为“爱来魔相4D艺术馆-城邑馆”的英文其实是叫Trick&Art&Museum,也是4D体验的,不知道为啥中文名字都一样,搞得人头晕。
这个其实就是3D错觉照相玩儿的,我跟儿子跑去体验了一把,小嘟玩的很开心,回到家还在津津乐道他倒立了一次其实是躺在地上。
票价:成人9000,儿童7000
信不信由你博物馆
位于。某外国人收集的世界各地奇奇怪怪的玩意儿,后来看游记发现很多照片和场景都很惊悚,怕吓到小朋友就没去。
巧克力博物馆
这个也有两个,一个在大静邑很偏远,另一个在中文区叫Chocolate&Land,这个我们是打算有时间就去体验下做巧克力DIY的。
世界汽车博物馆
这个是私人珍藏汽车的博物馆,小朋友可以参与考驾照的互动活动,小小赛车手。
小人国主题公园、济州迷你乐园,是两个不同的地方
对小人国的名字很感兴趣,后来知道是一个儿童和大人都可以玩的地方,是微缩景观园,的世界公园知道不,的世界之窗知道不?就是世界名建筑的微缩园。百思不得其解,为什么这个也有两个不同的公园。
迷路公园也有两个:金宁迷路公园Maze&Park,迷宫公园Maze&land
刚看到还有第三个济州茶园的茶园迷路公园,迷宫真多啊。
以上是我重点关注过的,有过去的意向的博物馆类地点,另外值得一去的对于小女孩来说的Hello&Kitty主题乐园是首选。还有个据说很大的海洋馆。另外还有“济州玻璃之城”和“济州玻璃博物馆”,“雪绿茶博物馆”和“济州茶园”,还有鼎鼎的“济州爱情乐园(Loveland)”,这个我也是久仰大名了,虽然带着娃是不去的,知道么还有“健康与性博物馆”和“世界性文化博物馆”与之匹敌。
接下来是风景类地点:
第一高山&--&汉拿山,在的正中间,晴天从各个方向都是可以看到的。冬天是可以看到大雪的,虽然很多人都说汉拿山很难爬,不适合小朋友,但是我们还是决定一定要去爬爬看,冬天爬汉拿山一定要提前准备冰爪,以便在冰雪道路上行走。
汉拿山的登山线路有很多,具体介绍在这里都有&http://www.hallasan.go.kr/chinese,可以根据不同的能力来选择。我们选择的是比较好爬得御里牧线路,其实也仅仅是走了一小段而已,主要是带小朋友来看看雪玩玩雪,今年都没有下雪。
票价:免费
为了登山安全是有时间限制的,地图上摘的,其实网站更实时。
ECOLAND&Forest&Train森林小火车(丛林中的火车旅行生态公园)
我们对五彩缤纷的英式小火车完全没有抵御能力,这个公园是第一个确定要去的地方,坐着小火车游森林公园。非常推荐的一个地方,有静静的湖水,徒步的森林和儿童的乐园,以及六辆英式小火车。我们在里边玩了6个小时,而不是大家常说的2小时,直接打乱了后续的计划,对于大人的吸引力可能一般,但是孩子玩得非常开心。
票价:成人12000,儿童8000
南部海边火山形成的独特的岩石效果,确实很独特的地理现象。应该来看看。
票价:成人2000,儿童免费
火山口,看照片风景很美,游人很少,韩剧取景地之一。离ECOLAND很近,谁成想在ECOLAND玩了很久,没有去成。
成山日出峰,牛岛
可以看日出日落的地方,可以环岛看风景,可以看海女的地方。这两个地方安排一天很合适。
此外,涉地可支、如美地植物园、涉地岬、龙头岩、民俗村……还有很多,在偶来小路上悠闲的走一走看一看,带孩子出行这种边走边看的意境最是向往了。
最后看看有多少地方可以玩,再看看有多少名字是差不多的?地图上标注的应该比较全了。
关于门票预订
出行之前照例在网上搜索了一下提前预定的门票,发现可以提供预订的网站很少,另外原本这些地方的门票就不贵,所以优惠也比较少,不如自己直接去窗口买的方便。:ECOLAND网上预订票价成人63,儿童45,窗口去买的是68,45;泰迪熊博物馆45,38,窗口买的45,34。活生生博物馆40,30,窗口买51,40,只有这一个是便宜的,而且网上所有的叫法都是爱来魔相4D艺术馆。景点在蚂蜂窝、携程、途牛、韩游网、淘宝都能订到,但是所有的景点名称如前所述都是混乱的,只能靠地址识别,万一提前订错了票更麻烦。
原本打算把和中文区的博物馆放在第二天,最后一天爬汉拿山,然后回家休息的,后来看天气预报最后一天下雨,于是进行了行程调整,把看风景的汉拿山和柱状节理带安排在了一天,虽然花掉了40000元韩币打车过去,但是阳光明媚的看风景实在是太美妙了。
Day1&-济州,出发,晚上住。
Day2&冬日童话亲子篇:ECOLAND生态小火车
Day3&阳光明媚风景篇:汉拿山,
Day4&室内亲子篇:中文区,泰迪熊博物馆,返京
还是地图比较直观,可以对地理位置有个大概的印象,我们的最终行程。
我们去的,少了个,印象里没有宣传册。
这些通通是没有去的,但是还比较感兴趣,还有很多册子没有拿,韩文是多么的难以识别啊,刚发现地图居然放反了都没有发现~↓
大拉杆箱一个,我们出游从来都是拖一个158的大箱子,把所有东西装进去托运。
双肩背三个:一人一个
电源转换插座:准备一个万能的转换插座就可以了,我们一般是再带一个一变三个的插座,可以充相机、充手机、充PAD,充WIFI,充充电宝。
关于带孩子出游必备
我们每次出行都要带的东西。
小书包:装一些小朋友的小东西,其实就是为了让小朋友从小养成自己的东西自己背的概念,我们没有准备儿童旅行箱,是怕他自己累了不肯拖箱子的时候又成了我们的累赘。
水壶:陪着小嘟走遍大北了,这次冬天穿得太多不好背,出镜机会不多。
免洗喷手液:BabyGanics的,没水洗手的时候我们都是用湿纸巾擦了之后,再用这个喷喷消毒。
药品类:美林和感冒小片随身携带,万一生病呢。
创可贴、碘酒棒:这两个夏天出门必备,冬天用的可能性比较小
儿童书、画笔:在飞机上打发时间用
儿童旅记本:这次出行小嘟开始写日记了,非常萌萌哒的日记啊,不少商家开发了这种产品,充满童趣,还附带贴纸等等,很适合小孩子使用。这次小嘟都是用画的,看着很有意思。
Day1:夜幕来临之济州岛,我们来了
离春节只有一周的时间了,的交通开始逐渐的好起来,6点钟的航班,一般建议国际航班是提前三小时到机场,其实也用不了那么长时间。
3点钟准时从家里出发,预计以目前的交通状况半小时应该能到机场,谁知道还没上机场高速就开始堵车,高速上有事故,堵得一塌糊涂,郁闷。幸好很快挪过了事故现场,原来是一辆机场大巴坏在了半路,占了两条车道。4点钟到达T3航站楼,办登机手续的人不太多,排队期间,小嘟在认真的看我刚刚绑上去行李牌,好奇宝宝问“妈妈这是什么?”
“行李牌,这上边写着妈妈的名字、电话,如果行李丢了叔叔就可以打电话找到妈妈了”
很快就拿好了登机牌,登机牌标准照进行时,先得自己研究下写的是什么,哈哈这是要给国航做广告吗?
下一个步骤出关、安检,这条路走了很多次了,路标还是很清晰的,进这个区域就需要刷登机牌了,没有的话是进不去的。走过长长的,去坐轻轨车。车一共停靠三站,国际出发E登机口在最后一站。
安检时出了个小插曲,小嘟妈的双肩背包过了机器,安检人员说你这包里是不是有把刀子?啊?怎么会呢,打开一看,欲哭无泪,出门之前在家里遍寻不着的军刀好好的躺在书包的夹层里,估计是哪天去公园的时候拿着削苹果用的忘记拿出来了。这个怎么办呢,扔了好心疼啊。“你什么时候回来?寄存吧”原来首都机场已经有了这么好的服务,东西30天内可以寄存,返程时凭登记的护照号在到达厅的服务中心领取,太好了,赶紧欢天喜地的去做了寄存。以后可不能这么马虎了。
安检之后,左手边就是取随身Wifi的地方,很方便,背后就是日上免税店。
拿来了机器一定要先试一下手机是否可以连接上Wifi设备,第一个设备我们俩的手机就死活连不上,后来换了一个才可以的,要是不试试机,到不能用可就悲剧了。
陪伴了我们几天的随身Wifi,很好用,充好电足够一天用的,信号也不错。
诸多事情做下来,到登机口的时候离登机也就10分钟时间了,傍晚的飞机还能看到这样美丽的风景。
不一会儿就开始登机了,上飞机的小朋友还挺多的,是和我们一样去玩的吗?爸爸去接水了,小娃看大家都登机了开始着急了,望着飞机问我“爸爸怎么还不回来啊,飞机飞走了怎么办啊”,操心的小娃又开始担心了。
爸爸怎么还不来?怎么还不来?坐立不安的等待中。
本篇游记共含23475个文字,421张图片。帮助了名游客。
(C) 2018 Mafengwo.cn
京公网安备号
新出网证(京)字242号 马蜂窝客服:国内 海外 +86-10-
北京蚂蜂窝网络科技有限公司一款fc游戏雪山场景横版的,一开始一个小人,屋顶会掉雪堆和冰刺,走一会就走悬崖,下面全是刺,要冲刺_百度知道
一款fc游戏雪山场景横版的,一开始一个小人,屋顶会掉雪堆和冰刺,走一会就走悬崖,下面全是刺,要冲刺
一款fc游戏雪山场景横版的,一开始一个小人,屋顶会掉雪堆和冰刺,走一会就走悬崖,下面全是刺,要冲刺跑才能过去
我有更好的答案
文;绝岭雄风...根据史泰龙同名电影改编的..:Cliffhanger.中文:巅峰战士&#47..
采纳率:63%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&p&&b&题主,快看这里快看这里,是不是这种感觉!&/b&&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/246208& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic2.zhimg.com/80/v2-dda3e2c99be736f2b9a8bc_b.jpg& data-lens-id=&246208&&
&img class=&thumbnail& src=&https://pic2.zhimg.com/80/v2-dda3e2c99be736f2b9a8bc_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/246208&/span&
&/a&&p&现在请躺在这软趴趴的床上,身体靠着闪烁着温暖光芒的壁炉,裹上小棉被,看着窗外的雪景,打开我给你推荐的书籍吧~&/p&&p&&br&&/p&&p&&b&第一本,浮生六记---沈复&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-45187d86dee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1242& data-rawheight=&922& class=&origin_image zh-lightbox-thumb& width=&1242& data-original=&https://pic2.zhimg.com/v2-45187d86dee_r.jpg&&&/figure&&p&沈复是小清新届的杰出代表人物,他选择的人生,恣意潇洒,优哉游哉。读他的文字,仿佛已和他一起囿于田园之乐,徜徉于山水之间。&b&林语堂也视其知己,“读沈复的书每使我感到这安乐的奥妙,远超乎尘俗之压迫与人身之痛苦。”&/b&&/p&&blockquote&闲来静处,且将诗酒猖狂,唱一曲归来未晚,歌一调湖海茫茫。逢时遇景,拾翠寻芳。约几个知心密友,到野外溪旁,或琴棋适性,或曲水流觞;或说些善因果报,或论些今古兴亡;看花枝堆锦绣,听鸟语弄笙簧。一任他人情反复,世态炎凉,优游闲岁月,潇洒度时光。&/blockquote&&p&他和芸娘的爱情,真挚动容,让人在寒冷的冬天盼望起能在春天不期而遇的爱情。&/p&&blockquote&“他年当与君卜筑于此,买绕屋菜园十亩,课仆妪,植瓜蔬,以供薪水。君画我绣,以为持酒之需。布衣菜饭,可乐终身,不必作远游计也。”&br&&/blockquote&&p&我买的就是如图张佳玮译的版本,张公子译的很好,尤其是闺房记乐这一章,反复看了好多回。芸娘真是上下五千年全中国最可爱的女人之一!&/p&&p&&br&&/p&&p&&b&第二本,岛上书店--加·泽文&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-557137fac7deb00bb863d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&486& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&486& data-original=&https://pic2.zhimg.com/v2-557137fac7deb00bb863d_r.jpg&&&/figure&&p&这是一本典型的治愈系小说。一个事业失意、爱妻去世的中年大叔得到爱的救赎,逐渐走出阴霾的故事。&/p&&blockquote&这些年,我学到的是爱过然后失去只有更好,等等等等,和跟某个你并不是很喜欢的人在一起相比,更好的是一个人过,你同意吗?&br&&br&因为从心底害怕自己不值得被爱,我们独来独往。&/blockquote&&p&这本书在豆瓣上也褒贬不一,但是它的的确确治愈过曾经某段时间内工作失意还失恋的我。让我相信,&b&每个人的生命中,都有最艰难的一年,经历过这一阶段,人生变得美好而辽阔。&/b& &/p&&p&&br&&/p&&p&&b&第三本&第四本,《你今天真好看》&《我可以咬一口吗》--莉兹·克里莫 &/b&&/p&&p&这是两本特别温暖治愈的绘本,微博曾经爆红过。在这冬天彻底融化了我的心.......&/p&&p&简直就是冬天窝被窝的必看暖心书籍!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0facbc158_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&500& data-rawheight=&690& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic1.zhimg.com/v2-0facbc158_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-aad0d01ce54f04eb977a178c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&772& data-rawheight=&939& class=&origin_image zh-lightbox-thumb& width=&772& data-original=&https://pic1.zhimg.com/v2-aad0d01ce54f04eb977a178c_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-60efa38c38daa9c6fe19d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1072& data-rawheight=&1448& class=&origin_image zh-lightbox-thumb& width=&1072& data-original=&https://pic2.zhimg.com/v2-60efa38c38daa9c6fe19d_r.jpg&&&/figure&&p&&br&&/p&&p&&b&第五本
《查令十字街84号》----海莲·汉芙 &/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f25e77ebd30dccd5886e3f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&321& data-rawheight=&436& class=&content_image& width=&321&&&/figure&&p&&b&这本书被誉为爱书之人的圣经。&/b&&/p&&blockquote&我们活在一个诡异的世界--这么漂亮,又能终身厮守的书,只需花相当于看场电影的代价就能拥有。&br&&br&但是,书店还在那儿,你们若恰好经过查令十字街84号,代我献上一吻,我亏欠它良多......&/blockquote&&p&《查令十字街84号》让我知道没有一个人是一座孤岛,就像纽约女作家海莲跨越千山万水,终究找到伦敦的旧书商弗兰克,你也终会在混沌以后找到懂你知你的那个人。&br&&/p&&p&&b&在冬天相信点什么,春天应该就能遇到心心所念吧~&/b&&/p&&hr&&p&如果你也喜欢这些书籍的话,欢迎关注我的公众号【起司玉子卷】,&/p&&p&回复:&b&治愈&/b&,获得更多治愈向书籍清单,&/p&&p&戳公众号菜单的“来拿福利”,更有其他的书籍福利大放送!&/p&&hr&&p&好多人问我要这个小视频呀,我就不一一发送了,&/p&&p&在公众号里回复:雪, 获得网盘下载地址&/p&
题主,快看这里快看这里,是不是这种感觉!现在请躺在这软趴趴的床上,身体靠着闪烁着温暖光芒的壁炉,裹上小棉被,看着窗外的雪景,打开我给你推荐的书籍吧~ 第一本,浮生六记---沈复沈复是小清新届的杰出代表人物,他选择的人生,恣意潇洒,优哉游哉。读…
&b&以下我推荐的10部纪录片,每部都满足这些条件:&/b&&br&&br&a. 我看过2+遍。有些时候,如果一部纪录片或一本书不值得我们看第二篇,那通常也不值得我们看第一遍。&br&&br&b. 我在线下给朋友推荐过,并且有2+位朋友在被推荐后真的去看了,并在看完后与我讨论。&br&&br&c. 尽量与其他9部在话题和学科上有显著区别。&br&&br&&b&然后和大家分享下,如何才能从看的纪录片中得到更多更有用的知识。&/b&看纪录片是一个重要的学习方式,而学习是需要讲求方法的,不能随随便便,毕竟我们的时间都很宝贵。以下是我们&b&看纪录片时需要注意的事项和完成的任务&/b& (Samantha, 2015) :&br&&br&x. 纪录片的本质,是导演用&b&主观&/b&的叙事方式来尽量客观地呈现一些内容。由于主观元素,如导演个人的立场,的存在,我们在看片时需要区分&b&哪些信息属于导演的观点,哪些信息属于事实&/b&。&br&&br&y. 由于纪录片的时长通常都在两小时左右,因为我们不能指望一部纪录片能够呈现一个话题的全景。有时,两个小时甚至都不足以让啰嗦的导演足够深入地探讨一个话题中的一小部分。所以,我们需要提醒自己,如果想要深入地了解一个领域,纪录片的确是一个好的开始,&b&但看完之后我们还需要做更多相关的学习&/b&。&br&&br&z. 在看纪录片时,为了达到好的学习效果,我们不能纯粹欣赏,我们&b&需要边看边问自己一些问题&/b&,比如:&br&&br&z1. 导演是谁?他/她为什么要讲这个故事?&br&z2. 片中都有哪些角色类型?互相之间是何关系?&br&z3. 有没有哪些信息是导演无意中漏掉或者有意不提的?&br&z4. 或者说,片中是否给正反双方观点都提供了足够的展现空间?&br&z5. 片中有没有推荐一些与该片主题相关的好资源?&br&&br&&b&另外,许多知友在评论里问,如何才能观看这些纪录片?答案是绝大部分我列出的纪录片,a站和b站都有高清链接,大家直接用我给出的影片名字搜索即可,我在知乎上直接放这些链接不太好。&/b&&br&&br&&b&至于少数1~2部a站和b站没有的,大家需要去youtube上看。亲测有效。&/b&&br&&br&&figure&&img src=&https://pic2.zhimg.com/dbed4595faa87092aad7c1_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/dbed4595faa87092aad7c1_r.jpg&&&/figure&&br&&b&1. 优雅的宇宙&/b&&br&&br&美国PBS电视台制作的一套纪录片,共3集,深入浅出地讲解了弦理论和与之相关的物理学概念。在讲述每一个复杂概念时,该纪录片都尽可能应用丰富细腻的视觉手段和到位的类比,来加深观众的理解。从许多细节上,都能看出本纪录片的制作者非常用心。&br&&br&&figure&&img src=&https://pic1.zhimg.com/24b8a4c252afe80d41d862cca5769c4c_b.jpg& data-rawwidth=&406& data-rawheight=&600& class=&content_image& width=&406&&&/figure&&br&&b&2. 食品公司&/b&&br&&br&第一次看本片时,我马上想起美国历史中知名的 muckraker,一百多年前勇敢揭露美国食品安全问题的记者,Upton Sinclair 以及他的纪实小说 &i&The Jungle&/i& 。本片深挖肉制品业的上下游链条,扒出众多触目惊心的行业内幕,让观众看完后再无法直视快餐店里的肉类汉堡和超市里的一些肉制品。&br&&br&&figure&&img src=&https://pic2.zhimg.com/e1aead63b_b.jpg& data-rawwidth=&423& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&423& data-original=&https://pic2.zhimg.com/e1aead63b_r.jpg&&&/figure&&br&&b&3. 含泪活着&br&&/b&&br&讲述上世纪80年代末,90年代初,一群中国人,怀揣着出国学习打工,改变自身命运的愿望,来到日本后经历的一系列人生坎坷,有在语言学校的艰难融入,有在餐馆端盘子的汗流浃背,也有在异国陋室的思乡之苦。主人公们的人生、命运、时间、爱情、亲情、友情、梦想,全部交织在一部纪录片中,让观者唏嘘不已。&br&&br&&figure&&img src=&https://pic1.zhimg.com/466e24abcfdda0a0ae81b539bb180fb8_b.jpg& data-rawwidth=&349& data-rawheight=&475& class=&content_image& width=&349&&&/figure&&br&&b&4. 天才网路梦&/b&&br&&br&一部反应真实创业案例的纪录片,MIT Sloan 商学院教授 Bill Aulet 在他的创业课上推荐所有学生认真观看。&br&&br&本片讲述了两个好友在互联网经济第一次腾飞时,携手创立了govWorks。他们日夜兼程,从西岸 的Sand Hill Road ,杀到东岸的 Kendall Square ,通过艰辛的谈判,最终达成多轮总计数千万刀融资,并推动公司迅速扩张。&br&&br&可两个主人公却很快因经验不足导致经营不善,不得不面对公司关门的窘境和多年友情走向终结的命运。&br&&br&虽然镜头语言比较业余,但本片的情节对创业者的参考价值历久弥新。看完本片,大家会破除很多对于创业和创业者的幻想,也会多一分对于创业和创业者的理解。&br&&br&&figure&&img src=&https://pic4.zhimg.com/3dce921a89f_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/3dce921a89f_r.jpg&&&/figure&&br&&b&5. Everything is a Remix&/b&&br&&br&我们看到的,听到的许多大师级的创意,真的是原创吗?还是说,一切创意都不过是对原有想法的重新包装,混搭,和改造?看完本片,大家会对创意和艺术有一个重新的思考。&br&&br&&figure&&img src=&https://pic3.zhimg.com/c6bdff2302feb1fb5334a_b.jpg& data-rawwidth=&656& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&656& data-original=&https://pic3.zhimg.com/c6bdff2302feb1fb5334a_r.jpg&&&/figure&&br&&b&6. The Story of Maths&/b&&br&&br&带领观众重返数学史上一个又一个的黄金时代,重现数学璀璨星河中,诸如牛顿、莱布尼兹、和高斯等数学家传奇的探索历程。在本片宏大的时空叙事中,观众逐渐明白,那些大家如今习以为常的数学理论,实际上是人类数百年甚至数千年的智慧结晶,其成就之伟大,令人肃然起敬。&br&&br&&figure&&img src=&https://pic4.zhimg.com/2f73cb7b58e642f450897_b.jpg& data-rawwidth=&424& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&424& data-original=&https://pic4.zhimg.com/2f73cb7b58e642f450897_r.jpg&&&/figure&&br&&b&7. 资本主义:一个爱情故事&/b&&br&&br&到底是什么导致了2008年的全球金融海啸?本纪录片的导演,迈克尔·摩尔,用一系列真实的案例,为观众揭示了08年金融危机的根源,描绘了危机前,危机中,危机后那一张张贪婪的嘴脸。看来,经济系统的秩序和健康,的确不能依靠资本市场和资本家的自律。&br&&br&&figure&&img src=&https://pic2.zhimg.com/68d0e3ea35e01_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/68d0e3ea35e01_r.jpg&&&/figure&&br&&b&8. Status Anxiety&/b&&br&&br&著名作家和电视制片人阿兰·德波顿根据其畅销书《身份焦虑》改编的一部纪录片。为什么现代人的物质生活越来越富足,却越来越不快乐了,越来越找不到存在的价值和生命的意义?阿兰·德波顿通过对不同社会阶层人的访问和分析,提供了一种解答。&br&&br&&figure&&img src=&https://pic4.zhimg.com/dd34fc1f1ea6ff70161f_b.jpg& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/dd34fc1f1ea6ff70161f_r.jpg&&&/figure&&br&&b&9. Neanderthal&/b&&br&&br&Discovery Channel 在2001年出品的一部尼安德特人的纪录片。在旧石器时代,地球上生活着两种人类:尼安德特人和我们的祖先智人。在与智人的竞争中败下阵来后,尼安德特人最终不幸地从地球上灭绝了。本片重现了35000年前尼安德特人的生活细节:武器制作、捕猎、采集、生火、治疗、仪式等等,面面俱到。&br&&br&注:本片的配图是在网上搜的,不是该纪录片的原版截图。&br&&br&&figure&&img src=&https://pic4.zhimg.com/9e60cf2ad4a649eca419c7d5896314df_b.jpg& data-rawwidth=&600& data-rawheight=&320& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/9e60cf2ad4a649eca419c7d5896314df_r.jpg&&&/figure&&br&&b&10. IDEO Shopping Cart Project&/b&&br&&br&ABC 电视台出品的一部短纪录片,还原了知名设计公司 IDEO 重新设计超市购物车的流程。对设计思维 (Design Thinking) 感兴趣的知友千万别错过这部纪录片,它是一部很好的设计思维入门教程。&br&&br&&b&本次推荐到此结束,&/b&&b&感谢大家阅读&/b&&b&。周五快到啦,大家有空可以在周五晚看掉其中的1~2部。欢迎在评论中讨论这些纪录片。&/b&&br&&br&&figure&&img src=&https://pic3.zhimg.com/afd396f992daa5daed2d69cab44e3e0a_b.png& data-rawwidth=&6100& data-rawheight=&75& class=&origin_image zh-lightbox-thumb& width=&6100& data-original=&https://pic3.zhimg.com/afd396f992daa5daed2d69cab44e3e0a_r.png&&&/figure&&br&&b&转载规则:&/b&本答案中我创作的部分欢迎转载,但请注明来自知乎,来自米洛。自媒体及其他盈利性媒体在转载前私信我以获知转载方式(免费)。十分感谢。但如果只是转载到自己的朋友圈或非盈利的个人微博,则无需告知。再次感谢所有支持此答案的知友。&br&&br&&b&参考链接:&/b&&a href=&//link.zhihu.com/?target=http%3A//www.literallydarling.com/blog//film-101-how-to-watch-a-documentary/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How To Smartly Watch A Documentary&/a&
以下我推荐的10部纪录片,每部都满足这些条件: a. 我看过2+遍。有些时候,如果一部纪录片或一本书不值得我们看第二篇,那通常也不值得我们看第一遍。 b. 我在线下给朋友推荐过,并且有2+位朋友在被推荐后真的去看了,并在看完后与我讨论。 c. 尽量与其他9…
&p&人家的编程&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ff19e77ddcd55_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&500& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic2.zhimg.com/v2-ff19e77ddcd55_r.jpg&&&/figure&&p&你的编程。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a3adc8e4947_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&580& data-rawheight=&326& class=&origin_image zh-lightbox-thumb& width=&580& data-original=&https://pic4.zhimg.com/v2-a3adc8e4947_r.jpg&&&/figure&&p&&br&&/p&&p&人家思考问题是从框架开始的。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7c800751ddc15aec7f7ec8c497a6ccf4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1240& data-rawheight=&698& class=&origin_image zh-lightbox-thumb& width=&1240& data-original=&https://pic1.zhimg.com/v2-7c800751ddc15aec7f7ec8c497a6ccf4_r.jpg&&&/figure&&p&你思考问题呢?我不知道,我真的不知道。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b1d2a5644dce410bd669_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&396& data-rawheight=&295& class=&content_image& width=&396&&&/figure&&p&我估计这种情况对你的烙印最深刻。&/p&&p&在看看人家的起点&/p&&figure&&img src=&https://pic2.zhimg.com/v2-6d81b2f810ccc4c4e5617d1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&641& data-rawheight=&441& class=&origin_image zh-lightbox-thumb& width=&641& data-original=&https://pic2.zhimg.com/v2-6d81b2f810ccc4c4e5617d1_r.jpg&&&/figure&&p&而我们的起点呢?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-7fca4e5e0bb500b56f66377_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&304& data-rawheight=&193& class=&content_image& width=&304&&&/figure&&p&10000个小时成专家。(一万小时定律)&/p&&p&人家从小就是协作互助,软硬兼学。&/p&&p&我们呢?大学里,自己边看c,边敲代码。&/p&&p&我们4年过去了,毕业了。&/p&&p&人家4年过去了,还在上学。&/p&&hr&&p&去过B占吗?&/p&&p&看过那些最新的教学视频吗?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0731cc72abc684fa07517cee2e15d4eb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&222& data-rawheight=&189& class=&content_image& width=&222&&&/figure&&p&去过“你方块”吗?&/p&&p&看过最新的教学吗?&/p&&p&来过知乎吗?&/p&&p&看过小老二的高赞高收藏的回答吗?&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1e08afc39e73c4607bac90ffe08ba47f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&977& data-rawheight=&939& class=&origin_image zh-lightbox-thumb& width=&977& data-original=&https://pic4.zhimg.com/v2-1e08afc39e73c4607bac90ffe08ba47f_r.jpg&&&/figure&&p&此图,也不过是一个大纲型的总图而已。&/p&&p&事实上,每一个算法都拥有自己的流程图。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-62adfdf6c35dc7c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&593& data-rawheight=&830& class=&origin_image zh-lightbox-thumb& width=&593& data-original=&https://pic2.zhimg.com/v2-62adfdf6c35dc7c_r.jpg&&&/figure&&p&基本上,写算法都可以参照这个过程。当然这是很古老但是很实用的方法。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d0ff1ada5ef04bd11acecf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&700& data-rawheight=&521& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&https://pic4.zhimg.com/v2-d0ff1ada5ef04bd11acecf_r.jpg&&&/figure&&p&什么?有流程图,你依然看不懂?&/p&&hr&&p&&br&&/p&&p&最初我以为,这个只是漫画风格,哪里能这么壮,&/p&&p&没想到真的有这么壮。&/p&&p&来知乎之前,我活在外界给我营造的婴儿房里&/p&&figure&&img src=&https://pic2.zhimg.com/v2-e749abe9b678e1c0236c59_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&273& data-rawheight=&152& class=&content_image& width=&273&&&/figure&&hr&&p&来了知乎之后呢,我明白,我还是个婴儿,根本没长大。&/p&&p&来知乎之前,我觉得编程,就是helloworld&/p&&p&来之后,我突然明白,helloworld,只是跟计算机问个好。&/p&&p&print和cout是哥俩,他们是全局函数,&/p&&p&lambda写的是匿名的临时函数。&/p&&p&class+new的方式,才会全局。知道一直会用到,但是不知道什么时候delete&/p&&p&变量保存分堆和栈。&/p&&p&代码运行分编译期和运行期。&/p&&p&不同的编译器,数据在内存中的存储方式 Big Endian和Little Endian。&/p&&p&模板还有元编程。&/p&&p&class还有vtable。。。。。。。。。。。。。。&/p&&p&此处省略1800万字。&/p&&hr&&p&什么,你都没有?之前,来过知乎蜻蜓点水?&/p&&figure&&img src=&https://pic2.zhimg.com/v2-3d905daf85acddf6ac1eeb1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&935& data-rawheight=&433& class=&origin_image zh-lightbox-thumb& width=&935& data-original=&https://pic2.zhimg.com/v2-3d905daf85acddf6ac1eeb1_r.jpg&&&/figure&&p&最简单是什么呢?&/p&&p&编码中文化,编码图形化。通过拖拽编码。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d86de7a96e30ffd73fe14_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1354& data-rawheight=&683& class=&origin_image zh-lightbox-thumb& width=&1354& data-original=&https://pic1.zhimg.com/v2-d86de7a96e30ffd73fe14_r.jpg&&&/figure&&p&我确切地说,有3个月没有怎么专心地回答问题了。包括这个主题。&/p&&p&为什么呢?一看我就是有大纸箱的人,&/p&&p&我正在酝酿一个项目,可以让我在答题中脱颖而出的程序。&/p&&p&没事关注一下我,说不上,今年,或者明年什么时候,我就脱颖而出了。&/p&&p&我这不是叶公好龙,也看过各大直播平台的兴衰,知道他们背后的玩法和掌控的方法。&/p&&p&可以这么说吧,编码奇慢是对的。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-72ab902b1ba41d315e3a81d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&874& data-rawheight=&616& class=&origin_image zh-lightbox-thumb& width=&874& data-original=&https://pic2.zhimg.com/v2-72ab902b1ba41d315e3a81d_r.jpg&&&/figure&&p&怎么样看起来,是不是形象化了。&/p&&p&对,写代码也是如此,&/p&&p&什么?你不懂这些玩意有什么用?&/p&&p&你用行为树,写个代码生成器,把行为树生成的代码保存到文件中,&/p&&p&至于是什么代码生成器,那就看你喜欢什么编程语言?&/p&&p&什么?你不懂,你还是不懂?&/p&&p&其实,你懂了。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-4f6ac40d7c7c0364f53cafe2bfc1eff4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&520& data-rawheight=&743& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&https://pic1.zhimg.com/v2-4f6ac40d7c7c0364f53cafe2bfc1eff4_r.jpg&&&/figure&&p&是不是这么看编程,就丰富多彩了呢?&/p&&p&很多人故弄玄虚,让你慢慢编程,35岁就转行,这样,他们才能保住饭碗。&/p&&p&这些人下场肯定都不会太好&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f58bae8f19_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1624& data-rawheight=&938& class=&origin_image zh-lightbox-thumb& width=&1624& data-original=&https://pic2.zhimg.com/v2-f58bae8f19_r.jpg&&&/figure&&p&你呀,才来知乎不久,什么都不知道,&/p&&p&但是你记住一点,凡是只打字的,八成都是左脑厉害的。&/p&&p&但是左脑厉害的人只占人群中1%之一。&/p&&p&&br&&/p&&p&你看我,左脑完全没有逻辑,但是依然不能阻挡我写出高质量代码。&/p&&p&你们写代码调试的时候,用什么?断点啊 print啊, massagebox 啊,这类的。&/p&&p&我呢,流程让小人去跑,哪里出错了,直接停在哪里,然后把当时的内存情况,还有各部分流程,全部写入文件。&/p&&p&所以说,编程在某种情况,就是图形化人才占主导地位。&/p&&p&尬编的那些人,以为只要老实地做个码农就有饭吃,在我们画图纸的眼里,那是何等的尴尬啊。&/p&&p&&br&&/p&&p&什么是代码生成器?&/p&&p&太大了,也不好仔细地讲。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-c39fcedc789bc284aa5df3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&678& data-rawheight=&1123& class=&origin_image zh-lightbox-thumb& width=&678& data-original=&https://pic4.zhimg.com/v2-c39fcedc789bc284aa5df3_r.jpg&&&/figure&&p&看这个图,只是针对函数这个方格的解释器。&/p&&p&可以看出来,当下做的代码生成器,还很原始。这种中古版本,很直接。&/p&&p&最新的都是经过拖拽的。&/p&&p&第一版,肯定是函数化的。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-40a60da1e8f53_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&632& data-rawheight=&1213& class=&origin_image zh-lightbox-thumb& width=&632& data-original=&https://pic4.zhimg.com/v2-40a60da1e8f53_r.jpg&&&/figure&&p&第二版就是class化了。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e92cdf7dd9cd071fd0e3055b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&754& data-rawheight=&1183& class=&origin_image zh-lightbox-thumb& width=&754& data-original=&https://pic4.zhimg.com/v2-e92cdf7dd9cd071fd0e3055b_r.jpg&&&/figure&&p&第三版就是家族化,选择器化。&/p&&p&等等吧,这个话题估计也没几个人看。就写这么点吧。&/p&&hr&&figure&&img src=&https://pic2.zhimg.com/v2-f41b4079eee1aee6dca0c6fc5dbf389d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&4267& data-rawheight=&2512& class=&origin_image zh-lightbox-thumb& width=&4267& data-original=&https://pic2.zhimg.com/v2-f41b4079eee1aee6dca0c6fc5dbf389d_r.jpg&&&/figure&&p&明眼人应该知道,这图是哪个游戏的。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-abcd1711fff858_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1500& data-rawheight=&2090& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic1.zhimg.com/v2-abcd1711fff858_r.jpg&&&/figure&&p&这图是当前发展出来的游戏。&/p&&p&就单地图而言。只需要换个皮,估计就有不少人喜欢。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b23e315470_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1536& data-rawheight=&912& class=&origin_image zh-lightbox-thumb& width=&1536& data-original=&https://pic1.zhimg.com/v2-b23e315470_r.jpg&&&/figure&&p&于是很多人,热衷于先复刻,再换皮的套路。&/p&&p&结果十年光景就没了。&/p&&p&人家为什么是人才,大家占了那个地方,就是为了等这些人。&/p&&p&&br&&/p&&hr&&p&每个人学编程的开始,必须有一个很大的远景。&/p&&p&有多大,至少要把中国地图涵盖了吧。&/p&&p&但是这样眼界太小了,世界地图才是终极目标。&/p&&p&虽然不现实,但是看的东西多了,才能够更加细化。&/p&&p&图形化,现代化,中文化,才是高速编程的基础。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&hr&&p&复刻一个fc 是从0到1&/p&&p&重构一个太平天国游戏,是1-10&/p&&p&架构一个二十四史,才是10-100&/p&&figure&&img src=&https://pic3.zhimg.com/v2-28a7c660b2cf6cd2700d76_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&450& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/v2-28a7c660b2cf6cd2700d76_r.jpg&&&/figure&&p&&br&&/p&&p&有的时候不得不说。人家的父母的眼界,决定了孩子的发展啊。&/p&
人家的编程你的编程。 人家思考问题是从框架开始的。你思考问题呢?我不知道,我真的不知道。 我估计这种情况对你的烙印最深刻。在看看人家的起点而我们的起点呢?10000个小时成专家。(一万小时定律)人家从小就是协作互助,软硬兼学。我们呢?大学里,自…
&figure&&img src=&https://pic3.zhimg.com/v2-685a838fe09c76cd53f3_b.jpg& data-rawwidth=&793& data-rawheight=&484& class=&origin_image zh-lightbox-thumb& width=&793& data-original=&https://pic3.zhimg.com/v2-685a838fe09c76cd53f3_r.jpg&&&/figure&&p&最近从零开始,实现了一个基于帧同步的RTS类型游戏的Demo,这里主要是列出实现这样一个Demo需要实现的各个模块,作为一个总结,以备日后回顾。&/p&&p&&br&&/p&&p&同步方案最终定了帧同步的方案,主要是基于几点考虑:&/p&&p&1. 操作频繁,单位的数据变化多,状态同步的数据量太大&/p&&p&2. 开发人手少,帧同步开发效率高&/p&&p&3. 服务器压力小&/p&&p&4. 录像功能好实现,只需要记录操作,客户端就可以重现整个战斗过程&/p&&p&&br&&/p&&h2&地图管理和移动逻辑&/h2&&h2&基于格子的地图以及A*的寻路&/h2&&p&&br&&/p&&p&地图和A*没什么说的,就是传统的算法,有个地方需要特殊处理的就是飞行单位是可以穿越阻挡的,这样寻路模块需要提供两个接口,一个是阻挡的,一个是无视阻挡的。&/p&&p&&br&&/p&&h2&基于指令系统的移动逻辑&/h2&&p&移动的表现层有个需要特殊处理的地方。就是寻路是基于格子,那么坐标都是(12,13),(50, 60)这样的整数,但是场景里的角色对象是3d世界下的Vector3坐标。用户点击的是场景里的任意坐标,并且单位的移动是可以被新的操作打断的,那么一次移动是可以理论上从任意的世界坐标点,移动到任意的世界坐标点的。对寻路来说,怎么平滑的处理。&/p&&p&&br&&/p&&p&我这边想到的办法是,寻路模块返回的是格子中心的点的世界坐标,然后起始点和结束点的坐标就用做最后表现层的点,然后把所在的格子原本的路点坐标丢弃。&/p&&p&&br&&/p&&h2&网络帧同步&/h2&&h2&战斗开始流程&/h2&&p&做帧同步,就要加入房间的概念,然后需要修改战斗的开始流程&/p&&figure&&img src=&https://pic4.zhimg.com/v2-5ae4b92b4b93a90a1b63ff7a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&445& data-rawheight=&566& class=&origin_image zh-lightbox-thumb& width=&445& data-original=&https://pic4.zhimg.com/v2-5ae4b92b4b93a90a1b63ff7a_r.jpg&&&/figure&&p&&br&&/p&&h2&服务器转发操作协议&/h2&&p&主要的工作在于手写序列化,反序列化&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-csharp&&&span&&/span&&span class=&k&&public&/span& &span class=&k&&class&/span& &span class=&nc&&Command&/span& &span class=&p&&:&/span& &span class=&n&&IProtoSerializer&/span&
&span class=&p&&{&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&team_id&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&command_type&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&c1&&// 下面的字段都是可选的项,根据上面的操作类型来定义&/span&
&span class=&c1&&// 这个是move的字段&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&cast_id&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&x&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&y&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&c1&&// 放置将军字段&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&hero_index&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&c1&&// 追击目标(用上面的cast id)&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span&
&span class=&n&&target_id&/span& &span class=&p&&{&/span& &span class=&k&&set&/span&&span class=&p&&;&/span& &span class=&k&&get&/span&&span class=&p&&;&/span& &span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&kt&&int&/span& &span class=&nf&&Length&/span&&span class=&p&&()&/span&
&span class=&p&&{&/span&
&span class=&k&&return&/span& &span class=&m&&20&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&k&&void&/span& &span class=&nf&&Serialize&/span&&span class=&p&&(&/span&&span class=&kt&&byte&/span&&span class=&p&&[]&/span& &span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&kt&&int&/span& &span class=&n&&offset&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&team_id&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&command_type&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&k&&switch&/span&&span class=&p&&(&/span&&span class=&n&&command_type&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&Move&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&cast_id&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&x&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&y&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&PUT_HERO&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&c1&&// 暂时都填充满20个字节&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&hero_index&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&hero_index&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&hero_index&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&PURSUE_TARGET&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&c1&&// 暂时都填充满20个字节&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&cast_id&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&target_id&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&WriteInt&/span&&span class=&p&&(&/span&&span class=&n&&buffer&/span&&span class=&p&&,&/span& &span class=&n&&target_id&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&p&&};&/span&
&span class=&p&&}&/span&
&span class=&k&&public&/span& &span class=&k&&static&/span& &span class=&n&&Command&/span& &span class=&nf&&Deserialize&/span&&span class=&p&&(&/span&&span class=&kt&&byte&/span&&span class=&p&&[]&/span& &span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&kt&&int&/span& &span class=&n&&offset&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&Command&/span& &span class=&n&&obj&/span& &span class=&p&&=&/span& &span class=&k&&new&/span& &span class=&n&&Command&/span&&span class=&p&&();&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&command_type&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&k&&switch&/span&&span class=&p&&(&/span&&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&command_type&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&Move&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&cast_id&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&x&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&y&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&PUT_HERO&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&hero_index&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&k&&case&/span& &span class=&n&&BL&/span&&span class=&p&&.&/span&&span class=&n&&TickCommandType&/span&&span class=&p&&.&/span&&span class=&n&&PURSUE_TARGET&/span&&span class=&p&&:&/span&
&span class=&p&&{&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&cast_id&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&obj&/span&&span class=&p&&.&/span&&span class=&n&&target_id&/span& &span class=&p&&=&/span& &span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&n&&SerializeHelper&/span&&span class=&p&&.&/span&&span class=&n&&ReadInt&/span&&span class=&p&&(&/span&&span class=&n&&data&/span&&span class=&p&&,&/span& &span class=&k&&ref&/span& &span class=&n&&offset&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&k&&break&/span&&span class=&p&&;&/span&
&span class=&p&&};&/span&
&span class=&k&&return&/span& &span class=&n&&obj&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&&br&&/p&&h2&客户端逻辑层和表现层分开&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-ab987c8133cea07_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&923& data-rawheight=&721& class=&origin_image zh-lightbox-thumb& width=&923& data-original=&https://pic1.zhimg.com/v2-ab987c8133cea07_r.jpg&&&/figure&&p&&br&&/p&&h2&逻辑层&/h2&&h2&单位,角色单位,建筑单位&/h2&&p&建筑单位和角色单位的属性设计,参考的是魔兽的编辑器,然后根据策划的需求做了一定的修改。&/p&&p&&br&&/p&&h2&时间轴控制器&/h2&&p&时间轴控制器的主要作用就是控制逻辑帧的播放,暂停,回放,停止等等,可以看作是驱动整个逻辑层运作的核心模块。&/p&&p&&br&&/p&&p&在这个Demo中是按照每秒16帧来驱动的,也就是服务器每隔1/16秒往客户端发一个同步帧,帧的内容就是这一帧之内所有玩家的操作。&/p&&p&&br&&/p&&p&客户端本地则按照实际流逝的时间,计算实际应该经过的逻辑帧,然后再看当前逻辑层应该往前运行多少帧。&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-csharp&&&span&&/span&&span class=&k&&public&/span& &span class=&k&&class&/span& &span class=&nc&&BLTimelineController&/span&
&span class=&p&&{&/span&
&span class=&p&&...&/span&
&span class=&k&&public&/span& &span class=&k&&void&/span& &span class=&nf&&Tick&/span&&span class=&p&&(&/span&&span class=&kt&&float&/span& &span class=&n&&dt&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&if&/span&&span class=&p&&(!&/span&&span class=&n&&is_start&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&k&&return&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&c1&&// 切入后台的时候dt 不是真实的dt,所以要用下面的自己计算的&/span&
&span class=&kt&&float&/span& &span class=&n&&delta_time&/span& &span class=&p&&=&/span& &span class=&p&&(&/span&&span class=&n&&Time&/span&&span class=&p&&.&/span&&span class=&n&&realtimeSinceStartup&/span& &span class=&p&&-&/span& &span class=&n&&time_pre_frame&/span&&span class=&p&&);&/span&
&span class=&n&&total_time_elapsed&/span& &span class=&p&&+=&/span& &span class=&n&&delta_time&/span&&span class=&p&&;&/span&
&span class=&n&&time_pre_frame&/span& &span class=&p&&=&/span& &span class=&n&&Time&/span&&span class=&p&&.&/span&&span class=&n&&realtimeSinceStartup&/span&&span class=&p&&;&/span&
&span class=&n&&now_local_logic_frame&/span& &span class=&p&&=&/span& &span class=&p&&(&/span&&span class=&kt&&int&/span&&span class=&p&&)(&/span&&span class=&n&&total_time_elapsed&/span& &span class=&p&&/&/span& &span class=&n&&SECOND_PER_FRAME&/span&&span class=&p&&);&/span&
&span class=&kt&&int&/span& &span class=&n&&need_move_frame&/span& &span class=&p&&=&/span& &span class=&n&&now_local_logic_frame&/span& &span class=&p&&-&/span& &span class=&n&&current_logic_frame&/span&&span class=&p&&;&/span&
&span class=&kt&&int&/span& &span class=&n&&real_move_frame&/span& &span class=&p&&=&/span& &span class=&m&&0&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&n&&frame_received&/span& &span class=&p&&&=&/span& &span class=&n&&need_move_frame&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&real_move_frame&/span& &span class=&p&&=&/span& &span class=&n&&need_move_frame&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&k&&else&/span&
&span class=&p&&{&/span&
&span class=&n&&real_move_frame&/span& &span class=&p&&=&/span& &span class=&n&&frame_received&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&c1&&//Debug.Log(&frame_received & + frame_received + & current_logic_frame & + current_logic_frame + & now_local_logic_frame & + now_local_logic_frame + & real_move_frame & + real_move_frame);&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span& &span class=&n&&real_move_frame&/span& &span class=&p&&&&/span& &span class=&m&&0&/span& &span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&time_elapsed_from_pre_frame&/span& &span class=&p&&=&/span& &span class=&m&&0&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&k&&else&/span&
&span class=&p&&{&/span&
&span class=&n&&time_elapsed_from_pre_frame&/span& &span class=&p&&+=&/span& &span class=&n&&delta_time&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&n&&DoMainLogic&/span&&span class=&p&&(&/span&&span class=&n&&real_move_frame&/span&&span class=&p&&);&/span&
&span class=&n&&frame_received&/span& &span class=&p&&-=&/span& &span class=&n&&real_move_frame&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&&br&&/p&&h2&视野系统&/h2&&p&视野系统是为每个战场的玩家,保存了一个可见行的列表,然后每隔一定的时间去更新整个列表,更新的办法就是对所有单位遍历,看单位到单位的距离是否小于视野。&/p&&p&&br&&/p&&p&上面的视野信息是给逻辑层使用的,做所有玩家的战斗逻辑。然后还有一个自己能看到的单位的列表是给表现层使用的,用于做战争迷雾的时候使用。&/p&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-csharp&&&span&&/span&&span class=&kt&&var&/span& &span class=&n&&unit_list1&/span& &span class=&p&&=&/span& &span class=&n&&BLUnitManager&/span&&span class=&p&&.&/span&&span class=&n&&Instance&/span&&span class=&p&&().&/span&&span class=&n&&GetAllUnitList&/span&&span class=&p&&();&/span&
&span class=&kt&&var&/span& &span class=&n&&unit_list2&/span& &span class=&p&&=&/span& &span class=&n&&BLUnitManager&/span&&span class=&p&&.&/span&&span class=&n&&Instance&/span&&span class=&p&&().&/span&&span class=&n&&GetAllUnitList&/span&&span class=&p&&();&/span&
&span class=&kt&&var&/span& &span class=&n&&enumerator1&/span& &span class=&p&&=&/span& &span class=&n&&unit_list1&/span&&span class=&p&&.&/span&&span class=&n&&GetEnumerator&/span&&span class=&p&&();&/span&
&span class=&k&&while&/span&&span class=&p&&(&/span&&span class=&n&&enumerator1&/span&&span class=&p&&.&/span&&span class=&n&&MoveNext&/span&&span class=&p&&())&/span&
&span class=&p&&{&/span&
&span class=&kt&&var&/span& &span class=&n&&enumerator2&/span& &span class=&p&&=&/span& &span class=&n&&unit_list2&/span&&span class=&p&&.&/span&&span class=&n&&GetEnumerator&/span&&span class=&p&&();&/span&
&span class=&n&&BLUnitBase&/span& &span class=&n&&unit1&/span& &span class=&p&&=&/span& &span class=&n&&enumerator1&/span&&span class=&p&&.&/span&&span class=&n&&Current&/span&&span class=&p&&.&/span&&span class=&n&&Value&/span&&span class=&p&&;&/span&
&span class=&k&&while&/span&&span class=&p&&(&/span&&span class=&n&&enumerator2&/span&&span class=&p&&.&/span&&span class=&n&&MoveNext&/span&&span class=&p&&())&/span&
&span class=&p&&{&/span&
&span class=&n&&BLUnitBase&/span& &span class=&n&&unit2&/span& &span class=&p&&=&/span& &span class=&n&&enumerator2&/span&&span class=&p&&.&/span&&span class=&n&&Current&/span&&span class=&p&&.&/span&&span class=&n&&Value&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span& &span class=&p&&!=&/span& &span class=&n&&unit2&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span&
&span class=&p&&&&&/span& &span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&IsAlive&/span&&span class=&p&&()&/span& &span class=&p&&&&&/span& &span class=&n&&unit2&/span&&span class=&p&&.&/span&&span class=&n&&IsAlive&/span&&span class=&p&&()&/span&
&span class=&p&&&&&/span& &span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&IsCanSeeUnitCheckOnlyMyself&/span&&span class=&p&&(&/span&&span class=&n&&unit2&/span&&span class=&p&&))&/span&
&span class=&p&&{&/span&
&span class=&k&&if&/span&&span class=&p&&(!&/span&&span class=&n&&vision_enemy_units&/span&&span class=&p&&[&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span&&span class=&p&&].&/span&&span class=&n&&Contains&/span&&span class=&p&&(&/span&&span class=&n&&unit2&/span&&span class=&p&&))&/span&
&span class=&p&&{&/span&
&span class=&n&&vision_enemy_units&/span&&span class=&p&&[&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span&&span class=&p&&].&/span&&span class=&n&&Add&/span&&span class=&p&&(&/span&&span class=&n&&unit2&/span&&span class=&p&&);&/span&
&span class=&c1&&// 更新能看见的单位,给渲染层用&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span& &span class=&p&&==&/span& &span class=&n&&my_team_id&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&can_see_unit_id&/span&&span class=&p&&.&/span&&span class=&n&&Add&/span&&span class=&p&&(&/span&&span class=&n&&unit2&/span&&span class=&p&&.&/span&&span class=&n&&unit_id&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&c1&&// 更新能看见的单位,给渲染层用&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&team_id&/span& &span class=&p&&==&/span& &span class=&n&&my_team_id&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&can_see_unit_id&/span&&span class=&p&&.&/span&&span class=&n&&Add&/span&&span class=&p&&(&/span&&span class=&n&&unit1&/span&&span class=&p&&.&/span&&span class=&n&&unit_id&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&&br&&/p&&p&&br&&/p&&h2&攻击和追击的AI&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-d325d0bf971d9cf9b07912a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1470& data-rawheight=&1050& class=&origin_image zh-lightbox-thumb& width=&1470& data-original=&https://pic2.zhimg.com/v2-d325d0bf971d9cf9b07912a_r.jpg&&&/figure&&p&&br&&/p&&p&目前就是简单的if,else实现,后面如果AI复杂了,考虑重构行为树的方式。&/p&&p&&br&&/p&&h2&攻击AI&/h2&&p&&br&&/p&&div class=&highlight&&&pre&&code class=&language-csharp&&&span&&/span&&span class=&k&&virtual&/span& &span class=&k&&public&/span& &span class=&k&&void&/span& &span class=&nf&&AttackImplementTick&/span&&span class=&p&&()&/span&
&span class=&p&&{&/span&
&span class=&c1&&// 移动攻击属性的检查&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&n&&my_unit&/span&&span class=&p&&.&/span&&span class=&n&&unit_type&/span& &span class=&p&&==&/span& &span class=&n&&UnitType&/span&&span class=&p&&.&/span&&span class=&n&&Hero&/span&&span class=&p&&)&/span&
&span class=&p&&{&/span&
&span class=&n&&BLUnitHero&/span& &span class=&n&&hero_unit&/span& &span class=&p&&=&/span& &span class=&n&&my_unit&/span& &span class=&k&&as&/span& &span class=&n&&BLUnitHero&/span&&span class=&p&&;&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span& &span class=&p&&!&/span&&span class=&n&&hero_unit&/span&&span class=&p&&.&/span&&span class=&n&&is_move_attack&/span& &span class=&p&&&&&/span& &span class=&n&&hero_unit&/span&&span class=&p&&.&/span&&span class=&n&&IsMoveState&/span&&span class=&p&&())&/span&
&span class=&p&&{&/span&
&span class=&k&&return&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&p&&}&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&

我要回帖

更多关于 搜索猿兽雪堆 的文章

 

随机推荐