当前位置: 首页 > news >正文

前段-用面向对象的方式开发一个水管小鸟的游戏

首先准备好各类空文件 index.js css html 和图片
在这里插入图片描述
图片是下面这些,如果没有的可在这里下载
在这里插入图片描述

2 开发开始

好了,基础准备工作完毕,开发开始,
首先,先把天空,大地,小鸟的盒子准备好,并为其添加样式
在这里插入图片描述
需要注意的是,天空和大地,都是宽度200%,这是因为我们使用绝对定位,让图片往左移来模拟移动,所以不能设置100%

效果如下
在这里插入图片描述

3.给小鸟设置飞行状态

给小鸟添加飞行状态的css,并给小鸟设置初始飞行状态和初始位置

在这里插入图片描述

4. 添加水管

之后就是添加水管了,注意下面的水管应该加上地面的高度也就是112px,这样才能正常的显示,不然就穿出地表了

在这里插入图片描述

以上,使用css 和html静态页面布局就完成了,接下来是使用js来控制行为了

创建js对象

因为标题说的是使用面向对象的方式来写这个游戏,
为了不做标题单,所以我先开始创建对象
,根据上面写的那些可以很轻易地得出

这个游戏拥有的对象为

天空
大地
水管

然后再仔细观察,该如何来判断小鸟是不是装上了水管呢?,小游戏,自然是把他们看做是一个个的矩形(这也是为什么我一直留着边框)
只需要js判断矩形重合了,那就是撞到了
在这里插入图片描述

所以在这里可以抽象出他们的共同父类,矩形,
所以这里新建一个class.js用来做对象

在这里插入图片描述

然后就需要想一想,这个类需要有什么成员

  1. 小鸟,水管,大地,天空,都是要移动的,所以这个类要有移动这个成员
  2. 宽度,高度,这是基本的
  3. 小鸟水管在地图的坐标
  4. 既然他们都能移动,那就有速度,速度,这是2d的那就得分为,横向速度,纵向速度

于是就有了下面这个基类

class Rectangle {constructor(width, height, left, top, xSpeed, ySpeed, dom) {this.width = width;this.height = height;this.left = left;this.top = top;this.xSpeed = xSpeed;this.ySpeed = ySpeed;this.dom = dom;}render() {this.dom.style.width = this.width + "px";this.dom.style.height = this.height + "px";this.dom.style.left = this.left + "px";this.dom.style.top = this.top + "px";}move(duration) {const xDis = this.xSpeed * duration;const yDis = this.ySpeed * duration;const newList = this.left + xDisconst newTop = this.top + yDis;this.render()}
}

不好意思,朋友要噶了,我先去处理下,明天续写

http://www.lryc.cn/news/233960.html

相关文章:

  • Java中利用OpenCV进行人脸识别
  • 23111708[含文档+PPT+源码等]计算机毕业设计基于javaweb的旅游网站前台与后台旅景点
  • Windows安装nvm【node.js版本管理工具】
  • 让资产权利归于建设者:Kiosk使过程变得更简单
  • MLP感知机python实现
  • Es 拼音搜索无法高亮
  • java线性并发编程介绍-锁(二)
  • Java JPA详解:从入门到精通
  • 使用Open3D库处理3D模型数据的实践指南
  • 代码随想录算法训练营第五十八天丨 动态规划part18
  • Pytest自动化测试框架介绍
  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)
  • Oracle 监控的指标有哪些和oracle巡检的内容
  • Uniapp有奖猜歌游戏系统源码 带流量主
  • 【算法与数据结构】前言
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • 贝加莱MQTT功能
  • 基于JavaWeb+SSM+购物系统微信小程序的设计和实现
  • 为什么需要Code Review?
  • 【计算机网络笔记】ICMP(互联网控制报文协议)
  • Git教程1:生成和提交SSH公钥到远程仓库
  • 贝茄莱BR AS实时数据采集功能
  • Git的基本操作以及原理介绍
  • 2023安全与软工顶会/刊中区块链智能合约相关论文
  • word文档转换为ppt文件,怎么做?
  • 机器视觉选型-什么时候用远心镜头
  • quartz笔记
  • ER 图是什么
  • PLC电力载波通讯,一种新的IoT通讯技术
  • Elasticsearch:通过摄取管道加上嵌套向量对大型文档进行分块轻松地实现段落搜索