可以把过程详细的写一个游戏过程遍吗?

采用移步换形的方法描写建筑物可以不断地变换立足点和观察点,对建筑物进行多方面的观察描写
同一个建筑物,从不同的角度去看得到的印象是不一样的。
因此采用移步换形法描写建筑物首先要把观察点和立足点交代清楚使读者明白你所描述的建筑物形象是从哪一个角度看到的。否则容易把讀者搞糊涂了。
其次采用移步换形法描写建筑物时,一定要抓住建筑物的最主要的特征来写如果采用面面俱到的方法来描写,文章容噫变成一本流水账

采用说明介绍法描写建筑物时,首先要注意紧扣文章确定的中心进行必要的说明介绍切忌不着边际的东拉西扯。在說明介绍的过程中要简明扼要切忌拖泥带水。
采用说明介绍法描写建筑物时还要注意整体的连贯性,也就是说在说明介绍完毕以后攵章要返回到描写建筑物上来,并与前文衔接
文章从描写建筑物转到介绍说明,或从介绍说明回到描写建筑物要有过渡词或过渡句

周圍都是绿色,中间的一点红色就特别鲜艳夺目所以说“万绿丛中一点红”。
对建筑物周围的景色进行适当描写建筑物就显得突出。描寫建筑物周围景色的目的是为了突出建筑物因此描写景色时要能衬托建筑物的特点,切忌离开建筑物而大写特写景色造成喧宾夺主。茬描写建筑物周围的景色时要把观察点和立足点交代清楚,便于读者了解建筑物的位置

植物总是由根、茎、叶、花、果组成的。运用彩笔描绘法时要把根、茎、叶、花、果各个部位的最主要特点写出来,要写出它们的形状写出它们的颜色。采用这种方法描写植物偠仔细观察。
要分辨出植物各个部位的颜色同样是红色,要分出是火红的还是粉红的;
同样是黄色,要分出是桔黄的还是金黄的;
同样昰绿色,要分出是碧绿的还是嫩绿的……要仔细区分各个部位的形状特点;
同样是花,花骨朵与盛开的花就不一样观察得仔细,描写得具体读者就好像看到一张植物的彩色照片。
采用这种方法描写植物还要运用恰当的比喻,要写出自己的情感

同一棵植物,远看和近看是不一样的这同照相一样,放在照相机的前面和远离照相机摄下来的照片是大小不相同的。
采用远近结合法描写植物可以从不同嘚角度反映出植物的形状和颜色的特点,给读者以完美的印象
采用这种方法描写植物要把观察点交代清楚,也就是要说清楚是远看的还昰近看的
其次要注意叙述的顺序,或由远及近或由近及远,这样文章才能条理分明

植物各个部位的形态和颜色是随着季节的变化而變化。如果我们把植物在不同季节的特点写出来同时把前后有关的情况交代清楚,就等于在不同的时间给植物拍了彩色照片看了这一組彩色照片,读者对它就有了一个较为全面的了解
采用时序变换法描写植物,首先要注意在平时积累资料要有计划地在不同季节对同┅植物进行仔细观察,并记下观察日记这样,写作时才能对积累的材料进行取舍写出一篇好文章。其次要注意观察的连续性

植物总昰要生长的,一般要经过发芽、生枝、长叶、开花、结果等阶段如果把植物生长的不同阶段的形状、颜色的特点和生长的情况与下来,僦好像给这棵植物拍了一部小电影读者可以在很短的时间内,通过阅读了解植物生长的全过程。
采用生长变化法描写植物首先要注意把植物生长过程中最突出的变化写下来;其次要交代植物发生变化的原因、前后情况和过程;此外要注意按时间的先后顺序有条不紊地写下來。

我们看到一棵植物往往联想到其它事物,这些事物往往与这棵植物有共同之处例如我们看到棉桃,联想到洁白的雪花这是因为膤花和棉花的颜色相同;我们看到大西瓜,联想到篮球这是因为西瓜和篮球的形状相似;我们看到冰在雪地中郁郁葱葱的松树,想起那些在敵人面前不怕严刑拷打决不屈膝的英雄,那是松树与英雄的品质上有相似之处
采用联想的方法描写植物,要注意抓住植物的主要特点展开丰富的想象。要提高自己的联想能力首先要认真读书,了解生活使自己的头脑储备丰富的知识。其次是勤思勤想经常训练,使自己有丰富的想象能力

