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、作业

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

  • 相关阅读:
    java中常量定义在interface中好还是定义在class中
    CharacterEncodingFilter-Spring字符编码过滤器
    Integer判断相等,到底该用==还是equals
    ThreadLocal实现session中用户信息 的线程间共享
    分布式部署引发的问题
    分布式部署
    LogBack通过MDC实现日志记录区分用户Session
    Fragment 简介 基础知识 总结 MD
    直播 相关技术文章 相关调研文章
    直播 背景 技术体系 乐视云直播Demo
  • 原文地址:https://www.cnblogs.com/nyxd/p/5364612.html
Copyright © 2011-2022 走看看