一款好玩简单的开源机器学习框架
码字也能如此 Awesome?这个列表能帮你
总觉得自己的码字技术不精,写出来的代码自己都不想维护?亦或者是总觉得码字是一个辛苦的活,没啥好的资源能帮你?…
在线用基于 Official API 的开源在线版电报机
至于你不知道什么是电报机?抱歉告辞(
Django 新的摩登后台 Jet Admin
众所周知才怪,Django 自带的后台并不是那么好用。而且界面于功能实在太过简陋,不是很能迎合后台管理需求。 在不跳槽其它框架的情况下,怎么办呢?pokon548 最近就找到一个特别好用的在线后台管理程序 —— Jet Admin。它能为 Django 提供后台管理服务。 它不止能为在线项目提供服务,就连我们在本地上运行的测试项目( http://127.0.0.1 的这种)也 OK!是不是很神奇(对于 pokon548 这种一点都不精通 Web App 的人来说,当然是拍手称好啦)。
特点 pokon548 光说好用当然不够,那就边上图边介绍好了。
高度可自定义的 Dashboard 哪些数据很关键要时刻关注?哪些数据要转换成图表?Jet Admin 都能帮你做。 比如 pokon548 自己正在做一个问卷调查的练手项目(Django 官方的新手教程)。通过选用 List,可以快速了解我有哪些 Questions,和哪些 Questions 有哪些 Votes… 当然,Django 后台的常规操作(添加、修改、删除数据)也是一个都不落下。
漂亮 至于怎么个漂亮法,看看官方的介绍图就知道了。 测试项目也能用 是的,你没有看错。用 runserver 跑起来的 http://127.0.0.1 测试服务器也能用!对于开发者实在是太友好了,不是么。
隐私 Jet Admin 声称自己的服务器是不能主动碰不到部署端的数据的,必须借助在项目里面加入的 Jet Bridge 才能对数据进行操作。而且 Jet Bridge 在 GitHub 上是开源的。 他们自己的隐私声明如下:
Jet Admin is built in a way that it hosts only your admin panel interface.
用 Arcade 学习写一款 RPG 游戏 —— 与场景发生交互
在 上一篇文章 中,我们绘制了主人公周围的场景。不过为了推进游戏进度,我们还需要主人公能够与环境中的某些元素发生交互关系。那么,今天我们就来试试做出这个功能吧!
找到上一章 Arcade 的代码 之后的每一次博文,除非另有说明,都会使用到上一次遗留下的项目。请妥善保管好。那么,现在就在 Arcade 主页里找到并点开它吧!
更多样化的地图 在上一次博文中,我们只在模板里用粉色构成了地图的模板。事实上,模板里最多可以容纳十六种颜色所对应的色块。不同的色块可以对应不同的材质和不同的功能。 在这一片博文中,为了示范,我们将用到绿色的新色块来增添一个“会和主角互动的小草(???)”。
添加绿色色块 那么,我们先找到之前的地图模板,并点开它。 为了添加绿色色块,我们需要更换画笔的颜色,并在地图的某一个位置点上绿色色块。如之前那样,色块的位置是随意的。只要你不点在主角出现的位置(地图中央)就好。 OK。点好了。别忘记点击“完成”保存模板。
将绿色色块赋予小草的材质 通过上一章的学习,这一步操作应该很简单了吧。就不再多说了。最后的结果应该和下图是一样的。 然后,将其附加到粉色色块赋予材质的方块的后面。 现在点击播放按钮看看,小草是不是出现了呢? 让小草能够与主人公互动 现在的小草,只是一个没有生气的材质而已。而我们想要实现的目标是:与主人公发生互动。 为了让小草能够与主人公互动,我们要先让 Arcade 能够检测到”主角靠近了小草“这一动作。
检测靠近 —— 当碰撞时 检测碰撞这事在游戏里很常见。举个例子:在游戏中,如果来自敌方的子弹“碰”到了主人公的身上,游戏就会检测到这一行为,从而让主人公扣血或者 GG 等。这种事在设计类游戏中更是屡见不鲜。 当然,在这篇博文中,我们不会涉及到那么复杂的碰撞检测。pokon548 在初学期间,秉承“抓大放小”的原则:即在初学阶段先学好知识主干,细枝末节的东西等到学完了之后再快速补充就好。 说了那么多,我们先开始实践吧。
为了让 Arcade 能够检测到主人公靠近小草的动作,我们要在“场景”分区内找到这么一个方块,并将其拖出来。 这个方块看起来似乎更加复杂了。但是没关系,pokon548 下面的比较详细的介绍相信能让你明白它各个组成部分的重要作用。
红色的“按钮” 这代表着当碰撞事件发生之后,我们在这个方块内部可以引用到的精灵对象。不知道对象是什么?那好,这里稍微详细的介绍一下。 对象,在面向对象编程方法里,代表模板的实例。什么意思呢?就拿基因和生物之间的关系做比好了(虽然不是特别恰当,但是有助于你理解这一概念)。要产生生物,就必须要有基因作为生物的模板,通过一系列步骤,合成各种各样的蛋白质,最终组成了生物。在这里,生物就是基因的实例。基因本身虽然不是生物,但它定义好了生物的一切行为,是一个模板。而由这个模板翻译而来的生物,就叫做对象。 哈?还是不懂?没关系那就忽略吧。这不重要 :)。在这个简单的实例中,我们不会用到这个东西,无须过于担心。保持默认值就好。
蓝色的“按钮” 这代表着触发事件的精灵的类别。在这里,我们想要类别“玩家”去发生这一动作,故保持默认的“Player”类别即可。
灰色的区域 又见面了!在这个地方,它代表着能够和主人公发生互动的色块颜色。我们想要的是绿色色块代表的“小草”与主人公发生互动,故这里我们要将其改为绿色色块。 怎么操作?相信已经精通前一章的你知道怎么操作了吧!啥不知道?…好吧,再演示一遍。记在小本本上了啊要考的 好了,这样 Arcade 就能检测到主人公靠近小草的这一行为了。
将方块留在原地!不要拖 你也许会说:哎接下来是不是要把这个方块拖动到绿色的“当开机时”方块里去啊?这就不对了。事实上,这个方块我们不需要拖动。留在原地就可以了。 为啥呢?其实只要原理讲明白你就懂了。还记得这个方块的动作是啥么?是“当主角碰到小草时,要…”。这个动作不是在开机时要完成的“初始化动作”,而是在游戏进行时会随时发生的事件。很显然,这不是一个初始化操作,而是一个“动作接收”的操作。哈?云里雾里?没关系的啦,看看编程相关的书籍你就知道了(好吧,其实只是因为 pokon548 修行不高,没法解释的特别清楚)。 故我们将其留在原地,不是没有道理。相反,很符合逻辑。
让主角说话 为了检测我们这一方块是否生效,我们要让这个事件发生的时候做点事情。做些什么好呢?…有了,让主角说一句“啊小草”(??)吧。 为了完成这一动作,我们要从“精灵”板块里找到这个方块,并将其拖到灰色方块内。 这个方块看起来很友好。为了让主人公成功表白说话,我们需要更改”:)”为”啊小草”。 好了,这样应该就好了。让我们点一下“播放键”,并用方向键移动主角到小草上,看看效果吧!…哎怎么不行呢? 最后一个选项的作用 这是怎么回事呢?你一定会想。是不是 pokon548 菜的一笔啊才不是呢。事实上,我们一直忽略了一个选项。而这个选项,是这个问题的根源。 什么选项呢?还记得上一章里面定义色块对应材质的时候的那个方块吗?想不起来了?没关系,这里再把图贴上来。 就是这个方块的最后一个选项。pokon548 先不说作用,你先按照下面的步骤把有绿色色块的那个后面的选项点成“开”试试。 之后,再运行项目看看。是不是就可以了? 一片空白?主人公说的话呢 截止到目前,Arcade 正式版里还没有完善对于中文的支持。但是在 Beta 版里面已经可以了。 要访问 Beta 版并查看实际效果,只需要访问这个链接即可: 点我 以下部分是在 Beta 版里运行项目的结果。 这么神奇?实际上很简单。这个选项的作用就类似于“把虚拟变现实”:把这个色块对应的景物独立出来,使之能够与主人公发生交互。这个选项就起怎么个作用。 怎么样,感觉是不是挺好的?