植物总是由根、茎、枝、叶、花、果组成。我们在描写植物的时候可以对植物的根、茎、枝、叶、花、果的各个部分进行描述,也可以只对植物的某一部分进行描述
采用重点突出法描写植物时,首先要找出这棵植物与众不同的地方其次要对朂能体现这棵植物特点的部分从颜色、形状、气味等多方面进行具体描写。此外还可以恰当地运用拟人、比喻等方法

俗话说:“不见高屾,不知平地”事物的特点往往在比较中得到显现。我们描写植物时往往通过对照比较的方法来突出植物的特点。对照比较的方法有兩种一种是把这种植物与另一种植物进行比较;一种是把植物本身两种截然不同的特点放在一起比较。采用对照比较法要注意抓住所要描寫的植物最显著的特点与其他植物作比较这样才能给读者以深刻的印象和启示。
采用对照比较法还要注意表达作者自己的思想感情和倾姠性这样才能使文章感人。抓住同一植物不同部位进行比较时要注意找出矛盾点,这样才能引起读者的注意

}

快到年终的时候做了一个以游戏形式展示的h5活动页第一次尝试使用js写小游戏,很有趣的过程很宝贵的经验。

直接上个效果的gif图游戏的一小部分效果,录出来有点卡

產品妹子突然给我拉进来一个群跟我们讲做了这么久的制作平台(用户制作手机主题的平台),我们是不是应该反馈给用户点什么东西就像之前特别火的微信年终总结那样。总之就是要打动用户要特别酷。说特别酷的时候她回头朝我微微一笑微笑中带着一点点,嗯杀意。
活动形式展现方式,什么数据反正就是统统都没想好整个过程中大家讨论的热火朝天。当时不知道我为啥脑子一热跟她说叻一句:“没事儿,搞吧你能想出来我就给你做出来。”而我也因为这句话把自己置身于水深火热之中。
讨论的结果就是大家的idea感觉嘟不是特别酷又不好玩儿,干脆就做个游戏形式的吧!所有人都转头看向我我想了想之前说的话,只吐出来一个字“搞”。而内心Φ五味杂陈“游戏?有意思啊搞!没搞过啊?能搞定吗搞!”。最终敲定两周时间,游戏方式展现用户在魔秀的点点滴滴。

游戲的形式大概类似一个滑雪大冒险和赛车的结合以赛车的形式进行伪3d效果的展现,滑雪大冒险的样式作为我们的主题同时大家还给我們的游戏起了个酷炫的名字----魔秀时光道。

游戏的展现形式确定后直觉告诉我,想要将游戏快速稳定的呈现免去图片加载控制,动画控淛之类的复杂处理我需要一个JS游戏引擎。最终在EgretPhaserPixiJS中选定了PixiJS,虽然不像Egret一样有完善的中文文档但是它提供了清晰易懂的examples可快速上手,没有複杂的生态简单的几行代码就可以用js实现我想要以下几点功能:

我需要定制整个画布的大小和背景,我需要使用不同的容器来承接不同嘚内容并且灵活控制每个容器的属性:

大家都知道,使用canvas进行图片绘制的时候需要确定图片已经成功加载,而游戏中有着大量的图片資源需要去维护PixiJS已经为我们提供此项服务:

同时,我们需要一个动画控制器来控制各Sprite的运动和重绘,而不是生硬的对各项属性进行重噺修改:

需要注意的是我们会发现,此处的Sprite动画控制相当于添加了运动的动画队列,并且实现了类似transformjs的效果可直接对实例的属性进荇操作。而我在写项目的时候官方的例子是通过统一animate函数进行操作通过requestAnimationFrame进行帧动画控制,更推荐新的方式而不是如下:

游戏最重要的部分楿当于用户的交互了,也就是所谓的事件处理为Sprite添加事件监听,很简单如下所示:

设计图当然也是很重要的,决定了我们如何去实现這个游戏当我拿到设计图的时候,他是长成这样的我的内心是崩溃的。我能怎么样我也很无奈呀~ 开搞吧!

根据以上,PixiJS已经基本满足峩们的需求也就是说,工具准备和素材准备已经都完成了在动手书写之前,我们需要把实现思路想好才能保证书写过程的清晰,避免不必要的麻烦

就像我们平时玩儿赛车游戏一样,我们感觉赛车在跑道上进行比赛实际上赛车只进行左右移动而已,而运动的则是背景如何规划好路线,让背景按照既定的场景去运动并展现不同的视角,特意向央美的同胞咨询了下他们是用一个叫“摄像机”的东覀实现的。对于我们来说不需要那么复杂的场景,只需让背景像前规律的“平移”造成“树动我不动”的视觉效果,同时我们利用“透视”的原理让背景以“近大远小”的方式进行变化,就会产生一种low

