打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HTML5 游戏开发实战 | 贪吃蛇

在该游戏中,玩家操纵一条贪吃的蛇在长方形场地里行走,贪吃蛇按玩家所按的方向键折行,蛇头吃到食物(豆)后,分数加10分,蛇身会变长,如果贪吃蛇碰上墙壁或者自身的话,游戏就结束了(当然也可能是减去一条生命)。

贪吃蛇游戏的运行界面如上图所示。

01

贪吃蛇游戏设计的思路

把游戏画面看成40×30的方格。食物(豆)和组成蛇的块均在屏幕上占据一个方格。游戏设计中主要用到的4个类如下。

Farm类:主要用来显示场地,随机生成食物,初始化一条蛇。

Food类:抽象了食物(豆)的属性和动作。

Snake类:抽象了贪吃蛇的属性和动作,调用Block类来组成蛇,并处理键盘输入事件和蛇的移动。

Block类:表示组成蛇的块(实心圆)。一条蛇可以看成由许多“块”(或称节)拼凑而成,块是蛇身上最小的单位。

02

贪吃蛇游戏设计的步骤

游戏页面index.html

设计脚本

1. 食物(豆)类(Food)设计

在此游戏中,首先会在场地的特定位置出现一个豆,豆要不断被蛇吃掉,当豆被吃掉后,原豆消失,又在新的位置出现新的豆。这些豆都是由豆(Food)类创建的对象。

foodInit()函数用于在屏幕上显示一个豆(实心圆),设计方法是直接在场地(canvas)上画一个实心圆。

equal()函数用于判断是否与蛇身“块”node重合,也就是蛇吃到食物。

2. 块类(Block)

在贪吃蛇游戏中,块用来构成蛇,在蛇出现时,要把构成蛇的块一个个地输出(显示),在蛇消失时,要把块消除掉,显示和消除哪一个块都要由位置决定,并且由于蛇是由多个块构成的,每个块要填到snakes数组中。

3. 蛇类(Snake)设计

现在到了最难的步骤,就是处理蛇,一条完整的贪吃蛇是由一块一块组成的。snakes数组用于存放组成蛇的所有块;其中保存的第一个元素是蛇的头部,最后一个元素是蛇的尾巴。当蛇运动的时候,它头部增加一块而尾部减少一块。如果它吃到了豆,头部增加一块而尾部不减少。也就是说,蛇是从头部开始长的。蛇运行过程中要不断地改变方向;如果蛇头碰到了它自身,蛇就要死亡,即程序结束。

首先,画一条蛇并移动它。

然后,识别键盘事件,修改移动方向dir,初始移动dir方向为'R'(向右)。

以下主要是让蛇动的move()函数。主要是根据原来蛇头snakes[0]的位置和移动方向确定新的蛇头位置,绘制新的蛇头,并清除原来的蛇尾即达到移动效果。

在蛇移动时,判断蛇头是否和食物相撞,是否碰撞到了场地的壁以及是否与自己相撞。

用于实现蛇生长growth()函数的具体功能是当蛇吃到一个豆后,蛇就要在它的尾巴上增加一块即蛇增长。设计思路是找到蛇尾snakes[snakes.length-1],根据蛇尾与蛇的倒数第2块snakes[snakes.length-2]的位置关系,计算出蛇尾新增一块的位置。

4. 场地类(Farm)设计

为游戏的主场地,豆要在此范围内出现,蛇要在此范围内运行,显示场地内的所有对象、场地边框、豆和蛇。

5. 主程序

在游戏开始后,要首先初始化场地Farm类,显示场地内的所有对象,场地边框、豆和蛇。同时要2秒随机产生一个新豆并显示。

至此,贪吃蛇游戏编写完成。

03

参考书籍



HTML5网页游戏设计从基础到开发(第2版·微课视频版)

作者:夏敏捷、尚展垒
定价:69.90元
ISBN:9787302629771

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
22. Snakes 蛇
贪吃蛇游戏源代码(C++)
如何使用scratch制作简单的贪吃蛇游戏
贪吃蛇都没敢这么跑的!
中国发现有脚的蛇
C语言之贪吃蛇经典源码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服