SDL农场游戏开发 1.环境搭建

article/2025/11/11 7:12:04

由于我个人受到传统农场类游戏的熏陶,因此萌生出了开发一个类似于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作为编译工具,如果移植到其他平台可能需要改变编码和行结束字符。


http://chatgpt.dhexx.cn/article/WnnDWFQb.shtml

相关文章

神秘农场新背包java_Mystery Ranch神秘农场2018年户外背包系列产品一览

对于初接独 和品牌设计师Dana 3 Gleason沟通时亦提及到,来年产品将集中于 Everyday, Mountain和旅行用三大趋势发展,迎合市场上大容量和短途trip的一众玩家。以话不假,从最新的日用背包就见到他们对日常背包的心思。 说实话,下半年…

qq农场私服php源代码,仿QQ农场源码、QQ牧场源代码(整合UCHOME)

安装步骤: 1.将压缩包内文件解压,上传upload里的所有文件到相应文件夹(你的uchome根目录下) 2.到phpmyadmin导入 uchome_happyfarm_config.sql uchome_happyfarm_mc.sql uchome_happyfarm_nc.sql数据库文件(如果前缀不是默认的uchome_替换成你的前缀否则农场无法连接调用mysql…

php开心农场 源码,开心农场源码(UCHome)PHP版下载

关键字:php discuz ucenter home� uhome manyou 开心农场 牧场 QQ 源码 下载 源码适用于已安装了UCenterHome的SNS网站,与QQ农场功能基本类似。可以自己调经验,原作者好像把后台给删掉了,只能从数据库调整了。 安装说明…

全民农场服务器维护上不去,全民农场微信授权失败登录不上解决方法

全民农场中秋节新版本上线,发布了许多好玩的活动,部分玩家朋友反映全民农场微信授权失败登录不上,这到底是怎么回事呢,下面小编来给玩家朋友分享下全民农场微信授权失败登录不上解决方法,希望玩家朋友喜欢。 全民农场从…

Java游戏开发——开心农场

游戏介绍: “开心农场”是一款以种植为主的社交游戏。用户可以扮演一个农场的农场主,在自己的农场里开垦土地,种植各种水果蔬菜。本次开发了一个“开心农场”游戏,运行程序,效果如下图所示。鼠标先选定指定土地&#…

qq农场 html5,登陆qq农场 QQ浏览器怎么登陆QQ农场

首先打开手机QQ程序,在QQ主页面中点击右下角的“动态”选项。 进入“动态”页面后点击其中的“好友动态”选项。 然后在打开的“好友动态”页面中点击页面上方的“小游戏”选项。 打开“小游戏”界面后即可在页面中看到“QQ农潮。 qq农场进不去的处理方法一&#xf…

基于java-swing的开心农场游戏

目的 本方案为java面向对象部分的综合评测,本项目是对JAVA GUI API的综合实训。 项目描述 该项目是对qq农场做出的简单的小案例。 1、播种种子 2、种子生长 3、种子开花 4、种子结果 5、收获种子 项目要求 使用JAVA SWING 或者 AWT 包下的API类实现该项目&am…

linux渲染农场大连教程,Deadline 渲染农场搭建记录

渲染农场的工作模式:多台机器组建集群进行渲染,比如:集群中有2台渲染机器A和B,服务器会同时分配给A和B任务,A渲染第一帧,B渲染第二帧,当A完成那么服务器会继续分配第三帧,同样B服务器完成以后服务器分配第四帧,以此类推。 渲染农场分服务端和节点,服务器端也可以加入集…

c++农场主均分土地为方块

题目背景:假设你是一个农场主,有一块小土地,1680*640那么大,你要将这块土地均匀的分成方块,要使分出的方块足够大,应该怎么分? 样例输入: 1680 640 样例输出: 80 一个…

爆肝一周,用Python在物联网设备上写了个智能语音助手-阿里云智能对话机器人

基于HaaS云端一体框架,用Python打造HaaS EDU K1智能语音助手的过程中需要用到云端能力。本篇文章介绍如何开通智能对话机器人,并通过实际案例演示如何为机器人配置知识库并进行发布。请参考《爆肝一周,用Python在物联网设备上写了个智能语音助…

智能客服机器人:基于知识图谱的多轮对话系统

━━━━ 近年来,随着人工智能的快速发展,人机交互能力不断增强,其中问答技术能够在保证一定准确度的情况下极大地简化用户的搜索操作,在节约时间的同时,还能够加深用户对搜索事物的了解程度,百度公司的小…

【人机对话】对话机器人技术简介:问答系统、对话系统与聊天机器人

点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要16分钟 跟随小博主,每天进步一丢丢 来自:AI算法之心 作者:段清华个人主页:http://qhduan.comGithub链接: https://github.com/qhduan/ 原…

数据可视化工具是什么

智能手机的普及,互联网使用的增长,机器学习的快速发展,以及云计算技术和物联网的不断采用,都在推动全球数据可视化市场。此外,对智能工厂的日益倾向,以及视觉分析、信息可视化和科学可视化在小型和大型组织…

如何进行数据可视化图表设计?

如何进行数据可视化图表设计? 对数据人来说,数据可视化是分析理解数据,并最终呈现数据的必修课。本文从以下几个点来说明,如何进行数据可视化图表设计。1、数据背后的故事2、充分理解数据3、多种图表类型设计指南 1数据背后的故…

优秀的数据可视化,原来是这样做的!

大数据时代,数据驱动决策。处理不好庞大、复杂的数据,其价值将大打折扣。 可以想象一本没有图片的教科书。没有图表、图形或是带有箭头和标签的插图或流程图,那么这门学科将变得更加难以理解。人类天生就是视觉动物,而视觉效果对于…

数据可视化是什么,数据可视化怎么做最好?

数据可视化都有一个共同的目的,那就是准确而高效、精简而全面地传递信息和知识。可视化能将不可见的数据现象转化为可见的图形符号,能将错综复杂、看起来没法解释和关联的数据,建立起联系和关联,发现规律和特征,获得更…

如何完美实现数据可视化?

为什么要可视化数据? 在工作中,无论你在哪个场景,你都会接触到数据,需要表达出来。数据可视化的作用是通过结合图表和数据来更好地传达业务信息。目前,大多数公司正在逐步从传统的流程管理过渡到基于数据的管理。数据可视化可以…

程序员如何轻松实现数据可视化?

这里以Web前端为例,简单介绍一下程序员是如何实现前端数据可视化的,主要内容如下: Highcharts.js 这是一个纯粹的JavaScript可视化库,完美支持移动端,可以快速的为Web网站添加具有交互性的图表(包括曲线图…

好看的数据可视化图片是怎样做的?

好看的数据可视化图片是怎么样做的?这里我将介绍如下几个知识点,相信掌握如下数据可视化技巧和知识,一定可以让你的图表焕然一新,令人眼前一亮~ 图表制作规范:图表选取,突出显示重点数据,消除图…

同一个ip,不同端口号,session失效

背景 我有两个工程projectA、projectB,projectA放在TomcatA中,projectB放在TomcatB中,TomcatA、TomcatB在一台server上。 工程都映射的根路径,不用project名字就可以访问,如下 http://ip1:7777/ http://ip1:8080/ …