前端使用canvas实现贪吃蛇小游戏

贪吃蛇是一款益智小游戏,通过点击上下左右四个按键控制蛇头移动。

在这里插入图片描述

设计思路

主要是设计蛇的身体和移动方法。将蛇的身体设置成一个数组,数组里存放蛇身每一节的xy坐标。游戏开始后,蛇头(数组第0位)会随着时间不断地移动,也就是x+1x-1y+1y-1,当蛇头移动了,身体的每一节xy将等于移动前它们的前一节,也就是说,第二节的位置将变成移动前蛇头的位置,依次变化就形成了蛇身的移动效果。当蛇吃到了食物的时候,则在数组里push蛇身移动前最后一节的xy值。

功能实现

1. 通过canvas绘制画布

<canvas id="canvas" width="500" height="300" style="border:5px solid #2f0606;"></canvas>
canvas = document.getElementById("canvas");
ctx = canvas.getContext("2d")
ctx.fillStyle = "#c0b4b4";
ctx.fillRect(0, 0, 500, 300);

画布的长宽是500 * 300

2. 创建一条蛇

function Snake(x, y) {
   
    this.body = [[x, y]] // 蛇的身体
    this.direction = 'right' // 初始方向
    this.time = null // 定时器
    this.move = function() {
   
    }
    this.eat = function() {
   
    }
    this.stop = function() {
   
    }
}

创建了一个叫Snake的构造函数。其中,xy是蛇头的初始位置;body是蛇的身体,是一个二维数组;direction代表移动方向,有rightlefttopbottom四个参数;time是一个定时器;move是一个方法,控制蛇身的移动,这是整个贪吃蛇的核心;eat是吃的函数;stop停止移动。

可以直接new一个Snake对象。

snake 
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值