由于我个人受到传统农场类游戏的熏陶,因此萌生出了开发一个类似于QQ农场的游戏。

本次游戏打着SDL的幌子(这么说自己真的好么),其实使用的是SDL_Engine,它是我闲暇时模仿cocos2dx而写的一个游戏框架。个人认为了解下SDL_Engine框架是有点用的(去掉了cocos2dx中精华的部分,然后加上自己写的糟粕-_-),但是不太建议使用这个框架(里面的坑比较多);然后就是SDL_Engine的API等类似cocos2dx,不过尽管如此,他们之间并不兼容,所以代码只能在SDL_Engine下运行,不过开发嘛,重在思想。

好了,废话不多说,我已经完成了大部分的功能,其运行界面大致如下:

上面是种植界面,不太善于界面,因此种植界面、背包界面和商店界面类似,只不过逻辑不同,比如种植界面是种植作物,而商店主要是购买。

大致说下农场游戏的整个框架吧,如下图:

  • FarmScene:农场游戏的主场景,负责层之间的调度和通信。
  • 土壤层:负责显示整个地图,同时也负责管理土壤,比如增加土壤、土壤的状态的更新等。
  • 作物层:负责管理作物和显示作物。
  • 农场UI层:负责显示一些控件,比如打开商店、打开仓库等。
  • 特效层:负责显示特效,在这里主要负责显示作物的成熟特效。
  • 对话框:目前大致分为两种对话框,一种是滑动条对话框,主要用在出售/购买时确定物品的个数;另一种则是通用的对话框,来确定是否进行某种操作。

本游戏可以认为是MVC框架,View主要交给了SDL_Engine内的Sprite进行渲染;Controller则是FarmScene和上面的几个层以及它们之间的交互;Model则主要分为两个类:StaticData和DynamicData类。顾名思义,StaticData负责静态数据,即在游戏运行过程中不会发生改变的数据,比如作物的种子价钱、成熟时间、预计产量等;DynamicData类则主要负责在游戏过程中时常变化的数据,比如金币,背包内的物品等等。

在此推荐以下两本书,是我个人认为cocos2dx入门比较好的书籍(排名不分先后):

《cocos2dx游戏开发之旅》,这本书是我的入门书籍,里面的内容确实不错。(SDL_Engine中的UI系统就是参考的这本书)

《制作自己的捕鱼达人》:这本书也很不错,前面逐步讲解了相关知识在捕鱼游戏中的应用,后面则是开发实战环节,实战环节让我收益颇丰。

本系列托管于github:https://github.com/sky94520/Farm

农场的碎图文件:https://download.csdn.net/download/bull521/10821689

另外,我的开发环境是ubuntu,使用了cmake作为编译工具,如果移植到其他平台可能需要改变编码和行结束字符。

