zoukankan      html  css  js  c++  java
  • 编写小游戏:贪吃蛇

    编写小游戏:贪吃蛇

    1、需求分析

    地图

    食物

     

    使用编程思想:面向对象的编程思想

    面向对象核心思想:把一个系统分解为若干个事务,每个事务就是一个类

    2、前期准备

    在面向对象的编程语言中,类是由两部分组成:属性和方法

    属性:对某类事务特征的描述

    方法:对某类事务的行为的描述

    【地图类】

    1)相关属性

    宽度 :800px

    高度 :400px

    颜色 :灰色(#dddddd)

    位置 :absolute

     

    2)相关方法

    显示方法(show):主要把地图按相关属性进行显示

    3、编写代码

    定义window.onload显示地图信息

    4、食物类分析

    【食物类】

    1)相关属性

    宽度 :20px

    高度 :20px

    颜色 :green

    位置 :absolute

    横纵坐标(随机出现),x=0,y=0

    2)相关方法

    显示方法:主要负责把食物根据相关属性进行显示在地图中

    3)算法

    食物在贪吃蛇游戏中并不是固定的,而是随机出现的,如何设置一个元素随机出现呢?

    横坐标:必须在0-39之间

    纵坐标:必须在0-19之间

    随机数:Math数学类下的random方法,返回0-1之间的小数

    Math.floor(Math.random()*40) 0-39之间

    Math.floor(Math.random()*20) 0-19之间

    5、实例化食物类并随机显示

    7、蛇类分析

    【蛇类分析】

    1)相关属性

    宽度 :20px

    高度 :20px

    位置 :absolute

    三节 :使用数组保存蛇节的信息(横坐标、纵坐标、颜色)

    蛇默认运动方向:right

    2)相关方法

    显示方法(show):用于按照以上相关属性显示蛇的相关信息

    实例化蛇类对象,调用show方法,显示蛇

    8、定义一个方法,让蛇运动起来

    之所以蛇可以运动,我们只需要做一件事:让蛇头决定运动方向,蛇节坐标与前一个坐标进行互换操作。

    通过定时器让蛇一直运动下去

    9、解决蛇身不断加长问题

    10、根据键盘按键改变蛇的运动方向

    在Snake蛇类中定义一个setDirect方法

    11、让蛇吃食物

    我们在运动过程中,只要判断蛇头坐标与食物坐标完全重合就代表吃到食物

    解决食物多次出现问题:

    12、作业

    解决贪吃蛇的两个问题:① 撞墙死问题 ② 吃到自己死问题

  • 相关阅读:
    ThinkPHP 3 的输出
    zookeeper 伪集群模式
    zookeeper
    MVC模式和URL访问
    全民上云时代,如何降低成本?
    华为云教你7天玩转电商应用性能调优,课程免费速来报名!
    一统江湖的大前端(6)commander.js + inquirer.js——懒,才是第一生产力
    一统江湖的大前端(5)editorconfig + eslint——你的代码里藏着你的优雅
    一统江湖的大前端(4)shell.js——穿上马甲我照样认识你
    【Python3网络爬虫开发实战】1.3.1-lxml的安装
  • 原文地址:https://www.cnblogs.com/nyxd/p/5364612.html
Copyright © 2011-2022 走看看