javascript - 用图像而不是颜色填充对象(将图像绘制到 Canvas 上)

标签 javascript html object canvas

我正在创建一个 Javascript 游戏,想知道是否有人可以帮助我处理这些对象。我想要一个填充对象的图像,而不是填充对象的颜色。如何做到这一点?

JSFIDDLE

var PlayerX;

var canvas = document.getElementById("gamefield");
ctx = canvas.getContext("2d");

PlayerX = new Player();

function Player()
{
    this.width = 30;
    this.height = 50;
    this.x = canvas.width/4;
    this.y = canvas.height/3*2;
    this.draw = function(){
        ctx.fillStyle="#00BFFF";
        ctx.fillRect(this.x, this.y, this.width, this.height);
    }
}

function Update () 
{
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    PlayerX.draw();
}

最佳答案

您可以使用context.drawImage来绘制playerImage而不是矩形。

请注意,加载图像需要一些时间,因此您必须在 playerImage.onload 回调中创建播放器。您还必须在该加载中启动游戏循环。

var PlayerX;

var canvas = document.getElementById("gamefield");
ctx = canvas.getContext("2d");

var playerImg=new Image();
playerImg.onload=start;
playerImg.src="putYourImageHere.png";
function start(){
    PlayerX = new Player();
}

function Player()
{
    this.width = 30;
    this.height = 50;
    this.x = canvas.width/4;
    this.y = canvas.height/3*2;
    this.draw = function(){
        ctx.drawImage(PlayerImg,this.x, this.y);
    }
}

关于javascript - 用图像而不是颜色填充对象(将图像绘制到 Canvas 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229111/

相关文章:

javascript - 将鼠标悬停在每个字母上时如何更改字体系列+背景

java - 如何将相似的对象添加到数组中?

php - 删除 submit.x 和 submit.y 但保留 URL 中的其他值

html - 视频上的背景图案图像在滚动时出现问题

javascript - jquery,如何检查类是否已加载。然后更改功能以在第一次单击后隐藏

ios - 如何将最后一个数组对象获取为int

c# - 在 unity 3d 中删除对象的 Box collider

javascript - InStr 与 indexOf

javascript - 触发谷歌地图标记点击

javascript - Handlebars 的 if 语句中的条件