gpt4 book ai didi

Javascript Image() 无法加载或绘制

转载 作者:行者123 更新时间:2023-11-28 08:52:57 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的 Sprite 类以在 Canvas 游戏中使用,但在创建该类的新实例时指定的图像永远不会调用 onload 或 onerror。发生了什么事,如何让它加载并绘制图像?

这是脚本:

var cvs = document.getElementById("c");
var ctx = cvs.getContext("2d");
var imagesToLoad = 1 ;
var imagesLoaded = 0;
var gameState = 0;
//START OF IMAGE STUFF//
function imageOnload() {
imagesLoaded+=1;
console.log("Images: loaded "+imagesLoaded+" overall.");
}
function loadLoop() {
if (imagesLoaded == imagesToLoad) {
gameState = 1;
}
}
function loop1() {
ctx.drawImage(circle.image);
}
function gameLoop() {
if(gameState==0){
loadLoop();
}
if(gameState==1){
loop1();
}
}

function Sprite(positionsArray){
this.x = positionsArray[0];
this.y = positionsArray[1];
this.dx = positionsArray[2];
this.dy = positionsArray[3];
this.angle = positionsArray[4];
this.rotating = positionsArray[5];


};
circle = new Sprite(new Array(0, 0, 0, 0, 0, 0));
circle.image = new Image().onload="imageOnload()".src="circle.png".onerror="console.log(\"Nope.\")";
console.log("circle?");
setInterval(function(){gameLoop()}, 10);
//END OF IMAGE STUFF//

最佳答案

更正:

  • image.onload 函数定义中没有引号
  • image.onload 函数定义中没有括号
  • image.onerror 需要函数定义或匿名函数
  • 将 image.onerror 放在 image.src 之前

这是一些示例代码:

circle.image=new Image();
circle.image.onload=imageOnLoad;
circle.image.onerror=function(){console.log("Image failed to load")};
circle.image.src="koolaidman.png";

function imageOnLoad(){
ctx.drawImage(circle.image,0,0); // or do other stuff
}

关于Javascript Image() 无法加载或绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com