首页 > 其他分享 >Html飞机大战(五):主角登场(英雄类编辑)

Html飞机大战(五):主角登场(英雄类编辑)

时间:2022-08-28 00:12:04浏览次数:68  
标签:主角 death hero img 登场 frame live Html new

好家伙,

 

遇到了一些非常奇怪的bug

index.html:179 
        
       Uncaught TypeError: Failed to execute 'drawImage' on 
'CanvasRenderingContext2D': The provided value is not of type 
'(CSSImageValue or HTMLCanvasElement or HTMLImageElement or 
HTMLVideoElement or ImageBitmap or OffscreenCanvas or
 SVGImageElement or VideoFrame)'.

179的代码:

paint(context) {
                this.img=this.frame[this.frameIndex];
                context.drawImage(this.img, this.x, this.y, this.width, this.height)
            }

这里的能够正常渲染,然后后面hero英雄类的却不能渲染了

 

(一头雾水了)

 

 

一切都还是那样

 

1.正常的图片数组配置

const hero_frame = {
            live: [],
            death: []
        }
        hero_frame.live[0] = new Image();
        hero_frame.live[0].src = "img/hero1.jpg"
        hero_frame.live[1] = new Image();
        hero_frame.live[1].src = "img/hero2.jpg"
        hero_frame.death[0] = new Image();
        hero_frame.death[0].src = "img/hero_blowup_n1.jpg"
        hero_frame.death[1] = new Image();
        hero_frame.death[1].src = "img/hero_blowup_n2.jpg"
        hero_frame.death[2] = new Image();
        hero_frame.death[2].src = "img/hero_blowup_n3.jpg"
        hero_frame.death[3] = new Image();
        hero_frame.death[3].src = "img/hero_blowup_n4.jpg"

这次在网上弄了些好看的图片过来

 

 

2.正常的配置项和类编辑

       const HERO = {
            frame: hero_frame,
            width: 99,
            x: 0,
            y: 0,
            speed: 10,
        }
        //英雄类配置
        class Hero {
            constructor(config) {
                this.width = config.width;
                this.height = config.heigth;
                this.x = (480 - config.width) / 2;
                this.y = 650 - config.height;
                this.frame = config.frame;
                //用死/活来控制要渲染的图片组
                this.img = null;
                this.live = true;
            }
            judge() {

            }

            paint(context) {
                
                this.img = this.frame.live[0];
                context.drawImage(this.img, this.x, this.y, this.width, this.height);
            }


        }

 

 

3.正常的实例化类

const hero = new Hero(HERO);

 

 

4.正常的方法调用

hero.paint(context);

 

一切都是那么的正常,但结果是他并没有渲染出来

(bug搜了很久也没有找到解决方案)

 

 

暂时先用个假代码:

context.drawImage(hero_frame.live[0], 0, 0);

 

 

最后发现,我是傻逼

配置项里面没写height属性

height: 148,

行了,能跑就行,不用管报错

标签:主角,death,hero,img,登场,frame,live,Html,new
From: https://www.cnblogs.com/FatTiger4399/p/16631577.html

相关文章

  • .NET(C#) 使用GemBox.Document将HTML转成PDF
    .NET(C#)中将HTML转成PDF的方法比较多,可以使用GemBox.DocumentPuppeteerSharp、EO.Pdf和HtmlRenderer.PdfSharp等,本文主要使用GemBox.Document将HTML转成PDF的方法,以及......
  • 前端——HTMLbody标签
    body标签:1.存储网页显示的内容 H标签:H1-H6:标题标签1.双闭合标签2.独占一行<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>......
  • HTML标签(二)
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • HTML转PDF工具一览
    Onthiswebsite,Ishowyoutherenderingresultsofdifferenthtml2pdftools.IcomparemPDF,typeset.sh,PDFreactor,wkhtmltopdf,WeasyPrint,Prince,......
  • HTML DOM setTimeout() 方法
    HTMLDOMsetTimeout()方法 https://www.w3school.com.cn/jsref/met_win_settimeout.asp定义和用法setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。语......
  • 在HTML中怎么去掉超链接(标签 a)的下划线?
    在HTML中怎么去掉超链接(标签a)的下划线?_chelen_jak的博客-CSDN博客 https://blog.csdn.net/chelen_jak/article/details/25962665<styletype="text/css">a:link,a:vi......
  • 前端——HTML编辑器快捷键
    TABLE键补齐:输入标签关键字,再按table键即可补齐<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body>p......
  • 前端——HTML5
    HTML5(超文本标记语言)1.HTML5,在2014年10月由万维网联盟(W3C)完成标准制定。2. HTML5的设计目的是为了在移动设备上支持多媒体。新特性:新增了语义化标签新增了表单元......
  • HTML标签(一)
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • Html飞机大战(四):状态的切换(界面加载类的编辑)
    好家伙,接着写 既然我们涉及到状态了,那么我们也会涉及到状态的切换 那么我们怎样切换状态呢? 想象一下,如果我玩的游戏暂停了,那么我们肯定是通过点击或者按下某个按......