用图像而不是颜色填充对象(将图像绘制到画布上)
Fill an object with an image, not with color (paint image to a 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.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);
}
}
相关文章:
- 用图像而不是颜色填充对象(将图像绘制到画布上)
- 仅使用Chrome进行慢速图像绘制
- 将 SVG 图像绘制到 CanvasRenderingContext2D 中
- 为什么我不能将图像绘制到画布中
- 将许多新图像绘制到画布时内存泄漏
- Javascript - 加载GIF冻结,同时将图像绘制到画布(Phonegap/Cordova)
- 画布:绘制图像而不是将图像绘制到画布
- 将图像绘制到<画布>
- 在浏览器中识别完整的图像绘制
- 画布图像绘制失败
- 将图像绘制到画布上
- 如何在画布上为运动图像绘制多条路径
- 将图像绘制到画布有时不显示任何东西
- 修剪透明背景的图像绘制在画布与PHP或javascript
- Javascript将图像绘制在彼此之上
- 我可以将数组值插入到画布的图像绘制函数中吗?
- 画布上的图像绘制比原始尺寸大
- 画布图像绘制不工作
- 将预先加载的图像绘制到画布中
- javascript从缓冲区(nodejs/socket.io)将图像绘制到html中