贪吃蛇小游戏的数据结构和核心代码

引言

本系列是《从零开始开发贪吃蛇小游戏到上线系列》,顾名思义,小游戏的核心内容是贪吃蛇,本文跟随笔者来探讨一下贪吃蛇的核心玩法、数据结构和核心代码。

我们重点要掌握的是游戏开发的思维和抽象化,源码和成果展示在文末,小伙伴们可自行前往查看。

贪吃蛇的玩法

我们来重温一下贪吃蛇的玩法:玩家扮演一条小蛇,在有限的空间内不断吃食物并逐渐变长。玩家需要通过控制蛇的移动方向,躲避自身的尾巴和墙壁,以免游戏结束。随着蛇身的增长,游戏难度逐渐增加,需要玩家运用敏捷的反应和策略来挑战自己的最高纪录。这款游戏具有简单的操作和上瘾的玩法,让人重温经典的怀旧乐趣。由此可见我们将游戏玩法拆分一下:

1.在有限的空间。就是我们小蛇移动以及食物产生的地图。

2.小蛇的绘制。

3.食物的随机产生与绘制。

4.小蛇的移动、吃食物以及方向控制。

5.小蛇碰撞墙壁或者自己的身体后游戏失败。

地图的绘制

1.首先我们来看下贪吃蛇移动的地图,笔者最终将尺寸定在13*16个格子:
2.地图以及相关数据的声明:
3.我们把地图13*16个格子按照从左到右从上到下的顺序组成gameMap数组:
4.地图的绘制,我们定义把地图的格子alpha值即透明度设置成0.1,将蛇和食物的格子alpha值设置成1:

小蛇的绘制

1.小蛇的核心属性包括两个,其中一个是小蛇的每一节身体组成的链表,另外一个就是小蛇的方向:
2.我们初始化一下小蛇的位置和方向,我们把小蛇的初试长度设定为3格,把小蛇放第8行第4列为起点,方向向右:
3.小蛇的绘制:
4.其中注意的是,我们地图是一个格子数组,小蛇的数据结构是坐标点数组,因此我们需要将小蛇的坐标转换成地图格子的下标:

小蛇的移动、吃食物和方向控制

1.小蛇移动的大概逻辑:首先获取小蛇的头部,然后根据小蛇的方向得出小蛇头部下一个移动到达的点,把该点插入小蛇的头部(链表的顶端),然后把小蛇尾部的节点移除来形成一个向前移动的过程。吃食物的情况就是下一个移动到达的点是食物,直接把该点加入到小蛇的头部,但不需要从尾部移除节点。然后重新产生新的食物。
2.小蛇方向的控制就比较简单了,根据玩家按下的按钮,改变小蛇的方向,根据规则小蛇只能把方向改成与之垂直的2个方向:
3.然后按帧率绘制小蛇和地图:

小蛇碰撞墙壁或者自己的身体

1.判断触及墙壁,坐标小于0或者大于边界值:
2.判断触及自身,坐标为蛇数据中的点:

成果展示

总结

本文的重点内容主要有以下几点,小游戏虽简单,但是重要的是开发的思维,不知道小伙伴们是否已经理解:

  • 分析贪吃蛇的核心玩法。
  • 将贪吃蛇的玩法抽象化。
  • 分步骤用代码实现贪吃蛇的功能。

本文相关源码,关注"亿元程序员",发送"snake"获取。

本系列是《从零开始开发贪吃蛇小游戏到上线系列》,欢迎大家订阅。

笔者已经上线的小游戏《填色之旅》《重力迷宫球》大家可以自行搜索体验。

感兴趣的小伙伴记得关注"亿元程序员"哦,学习小游戏开发不迷路。欢迎大家一起交流。

喜欢的可以点个赞同、点个在看哦!谢谢大家。

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容