源码及效果图见GitHub:https://github.com/bigsinger/Farm

起因是要做游戏保护,需要了解游戏引擎并创建demo进行自测使用。于是先从比较简单的cocos了解,由于本人对Lua脚本比较熟悉,而且手头有一些从其他游戏里扒出来的资源和Lua脚本,想着可以复用,所以打算从cocos2dx-lua开始着手。

慢慢地发现Lua写起来也很费劲,倒不是对设计模式和脚本的不了解,而是cocos导出的接口什么的不熟悉,虽说可以查官方文档,但毕竟是非强类型的动态脚本语言,返回的类型什么的不确定,而且没有智能提示,写起来很是痛苦。

遂放弃Lua脚本,想着对 C++ 很熟悉,于是转用 cocos2dx 4.0的C++版本,代码写起来是顺手多了,而且设计模式和框架搭建也很轻松。但是,但是,在UI界面设计上却是非常麻烦,不能所见即所得,往往是界面设计远远跟不上代码的编写,很是痛苦。

于是C++版本的农场偷菜小游戏,也就写了个大概就果断终止了。

然后看cocos官网,了解到了cocos creator,下载体验一番后,发现在UI界面设计上的确是个神器,可以不写一行代码就可以快速出原型,而且是所见即所得,速度非常之快。

但是,也有一个问题,就是代码编写远跟不上UI界面的设计速度(至少是少了一个远),因为是使用的JavaScript语言,这个语言我一直不太满意,也比较抵触。但是没办法,JavaScript的江湖地位是有原因的,特别是随着web和移动互联网的发展一路崛起和火热,这是跟着时代的潮流走对了方向,本人是很恶心这门语言。

但是抛开个人感情色彩理性地去考虑,JavaScript和Lua脚本一样,都属于非强制类型的动态脚本语言,它们的优点也是它们的缺点,在快速开发和系统性设计及大型项目中,有 2 个天然不足:类型不明确不支持智能提示、没有面向对象思想,要知道这些缺点可是致命的。

所以,我也就快速搭建了下UI界面效果,没打算多写JavaScript代码。

于是思考:特么的,为什么就没有一个脚本语言能有强类型而且支持面向对象思想吗?

幸运地是,翻看网上博客的时候了解到了TypeScript,强类型而且支持面向对象,尼玛简直就是我所需要的,想想也是,我能感受到痛苦其他开发者也一样感受到痛苦,编程语言往往就是这样应运而生的。

翻看TypeScript百科,原来它诞生很多年了,是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。

从网上了解到这货前几年已经很火了,感叹自己为何现在才去了解?因为一直都秉持:技术的编程语言都差不多,掌握自己熟知的语言就足够,没必要学那么多让人眼花缭乱的编程语言,看来这个想法是错误的,编程语言可以不去学,但是一定要知道有这个东西,可以尝试去了解其设计思想,有何优点有何缺点,背后诞生的动机。

可以去类比的语言诸如csharp、Python、go、kotlin、php等等,想明白了就知道为什么kotlin不会火起来,为什么C/C++、Java可以长盛不衰。

回头再去看TypeScript,它正是解决了我上述遇到的痛点,解决了广大的开发者的痛点。

然而,解决了这些问题还并不是很完美,再回到cocos creator上来。

UI设计太强劲了,而且可以跨多种平台,让开发者的效率成百倍的提升。

但是代码开发上我觉得仍然不是很完美的,即使是采用TypeScript,我说说几点个人感受:

  • 代码编辑依赖外部专业的编辑器,IDEA的webstorm应该是最专业的了,但是貌似用起来又太重,VSCODE不算完美但是轻巧,所以官方也是推荐用VSCODE,但说实话VSCODE还是差的太多,连自家的VisualStudio都差一大截。
  • 代码编写还是蹩脚,写起来不顺,绑定关系看着有点晕,说是数据和功能分开,但是真搞不清,可能我对这个工具还是不熟
  • 程序启动逻辑不够系统化,都是分散的片段、片段……

虽然上面的各种不爽,但是估计是对前端开发人员来说可能已经足够好了。cocos creator利好的可能是美工人员以及H5小游戏的开发者。

鉴于以上的经历和认识,后面代码我是不打算写了,这次摸清了几件事:

  • 以后不碰JavaScript了,有TypeScript就选择TypeScript,没二话!
  • cocos creator 做原型设计,UI界面没话说,快就一个字!与之对应的白鹭引擎可能也是类似的,有机会也体验一下吧。
  • 有空可以看看cocos creator的官方示例和视频教程,了解优秀的设计思想。
  • 有空可以看看其他人写的cocos creator+TypeScript例子,看看是否真正解决了自己的痛点,还是说它本身就是这么回事。
  • 最后感叹:程序员似乎都是在为他人解决痛点,很少能为自己的同行解决,如此看来,csharp、Java还真是目前思想和设计上一流的语言。
  • 脚本编写也是基于cocos2dx引擎的,引擎本身才是核心,游戏脚本编写会了又怎样?也不过是搬砖,但话说话回来也可以去实现自己心中理想的游戏世界,有情怀的也可以去创造自己的作品。
  • 会写小游戏跟写一个好玩的游戏、能赚钱的游戏之间还差十万八千里,会写只是说入门了,可以开始搬砖了,但话说话回来也可以去实现自己心中理想的游戏世界,有情怀的也可以去创造自己的作品。
  • c++ 这块的语言优势没有利用起来,建议是让引擎、ui设计与游戏代码开发分开,cocos creator生成的界面也能为 c++ 版本使用,界面数据可以分离导出使用,这块可以参考protobuff的设计思想,有一个自动生成的工具。
  • 要想一下unity比cocos更火的一个原因,除了游戏ui设计(这块最终都会差不多),它还采用了一个绝佳的编程语言csharp
  • cocos乱象,什么cocos、cocos2dx、quick、 什么studio、什么creator 让人眼花缭乱,分不清都是什么跟什么,乌七八糟。
  • TypeScript(含js)会继续热下去,也会一直是小游戏的主流语言,没办法,趋势如此定位如此,跨平台及前端大军的市场份额已经很难再动摇其地位了。
  • 可以多了解下游戏的周边工具,真的蛮有意思,设计也很有创意,这次就从零接触了:cocos creator、Tiled Map Editor、Cocos Studio、TexturePacker、TextureUnPacker、DragonBones,推而广之,就是很多东西你可以不必深入学习掌握,但是了解下也能开开脑洞和思维。