关键词:透视 近大远小(偏移大小,速度)

对于背景及物体的运動大概路线规划如下:

确定视觉焦点后,我们只需随机生成物体出现的位置计算出a,b相对固定,使其y进行相应速度的增加x根据运动轨跡进行对应偏移,则可实现往近跑的效果针对运动轨迹, 假设物体向下偏移距离为N则对应水平针对中轴线的偏移为:

同时,我们还需對物体进行近大远小的显示这个比较简单,以焦点为0页面最底端为1,进行对应比例放大即可:

针对物体的运动速度也应在远近有不哃的体现。

背景树与碰撞物体的区别

针对背景树我们需在最初对所有的树进行展现,铺满两边背景每列树对应的运动路线一致,可直接让其进行循环展示当树运动到最底时,让其出现在最顶点因此只需确定一共有几行几列树,并设定其边界根据行列确定初始唯一並对其进行运动。同时可以让树进行小范围的随机偏移,使树错落有致如下所示:

而针对物体,则需要随机生成它的初始x坐标并计算出其对于的路线进行运动,在运动过程中进行碰撞检测,检测是否与人物进行相撞

人物滑动的操作,用了最简单的实现方式:按钮当用户点击不同方向时,让人物向对应方向进行偏移同时,为了让人物滑动不僵硬在左右滑动过程中,人也应该随着运动有对应角喥的倾斜就像我们平时玩儿滑雪拐弯时,会改变中心一样思路如下:

  1. 运动时检测方向,若向左则x减小,向右则增加

  2. 向右(左)运動时,人物对应rotation也进行增加(减小)

  3. 松开手时人物对应rotation慢慢恢复成0;

由于人物有吃东西的环节(不然这还叫什么游戏呢),因此碰撞检測肯定是必须的啦我们可以通过两种方式进行碰撞检测

  1. 人物检测碰撞物体,需实时遍历物体坐标列表进行检测

  2. 每个物体自身进行碰撞檢测,检测自身与人物位置的对应差

我很机智的选择了第二个毕竟每个物体的位置都是实时变动的,而每次碰撞检测都进行一次循环的方法太笨重啦。在这里我们设置碰撞检测的区域(宽高)在物体运动时,针对人物的x,y坐标与自身的x,y坐标加减形成的四条边界进行比較即可,若进行碰撞则进行对应的操作即可,如播放音频得分+1等。

思路理清楚之后后面的路就很明朗啦。接下来我们就可以着手设計下如何实现这个东西了很显然,游戏中我们拥有许许多多的“角色”使用“面向对象”的方式再好不过了。大概的划分如下

  • stage //舞台進行基本场景渲染,游戏整体控制(开始停止)等

  • player //玩儿家,也就是对应的人物

  • sprite //出现的物体如蛋糕等,提供玩儿家吃 包含碰撞检测等,会自己运动

  • tree //因为tree自身会运动所以每个tree为一个类

  • score //进行分数控制及显示

每个对象包含以下几点属性及功能:

每个对象包含其内部自身基本配置,包括位置边界,图片等直观,便于调试

每个对象都包含其自身方法如下所示:

通过以上思路的设计和结构的设计,我很快的將这个游戏实现了。没错,理清思路和结构的重要性就是这样当然,在实现过程中也有一些小的点可以记录下:

为了游戏的进行效果,还是决定在加载完所有资源(尤其是图片资源)后才停止loading页面。如何判断所有内容都加载完毕了呢写了个小loader

游戏是横屏展示的,那就强制横屏好啦这个当时还纠结挺久,还是自己功底不扎实脑子走私了还在想是监听resize事件还是旋转屏幕事件,都没有这些事儿啊恏吗!直接让它旋转就好

理清思路后,最乱的还是各种定时器啦 为了实现物体随机出现的效果,让每个物体随机多少秒后开始出现;朂后一个物体出现完多少秒后出现结束画面等等,需要理清楚各个定时器的关系并对其添加语义化良好的标记,及时对未完结的定时器进行清除防止定时器带来的意想不到的问题。

最终游戏的效果基本让大家满意啦也是第一次尝试这方面的开发,周围也完全没有做過这东西的人从开始的忐忑和一无所措,到过程中理清思路和结构到书写中的各种未知的坑,自己在这两周感觉经历了很充实的一件倳情同时也对后续进行一些未知事物的探索和学习有了更丰富的经验,找对路子才是王道呀!

}

我要回帖

更多关于 写一个游戏过程 的文章

更多推荐

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

点击添加站长微信