Html飞机大战(三):定义状态
好家伙,
1.为飞机大战定义状态
1.开始 START
有一个飞机大战LOGO &天空
2.开始时 STRATING
有一个飞机加载的界面&天空
3.运行时 RUNNING
我方飞机&敌方飞机&天空
4.暂停 PAUSE
暂停按钮
5.结束按钮 ENDING
结束字样(game over)
基础架构弄好,开始干活
//定义游戏状态
const START = 0;
const STRATING = 1;
const RUNNING = 2;
const PAUSE = 3
const END = 4;
加一个图片对象
//初始化一个加载图片logo
const copyright =new Image();
copyright.src="img/START.jpg"
然后我们在setInterval里面塞一个switch用来判断状态
setInterval(() => {
switch (state){
case START:
sky.judge();
sky.paint(context);
//渲染飞机大战LOGO
//图片原始宽高
let logo_x = (480 - copyright.naturalWidth)/2;
let logo_y = (650 - copyright.naturalHeight)/2;
context.drawImage(copyright,logo_x,logo_y)
break;
case STARING:
sky.judge();
sky.paint(context);
//这里需要一个飞机加载的loading
break;
case RUNNING:
sky.judge();
sky.paint(context);
//加载敌机
break;
case PAUSE:
sky.judge();
sky.paint(context);
//加载暂停页面
break;
case END:
sky.judge();
sky.paint(context);
//加载游戏结束字样
break;
}
}, 10);
在这里,值得一提的是
获取图片原始宽高的方法:
copyright.naturalWidth
我们让图片居中
let logo_x = (480 - copyright.naturalWidth)/2;
let logo_y = (650 - copyright.naturalHeight)/2;
context.drawImage(copyright,logo_x,logo_y)
一个非常合理的计算公式:
总宽减去图片宽度再除以二
高度同理
效果如下:

嗯,非常好,非常合理
Html飞机大战(三):定义状态的更多相关文章
- js 飞机大战
完整文件及代码可以在网盘下载,下载链接为:https://pan.baidu.com/s/1hs7sBUs 密码: d83x 飞机大战css定义: <style> #container{ ...
- 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)
微信小游戏 demo 飞机大战 代码分析(三)(spirit.js, animation.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码 ...
- Html飞机大战(四):状态的切换(界面加载类的编辑)
好家伙,接着写 既然我们涉及到状态了,那么我们也会涉及到状态的切换 那么我们怎样切换状态呢? 想象一下,如果我玩的游戏暂停了,那么我们肯定是通过点击或者按下某个按键来让游戏继续 这里我们选 ...
- 微信5.0 Android版飞机大战破解无敌模式手记
微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...
- web版canvas做飞机大战游戏 总结
唠唠:两天的时间跟着做了个飞机大战的游戏,感觉做游戏挺好的.说是用html5做,发现全都是js.说js里一切皆为对象,写的最多的还是函数,都是函数调用.对这两天的代码做个总结,希望路过的大神指点一下, ...
- 微信小游戏 demo 飞机大战 代码分析 (一)(game.js, main.js)
微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- 飞机大战-面向对象-pygame
飞机大战 最近学习了python的面向对象,对面向对象的理解不是很深刻. 面向对象是数据和函数的'打包整理',将相关数据和处理数据的方法集中在一个地方,方便使用和管理. 本着学习的目的,在网上找了这个 ...
- 飞机大战编写以及Java的面向对象总结
面向对象课程完结即可编写一个简单的飞机大战程序.我觉得我需要总结一下 飞机大战中类的设计: 父类:FlyingObject(抽象类) 接口:Award .Enemy 子类:Hero.Bullet.Ai ...
- 【一】仿微信飞机大战cocos2d-x3.0rc1
參考 [偶尔e网事] 的 [cocos2d-x入门实战]微信飞机大战 cocos2dx 2.0版本号,偶尔e网事他写的很具体,面面俱到,大家很有必要看下.能够通过以下链接跳转: cocos2d-x入 ...
随机推荐
- 腾讯视频的qlv格式转换为mp4格式
1.点击设置->下载设置->缓存管理 下的文件目录复制; 2复制在 我的电脑路径栏目中 找到缓存目录 文件夹vodcache; 3.打开视频对应文件; 4.打开cmd命令窗口 5.跳转 到 ...
- php为图片添加水印
<?php /** * 图片加水印(适用于png/jpg/gif格式) * * @author flynetcn * * @param $srcImg 原图片 * @param $waterIm ...
- Xilinx DMA的几种方式与架构
DMA是direct memory access,在FPGA系统中,常用的几种DMA需求: 1. 在PL内部无PS(CPU这里统一称为PS)持续干预搬移数据,常见的接口形态为AXIS与AXI,AXI与 ...
- 封装环形加载进度条(Vue插件版和原生js版)
1.效果预览 2.用到的知识 主要利用SVG的stroke-dasharray和stroke-dashoffset这两个属性. 在看下面文章之前,你需要了解 <!DOCTYPE html> ...
- java基础知识面试总结-部分
前言 在平时的工作学习中,自己对微服务和springboot基础理论知识关注比较少,在面试中对于面试官的问题,很多基本都不能够达到精准,全面:现将自己面试中的问题做以总结: 1.谈谈你对微服务架构的认 ...
- jQuery获取市、区县、乡镇、村
效果图: 首先根据自己方法把地区树状结构json字符串拿到 html下拉框和js写法如下: <select class="form-control" style=" ...
- 强化学习-学习笔记8 | Q-learning
上一篇笔记认识了Sarsa,可以用来训练动作价值函数\(Q_\pi\):本篇来学习Q-Learning,这是另一种 TD 算法,用来学习 最优动作价值函数 Q-star,这就是之前价值学习中用来训练 ...
- C#《原CSharp》第三回 万文疑谋生思绪 璃月港口见清玉
第三回 万文疑谋生思绪 璃月港口见清玉 ===================================================================== 云溪愣了下,在他的认 ...
- 攻防世界进阶区MISC ——56-60
56.low 得到一张bmp,世纪之吻,扔进kali中,binwalk,zsteg,无果,再放进stegsolve中,虽然发现小的数据块,但是过滤通道得不到任何信息,猜测是要用脚本进行 # lsb隐写 ...
- NOI / 1.2编程基础之变量定义、赋值及转换全题详解(5063字)
目录 01:整型数据类型存储空间大小 02:浮点型数据类型存储空间大小