首页 > 其他分享 >Html飞机大战(三):定义状态

Html飞机大战(三):定义状态

时间:2022-08-25 15:28:10浏览次数:53  
标签:const 定义 copyright sky 大战 Html context logo 加载

好家伙,

 

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)

一个非常合理的计算公式:

总宽减去图片宽度再除以二

高度同理

 

效果如下:

 

 

 

嗯,非常好,非常合理

 

标签:const,定义,copyright,sky,大战,Html,context,logo,加载
From: https://www.cnblogs.com/FatTiger4399/p/16624100.html

相关文章

  • 自定义滚动条样式不生效:横轴设置 height,纵轴设置 width
    问题在修改滚动条样式时,两个类名,一个地方生效,另一个地方不生效。解决办法捣鼓很久才发现,原来横轴要设置height,纵轴要设置width。//滚动条的样式,高宽分别对应横竖......
  • html页面如何弹警示框
    前言html页面中,可以通过添加<scripttype="text/javascript">alert("警告文本");</script>语句来弹出警示框;alert()用于显示带有一条指定消息和一个“确定”按钮的警告框......
  • 直播平台软件开发,TextView显示html文字和图片
    直播平台软件开发,TextView显示html文字和图片   SimpleDateFormatsdfTwo=newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss",Locale.getDefault());      ......
  • net-snmp 自定义OID利用脚本获取值
    两种办法:1)pass方式/etc/snmp/snmpd.conf   写脚本   脚本需要注意:要连续输出三行:1、OID2、类型3、值如果不按照这个规定,直接输出值,将会报错。检......
  • html5大文件分片上传插件
    ​一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到......
  • 微信小程序---自定义组件和传参
    1.自定义组件1.在项目根目录中新建components文件夹2.在components文件夹下新建组件的文件夹,如zujian3.鼠标右键点击zujian文件夹,选择新建component,就会生成wxml,wxss,js......
  • SpringBoot 解析 Html
    使用JSOUP来解析Html网页从网上搜了搜看了下大部分的排版都不是特别好!!!所以我从新写一个。点击进入JSOUP的官网jsoup:JavaHTML解析器jsoup是一个用于处理真实世界H......
  • 架构、框架、设计模式的定义和区别
    一、架构架构即软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件体系结构是构建计算机软件实践的基础,简单来说,软件架构是一个系......
  • HTML基础(三):列表、表格、表单标签学习
    列表标签列表的应用场景场景:在网页中按照行展示关联性内容,如新闻列表、排行榜、账单等特点:按照行的方式整齐显示内容种类:有序列表、无序列表、自定义列表无序列表......
  • 学习:python 异常处理 else 和 finall 语句 自定义异常
       自定义一个异常 ......