SDL农场游戏开发 1.环境搭建相关推荐

  1. SDL农场游戏开发 7.物品显示-背包层的编写

    1.update函数的实现 上一节实现了FarmUILayer类,它负责显示各种UI控件,不过当前的问题就在于作物状态面板的时间并不会每一秒刷新一次,这是因为我们还并没有调用对应的update函数. ...

  2. SDL农场游戏开发 11.总结

    1.总结 到目前为止,整个游戏的开发已经完成了,整个开发过程跨时比较长,实现的基本上是比较完整的游戏了,当然了,单纯的农场类游戏目前可能有些无趣,所以下面我提供一个思路,以便于将不同游戏结合起来. 2 ...

  3. SDL农场游戏开发 4.Crop类,作物的产生及成长

    首先,先创建一个Entity类.该类的内部有一个精灵对象及相关操作来专门负责显示,以后需要显示的类都可继承自Entity类.比如Crop类的父类就是Entity. 问:为什么Soil类不继承自Enti ...

  4. SDL农场游戏开发 2.地图与土壤层

    本游戏的地图使用的是tiled这个软件导出的*.tmx(xml格式),地图类型是45度方向,以前曾经研究过45度与90度地图的区别,最后发现区别不是很大,主要在于图块的不同,90度地图的图块一般是矩形 ...

  5. SDL农场游戏开发 3.StaticData类

    前面说过,StaticData类负责管理程序在运行过程中不会发生变化的数据,如下为Resources目录结构: data文件夹保存着一些静态数据,比如crops.csv文件保存着作物信息,soils. ...

  6. QEMU imx6ul开发板环境搭建

    QEMU imx6ul开发板环境搭建 文章目录 QEMU imx6ul开发板环境搭建 0. 前言 1. 基本环境 2. 安装KVM 3. 下载开发板的QEMU镜像文件 4. 运行QEMU系统 4.1 ...

  7. BI报表开发之环境搭建(二)

    上一篇<BI报表开发之环境搭建(一)>中详细描述了SQL SERVER R2 的安装步骤,本篇将继续描述BI报表开发的环境搭建部分-- Orale数据库安装. <1>下载ora ...

  8. auto.js id为参数滑动_【Autojs教程】02Autojs PC端开发调试环境搭建

    [Autojs教程]02-Autojs PC端开发调试环境搭建 写在前面 本篇教程算是保姆级教程了,希望以此能吸引更多感兴趣的同学学习Autojs,也希望大家能因此碰撞出更多的奇思妙想 关注微信公众号 ...

  9. 小程序开发及环境搭建及发布

    一.小程序开发及环境搭建 1.下载Hbuild X https://www.dcloud.io/hbuilderx.html 2.下载腾讯开发工具 https://q.qq.com/wiki/tool ...

  10. 超级便宜的鸿蒙开发板环境搭建-编译-烧录

    超级便宜的鸿蒙开发板环境搭建-编译-烧录 1.下载代码.编译工具和烧写工具 打开https://gitee.com/hihopeorg/Neptune-HarmonyOS-IOT下载代码 打开http ...

最新文章

  1. windows下mysql安装配置启动
  2. c语言中指针数组赋值字符串,C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)...
  3. mezzanine安装配置
  4. 深入理解Kafka(3)-Consumer
  5. 清华大学 张春良 计算机系,南京张春良老师小学生信息学辅导
  6. MFC和GTK的区别
  7. 云存储精华问答 | 如何选择云迁移策略?
  8. ES6新特性_ES6扩展运算符的介绍---JavaScript_ECMAScript_ES6-ES11新特性工作笔记013
  9. MOQL—转换器(Translator)
  10. 打印机后台程序没有启动
  11. oracle的jde系统,国内Oracle JDE用户的福音,首创AWS JDE Dynamic Adapter集成中间件
  12. SQL Server代理(SQLEXPRESS)无法启动
  13. 兄弟连php课程大纲,LAMP兄弟连PHP课程学习笔记 第四天 流程控制分支语句
  14. 2021年的学习Flag:只争朝夕,不负韶华
  15. 天梯图excl_2017最全【CPU天梯图】
  16. 利用python实现ANN算法预测岩石单轴抗压强度的经验模型代码。设置岩石密度、孔隙度、施密特回弹值、动岩石参数作为输出层...
  17. 玩期货风险大吗(玩期货有风险吗)
  18. 苹果语音输入最新资讯
  19. 租赁合同到期后如何处理
  20. 形式语言与自动机——第三章 上下文无关文法与下推自动机

热门文章

  1. overscroll-behavior
  2. 获取当周和上周的周一、周日时间
  3. 动手学习数据分析——第一部分
  4. HoudahGeo 6 for Mac(地理位置信息软件)
  5. 虚拟路由冗余协议(VRRP)
  6. CSP 202112-3 登机牌条码 (详细图解)
  7. 什么流读取MultipartFile_IO流 - ShelterY
  8. 教师招聘面试视频 计算机,怎么准备教师招聘面试试讲?(附视频)
  9. ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
  10. linux下10款markdown软件