最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

HTML5 Canvas游戏玩家限制

IT培训 admin 8浏览 0评论

HTML5 Canvas游戏玩家限制

我在画布上放置了1000名玩家,但他们的动作并不顺畅。帆布有办法处理那么多玩家吗?我有什么选择?

玩家的位置使用socket.IO每秒发送20次。当事件到达客户端时,它会在画布上绘制玩家

var images = {};
images.spriteSheet = new Image();
images.spriteSheet.src = "/images/spriteSheet.png";

socket.on('drawing', function(data){

  ctx.clearRect(0,0,1000,500);

  for(var i = 0; i < data.length; i++){

    ctx.drawImage(images['spriteSheet'], data[i].sx, data[i].sy, 100, 100, data[i].x, data[i].y, 70, 70);

  }

});
回答如下:

我在画布上放置了1000名玩家,但他们的动作并不顺畅。帆布有办法处理那么多玩家吗?

我猜你的意思是你每秒20x画布画1000张精灵。毫无疑问,这将是艰难的。

玩家的位置使用socket.IO每秒发送20次。

当然,您可以发送位置和向量,让客户端在本地进行预测性更新,直到下一次真正的更新。这就是所有其他游戏的工作原理,也是有原因的。您甚至可以每秒获取20次数据的想法并非总是如此。

没有更多的细节,很难给出具体的答案,但在一般情况下,我建议调查SVG。然后,您可以更新单个元素,让浏览器担心合成和不合作,这可能会比您在画布中提取的内容更快。您必须针对特定用例进行实验。

HTML5 Canvas游戏玩家限制

我在画布上放置了1000名玩家,但他们的动作并不顺畅。帆布有办法处理那么多玩家吗?我有什么选择?

玩家的位置使用socket.IO每秒发送20次。当事件到达客户端时,它会在画布上绘制玩家

var images = {};
images.spriteSheet = new Image();
images.spriteSheet.src = "/images/spriteSheet.png";

socket.on('drawing', function(data){

  ctx.clearRect(0,0,1000,500);

  for(var i = 0; i < data.length; i++){

    ctx.drawImage(images['spriteSheet'], data[i].sx, data[i].sy, 100, 100, data[i].x, data[i].y, 70, 70);

  }

});
回答如下:

我在画布上放置了1000名玩家,但他们的动作并不顺畅。帆布有办法处理那么多玩家吗?

我猜你的意思是你每秒20x画布画1000张精灵。毫无疑问,这将是艰难的。

玩家的位置使用socket.IO每秒发送20次。

当然,您可以发送位置和向量,让客户端在本地进行预测性更新,直到下一次真正的更新。这就是所有其他游戏的工作原理,也是有原因的。您甚至可以每秒获取20次数据的想法并非总是如此。

没有更多的细节,很难给出具体的答案,但在一般情况下,我建议调查SVG。然后,您可以更新单个元素,让浏览器担心合成和不合作,这可能会比您在画布中提取的内容更快。您必须针对特定用例进行实验。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论