在 前一篇文章 中,我们学习了如何创建主人公,并让主人公动起来。 但是目前,主人公的周围还什么都没有。一款 RPG 游戏,众所周知,应该是有地图作为场景的吧!那好,我们今天就试着绘制场景。
找到你之前的 Arcade 代码 如果你之前曾经试着在编辑器界面里点击“主页”回到主界面的话,你可能会遇到这样一个弹窗: 不知道当时的你,为你的第一个项目留下了怎样的名字呢?哈哈(跑远了)。不过这不是我们今天的重点,重点在于,我们今天的博文会用到上次的项目。你需要在主界面找到并点开它。 所有你之前创建过的项目(不论有没有显式要求 Arcade 保存),都能在 Arcade 主页中“我的项目”分栏下找到。为了方便后面找到你的项目,pokon548 强烈建议你当 Arcade 弹出上面那个(示意图上)对话框时,给项目命一个名。对 pokon548 来说,为了方便写博文,给项目命了这么一个名。 为了打开你之前创建的项目,只需轻轻地点击对应的卡片即可。
不好!我一不小心创建了很多没用的项目 因为一不小心创建了太多赘余的项目而导致真正的项目难以找到?不如把它们删除掉吧! 删除项目的方法也很简单。只需要点击“我的项目”,进入“我的项目”后选中你不需要的项目。最后,点击右上角出现的的“删除”按钮即可。 注意:项目的删除是永久性的。请务必确保你正打算删除的项目真的是你不需要的项目!
游戏的场景 为了给主人公互动的环境,Arcade 专门有一个分区来帮我们。其就叫做“场景”。 通过创建场景,我们可以给主人公一个周围的环境。在这个环境下,主人公可以和场景互动、获得道具、讲述故事背景…许多剧情向游戏更是离不开场景的衬托。 当然,这篇教程的目的不在于写剧情向游戏,而只是一个 RPG 游戏教学。所以涉及到场景的内容 pokon548 点到为止,不过度展开。如果你对场景感兴趣,pokon548 欢迎你自主探索哦!
创建地图模板 为了创建地图,我们首先需要一个蓝图。这个蓝图将指引 Arcade 在合适的地方放上合适的景物。 在 Arcade 中,蓝图由十六进制代码组成。自 0 ~ F 各表示一种景物。也就是说,在 Arcade 里,一个地图内最多只能包含十六种景物。 一定有人会说:哎只有十六种啊?其实不用担心。至于为什么,后面的文章里再说。 顺带提一句:在 Arcade 中,景物有一个对应的名词叫做“砖块”。地图有一个专有的名词叫做“tile map”。不过这并不重要,了解就好。
要创建蓝图,我们首先要点击左侧的“场景”分区,把这个方块拖出来。 我们又见到了一个有灰色区域的方块了。和上次一样,点开它。 是不是很熟悉?我们上一篇文章中,在给主角弄皮肤的时候就用过它。我们这次绘制地图,还是要借助它的帮忙。不过我们这次不使用 Gallery 中的内容,而是自己手动绘制。 细心的你一定发现了一件事:编辑器的左下方有一个“尺寸”。就是 10x8 那个,你发现了吗?在当前的情况下,它的值决定了地图的大小。在博文中,我们就用 10x8 即可。当然爱探索的你,可以通过点它随意改变地图的大小。
那么,我们要画个怎样的地图呢?唔…这可真是个充满创意的开放性问题。pokon548 的建议是:随便画!只要不把画面中间的格子占用了就好(为啥?因为主角默认情况下出现在中间啊)。
为了方便演示,pokon548 决定就画个正方形出来。要在编辑器上画地图,只需要讲光标移动到编辑框上,点击你想要让其变为“砖块”的部分即可。 当然,好奇的你可能会问:我要是画错了怎么办?简单。在工具栏左侧有一个“橡皮擦”按钮,点一下它,即可激活“擦除模式”。之后,在你想要删除的像素上一点,就可以把画错的部分删去了。具体动图操作如下。 要变回正常的“绘制模式”,只需要点一下”橡皮擦“按钮左边的”铅笔“按钮即可。
不得不说热更新真的是世界上最垃圾的更新方式没有之一…哎,说来也无奈。谁叫有些用户就是要“求稳”而打死不更新应用呢?
下划线块笔记??? 之前,Kindle 貌似就一直在灰度热更新一个功能:下划线笔记。什么意思呢?就是你在 Kindle 上做的笔记不再是一个很长的灰色块来表示了(就相当于我们用马克笔做标记的效果),而是一整条下划线。 这个功能,我倒是挺愿意有的。但是你能不能直接通过固件更新推送啊啊啊啊,每次固件一推就V某某下到 Kindle 上手动更新,结果还是没有下划线… 终于!灰度热更新灰度到我了。 但是!但是!!但是!!! **你这个笔记标注怎么和我想的不大一样啊?**这下划线居然只有标注的时候才显示… 只要回到普通模式,又是祖传大灰条… 更无语的是,编辑的时候你下划线就下划线吧。非要和祖传大灰条叠在一块是什么意思?!完全就是个几不像好不好…
好吧,坐等 Kindle 再次更新。下划线笔记仍然遥遥无期…
前一篇文章 已经提到了如何使用 Arcade 这一十分方便的在线游戏编程学习平台。那么这次我们就来正式开始写游戏吧!
进入 Arcade 并创建游戏项目 首先,请戳 这里 进入 Arcade 平台。在页面加载完毕后,找到“我的项目”,并点击大大的紫色按钮“新建项目”。 新建项目可能需要一点时间,请耐心等待进度条停止显示。 当界面变成下图模样时,即代表项目已经创建完成。可以开始了! 游戏主人公 —— 精灵 在 Arcade 中,游戏主人公以及其它各种各样的 RPG 都有一个统称,叫做“精灵”(不要问我为什么叫这个)。 通过创建精灵,你可以为游戏添加主人公、NPC、怪兽、云(对,就是每天在我们天上飘的那个)、子弹(对,你没有看错,它真的可以干这个)等等… 可以说,这个是游戏里面相当重要的一环了。
创建精灵 那么,该怎么创建一个精灵呢?很简单。点击左侧的“精灵”分区,把这个方块拖出来即可。 给精灵皮肤 你一定不会想要你的主角在屏幕上是透明的存在吧(当然如果你要五毛钱特效当我没说)?为了让主人公富有活力,同时让玩家有玩这款游戏的欲望,我们需要给精灵一层皮肤。 当然了,手动绘制一个精灵的皮肤不是我们这篇博文的重点。故我们就使用 Arcade 自带的主角皮肤就好(相信我,其实自带的皮肤还挺帅的)。
要给精灵加上皮肤,请找到你刚刚拖出来的方块,点击这个灰色的地方。 接下来,你应该会看到这样的一个弹出框。这个就是皮肤的编辑框了。 然后,我们切换到“Gallery”分栏里,选择 Arcade 自带的主角皮肤。选择完后,点击“完成”。 这样,我们的主角就有皮肤了。
Arcade 目前只支持 16 位色的显示! 如果你是一个特别喜欢各种颜色搭配的 Geek,那么 Arcade 也许会让你小小的失望一番 —— 其(不包括透明色)只支持 16 种颜色的显示。 这也是为什么皮肤编辑器里没有“RGB调色板“一类东西的原因。不过相信我,16 位色在学习游戏开发的过程中完全够用,因此不需要太过于担心。
让主人公动起来 你也许注意到了一点:我们现在拖出来的那个方块“失去了颜色”。这是不是在提醒着我们什么?如果你敏锐的感受到了这一点,那么 pokon548 向你表示小小的祝贺!的确!这提醒我们:这个方块目前不会产生实际的效果。 什么意思呢?让我们先点击左侧的“播放按钮”看看目前这个项目运行的结果。 你会发现:左侧模拟器的“屏幕”上最终什么都没有。没有显示出我们刚刚创建出来的主角。怎么回事呢?
一般游戏的运行逻辑 这就要谈到目前常见游戏的运转逻辑了。在现代的常见游戏中,无论是选关、得到道具、NPC 的交流、主人公的行走等,都是在一个循环里面进行的。 而要让这一切发生,我们首先要进行“初始化”操作。如果你不明白这个词的含义,举个例子:要让主角在后面的循环中动起来,我们必须要先有一个主角才行(不然主角是幽灵吗滑稽)。不然后面的循环里我们要操作什么呢?
进行“初始化”操作 回到项目上。我们刚刚创建“主人公”这一动作其实就是“初始化”操作的一部分。而为了让这个方块发挥其初始化主角的作用,我们要把这个方块拖动到绿色的“当开机时”的方块内。 下面是操作方法的动态示意图: 你看,方块是不是恢复到正常颜色了?我们现在再试试点击”播放“按钮,看看项目的运行情况。 我们的主角出现了哦!真棒!
让主人公能够运动起来 也许你之前曾试过点击左侧模拟器的方向键。如果没有的话,pokon548 推荐你现在就点点看。 没有任何效果?那就对了。因为我们还没做好这个功能呢!唔…接下来我们要做的,就是让主角能够在我们按下方向键的时候动起来! 听起来似乎很复杂的样子。但是在 Arcade 里面,我们只需要另外一个方块就可以搞定啦!
丑话先说在前:搭建 Proxy 这件事本身存在着争议性。如果您所在的地区对于在线全球上网抓的很严,请不要这么做。否则被请去喝茶的话,pokon548 不负任何责任 :)
网络环境越来越紧张。现在很多的代理都不能用了,存活下来的,不少都存在着时断时好的情况。为了流量去中心化,可以考虑自己搭建一个在线 Porxy,以减小 Proxy 被查到的可能性。 好了,废话不多说。下面进入正题。
申请 Heroku 账号 因为在线全球上网是一个项目,所以我们需要一个主机才能运行它。但是不用担心,有一家国外的主机商 Heroku 有免费空间方案。那么我们就用这家吧! 首先要做的第一件事,就是去申请一个 Heroku 账号。这个站点位于国外,有免费的空间托管方案。对于我们这种小型在线全球上网来说很适合。 不过这个站点所用的机器人验证器 reCaptcha 被 X 掉了,所以在国内没办法正常注册。怎么办?pokon548 自己目前就有一个在线全球上网节点,你只需要通过这个在线节点注册账号就好。 戳我 如果一切正常,如上图所示,你应该可以看到验证码的身影。那么,该怎么填注册信息就怎么填吧! 填完记得要点验证码进行验证,不然是不能通过注册步骤的!
登录 Heroku 账号 注册完毕之后,你就可以用刚申请的账号密码登录到 Heroku 了。 注意!由于在线 Proxy 本身的问题,在登陆完毕后会因为 URL 异常导致后续流量不再经过 Proxy 而可能使得页面无法继续加载。如果你遇到这种情况,你可以试试不使用 Proxy 打开这一页。如果行不通,建议你开启科学上网模式后继续尝试登录。至于有什么科学上网的方法…自己找吧 :)
导入项目 下一步,就是从 GitHub 上把在线全球上网的项目导入到 Heroku 里了。请点击 这里 ,找到位于下面的“Deploy to Heroku”按钮。点击进行导入。 同样的,该步骤不能使用在线全球上网进行操作。 其中,App name 填入你想要给在线全球上网项目的命名。建议不要是一个较为敏感,但却好记的文本(因为后续站点的访问会用到这一文本)。 Choose a region 个人建议点一下选择框后下拉选择 Europe(看你自己所在地的情况),因为选这个节点能够保证在晚上也有较好的速度(个人测试)。 当一切填写完毕后,点击下面的“Deploy app”开始导入应用。
导入需要时间,请耐心等待… 当导入完成后,你应该可以再页面底部看到“Your app was successfully deployed”的字样。这也就意味着你完成了搭建工作。可以开始使用了。 点击下面的 View,就可以看到你的搭建成果了!
看文档,一定要找对应版本的 Django 是一个相当活跃的开发项目,即使是同一个大版本下的 Django 都可能没办法向下兼容。
项目里的 urls.py 并不和 manage.py 在同一文件夹下 而是在文件夹里面的。 举个例子:假如说我的站点项目名是“mysite”,那么 urls.py 就应该在:mysite/mysite/ 下。
官方文档写得很好! 新手教程媲美实体书籍。学习 Django 跟着 Django documentation 走就好了! 顺带一提,提供 epub 版书籍超级良心!用 calibre 转成 azw3 后放在 Kindle 里随身学!
遇到莫名其妙问题时的解决方法 用 pip 把 Django 更新到最新版本。 确保 Python 版本在 3.5 以上(点名 Debian 系)。 如果是以前版本的 Django 创建的项目,在没有多大价值的情况下直接删了重建或者在新空模板的基础上移植一遍。 Django 不应该因为 GIL 而被否定 事实上,Django 本身从来就不专注于服务器本身。它只是一个专业的 Web 框架。要用于生产环境的话需要用一些专业的服务器软件,如 Gunicorn 搭配 gevent 协程框架来实现生产环境下的高并发请求场景。
Django 后台菜的一笔? 你可能需要 Jet Admin —— 最近看到的一个漂亮且使用的不像话的后台。而且,它是开源的。