专栏首页Crossin的编程教室不就是小游戏嘛,分分钟给你写一个

不就是小游戏嘛,分分钟给你写一个

微信小游戏

微信群里最大的骚扰源有两种:

一是转发#吱口令#~!@#¥%……&*,长按复制此消息领红包之类的

另一种就是各种小程序和小游戏的分享

前天有同学无意间把一个小游戏分享到了答疑群中,我看了一下,其实游戏的代码逻辑并不复杂(简化版的跳一跳,套上个吃鸡的主题),于是就随手立了一个FLAG:

正好我最近也有研究下小游戏的打算,趁周日没什么事,说干就干吧。

不过作为上手项目,我选择了一个更熟悉的游戏:打飞机

话不多说,先上成品:

识别二维码进入打飞机游戏

文章刚发出去一阵子估计人会很多,游戏加载慢,打不开可以稍等一会儿。

老读者应该知道,之前我们用 pygame 做过这个打飞机游戏的教程。公众号(Crossin的编程教室)对话里回复关键字 pygame 可获取教程及代码。

但 pygame 开发的游戏是无法通过网页发给别人在线玩的,更不能做成微信小游戏。

所以我这次是用了游戏引擎 Cocos Creator。它使用 JavaScript 作为开发语言,开发出的游戏可以直接生成微信小游戏、网页、iOS、安卓等平台上的版本。冲着这一点,也就勉强可以忍受用 js 开发的痛苦了。

除了 Cocos Creator,其实我最近也尝试了另外两个比较常用的网页小游戏引擎:EgretUnity

简单分享下我的体验:

Cocos Creator

我是 cocos2dx 的老用户,从很早版本就开始使用,用它开发过商业游戏。cocos2d 最早源自 python,之前教室也发过一些用 cocos2d 系引擎(python/js)开发的游戏(分别回复关键字 贪吃蛇皮皮虾火箭),但说实话,各种版本和小 bug 让人体验真的不太好,所以我是想着换别的试试。但 Cocos Creator 意外地让我眼前一亮。它其实已经抛弃了以前 2dx 的开发流程,改走组件化、数据驱动的模式(应该是借鉴了 unity 的优点),跟 cocos2dx 可以说是完全两样东西了。虽然我觉得有些地方让人不习惯(主要是 node 和组件的关系变化),另外代码提示和调试信息还是比较弱(也可能是我姿势不对),但总得感觉还行,应该是比较适合我自己的需求。

Egret

Egret 在前两年 HTML5 小游戏刚兴起的时候发展非常快,一整套的开发工具也很完善,不仅可以写小游戏,也可以写 HTML5 的移动页面。但我这次在用的时候,在第一步用户登录的地方就卡住了,各种无法连接,就根本用不了开发工具,官网搜了一圈也没找到解决方案(听说开发者群比较活跃,需要在那里问问题)。后来好不容易才弄成功了。Egret 还是基于代码的开发模式,有一系列配套工具处理开发中的各种环节,个人感觉更适合团队分工使用。

Unity

Unity 作为世界级的老牌引擎,功能足够强大,跟前俩就不是一个级别的(Cocos Creator 大概就是 2D 低配版的 Unity)。但从另一个角度来说,也因此太“重”了。而且因为各种素材是基于 3D 模型的,需要有一定专业技能才能搞定。当然它也提供了素材商店,里面有很多免费素材可以使用。之前我们的文章 地球上所有人站在一起会是什么样? 里就用到了 Unity。

所以仅从我个人开发小游戏自娱自乐的角度来看,我本是想抛弃过去 cocos 那一套东西,结果试了一圈发现 cocos creator 更适合……当然这不代表其他的引擎不好,还是要看你的需求,选择合适你的。

今天这篇我就不讲游戏的代码实现了,感兴趣的可以先看看代码,地址见文末。因为一来是改用了 JavaScript,二来数据驱动的模式和之前代码驱动的模式有很大的区别。

举个例子:以前你要在游戏上显示一行文字,你需要在代码中定义一个 Label 对象,添加到显示层上,设置它的位置、显示效果、显示的文字内容。而现在你只要拖动一个 Label 组件到场景中,在属性面板上输出相关数值即可。

之后我也会写更多的小游戏,对此感兴趣的同学,或者有什么好玩的点子,都可以留言讨论。

本文分享自微信公众号 - Crossin的编程教室(crossincode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你的游戏开发第0课

    电子游戏是许多人喜爱甚至沉迷的事情。尤其对于程序员来说,开发游戏是不少人最初学习编程的动力。在之前,我发过一些游戏开发的教程和案例:

    Crossin先生
  • pdfkit,生成PDF就靠它了

    在用 jupyter notebook 写代码文档的时候,有时需要导出 pdf 版本,但可惜我遇到了报错,无法导出。我就想,还没有其他方案可以生成 pdf。

    Crossin先生
  • Python 办公小助手:修改 PDF 中的表格

    日常工作中,我们或多或少都会接触到 Excel 表格、Word 文档和 PDF 文件。偶尔来个处理文件的任务,几个快捷键操作一下——搞定!但是,偏偏有些烦人的工...

    Crossin先生
  • 他是游戏开发者,也是“偶像制作人”

    微信在观察小游戏开发团队时发现,很多小游戏团队其实并没有传统游戏行业的研发经验,甚至很多开发者都不是游戏行业从业者。 这表明越来越多的非游戏开发者正在加入小游...

    腾讯NEXT学位
  • java和php哪个发展方向更好?

    写代码已经十几个年头,现在还在写着代码,估计代码要持续到年龄大了一直到写不动为止了,写过几年的java代码,php代码没有具体写过,从目前市场上就业的职位数量还...

    程序员互动联盟
  • Cocos技术派|3D小游戏《快上车》技术分享

    7月初,Cocos Creator 3D 发布了第一个公测版本,超过千名开发者报名参与公测。为了高效收集测试反馈,集中精力进行产品的迭代和优化,快速推动产品达到...

    一枚小工
  • Python 最火,R 极具潜力:2017 机器学习调查报告

    数据平台 Kaggle 近日发布了 2017 机器学习及数据科学调查报告,这也是 Kaggle 首次进行全行业调查。调查共收到超过 16000 份回复,受访内容...

    小莹莹
  • 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)

    32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计...

    IBinary
  • laravel中进行模块开发

        命令:  php artisan make :module 后面写模块名称  (示例中使用Admin)

    Sindsun
  • 【Go 语言社区】 golang 算法课程 第一季 第2节 洗牌算法

    扑克牌洗牌是我们生活中比较喜欢玩的一个游戏。那么我们有没有什么办法自己设计一个扑克牌洗牌的方法呢?在运行库当中有一个随机函数rand,它可以生成0~32767之...

    李海彬

扫码关注云+社区

领取腾讯云代金券