最后,把效果图贴上来,这个效果如果简单了解cocos creator的用法(如果不了解也没关系,花5分钟就可以了解了,就是如此神器),几分钟就可以搭建出来了,主要是素材的积累。素材在真实项目中要靠美工,我这个全是网上搜索的,有一部分使用了Farm: SDL SDL_Engine开发的一个农场类游戏里的资源,有一部分是从老版本的率土之滨里扒出来的资源,以上资源均是学习研究使用,均没有做其他目的使用,如果侵权请告知,会在第一时间删除。

把项目也全部开源上传到GitHub,有兴趣的可以参考学习,也可以在上面迭代。

cocos编写农场偷菜小游戏的总结相关推荐

  1. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

  2. python小游戏代码大全-Python编写的点灯小游戏代码

    Python语言编写的点灯小游戏代码及思路如下: 点灯游戏及其求解的方法, 点灯游戏的游戏规则: (1)有个N行N列的灯板,当你开关其中一盏灯: (2)它和上下左右的灯的状态全部反转,目标是将全部的灯 ...

  3. c++编写手机小游戏代码_只需22行代码,用python编写自己的小游戏

    假期最后一天,有些人在外面玩累了,有些人躺在家里快发霉了,闲暇时候不如动动手做个小游戏玩一玩吧! 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 1 import ...

  4. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  5. 10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  6. 【第三篇:利用ChatGPT编写贪食蛇小游戏】

    好像现在最近对ChatGPT讨论越来越热,ChatGPT的出现应该会引发"一次新的社会变革",未来很多码农会失业啊!与其坐着被改变,不如尝试主动改变,我今天就利用ChatGPT编写 ...

  7. 使用C语言编写三子棋小游戏

    使用C语言编写三子棋小游戏: 首先进行分析: 1.需要将游戏实现分为三个部分:头文件,函数功能实现,游戏组合测试. 2.游戏可以循环进行,不必多次打开,可采用 do...while循环结构. 3.游戏 ...

  8. cocos creator开发微信小游戏(五)贪吃蛇大作战

    目录 小游戏介绍 小游戏cocos creator场景图 小游戏部分JS代码 开发中碰到的问题 工程及说明 小游戏介绍 贪吃蛇小游戏:贪吃蛇试玩(首次加载比较慢),类似贪吃蛇大作战的小游戏.当玩家的蛇 ...

  9. Cocos Creator发布微信小游戏包内体积过大问题

    1.初识 设置微信开发工具和js编辑器 3.5.2 :Cocos Creator perferences 2.Cocos Creator发布微信小游戏包内体积过大问题 2.1 已不可取:搭建本机服务器 ...

最新文章

  1. 沫沫金:Java快速合并两个数组【绝技】
  2. windows中端口号(port id)和port的区别,如何通过端口查看进程pid,如何通过pid查看程序,如何通过pid查看端口?
  3. Java开发技巧:Java如何编译运行?
  4. SQL Server查询所有数据库下模式schema
  5. 95. 不同的二叉搜索树 II
  6. java中数据结构_JAVA中数据结构总结
  7. 4月30日火车票今日开售,多个线路“一秒没”
  8. Kubernetes安装部署
  9. mysql 临时列可以判断,mysql数据库常用命令
  10. 在VFP里玩SQL查询
  11. HTML5项目实战之旅行社网站——移动端流体布局
  12. 《让×××飞》经典影评
  13. 申请计算机软件著作权费用,申请计算机软件著作权费用多少有哪些费用
  14. 用python写一个解一元二次方程的类
  15. vim的复制、粘贴操作
  16. 借助CatGPT让turtlesim小乌龟画曲线
  17. 陕西黑布林滞销只是一篇营销广告,炒作夸大背后多是利益
  18. 敏捷转型行动笔记:内部敏捷教练实践
  19. 资源——对话框(Dialog Box)
  20. c语言 位赋值,【c语言】位段赋值的例子

热门文章

  1. 3. PyCharm、PyQt5、PyQt5-tools的下载安装、基于PyCharm开发PyQt5
  2. 六.卡尔曼滤波器开发实践之六: 无损卡尔曼滤波器(UKF)进阶-白话讲解篇
  3. 使用蓝牙耳机玩游戏声音卡顿延迟问题
  4. 思维升级-如何设计一个秒杀系统?
  5. 深度网络的训练经验总结(参数篇)
  6. Django建立博客搜索功能(haystack+whoosh+jieba)
  7. 75个JavaScript面试题集锦,内含解答,自测 JS 掌握程度
  8. dorado弹框方式
  9. 对二级指针分配内存及理解
  10. python情感分析步骤_使用python+机器学习方法进行情感分析(详细步骤)