【问题标题】:Send a part of an image to be rendered on canvas发送要在画布上渲染的图像的一部分
【发布时间】:2016-05-28 21:07:09
【问题描述】:

我正在制作一个游戏,其中玩家可以在 10,000 x 10,000 网格中移动。

但是,他们不会总是看到这个 10,000 x 10,000 的网格,而只是根据屏幕尺寸的一小部分。假设用户屏幕为 2000 像素 x 1000 像素宽,并且它们当前为 5,000 x 5,000(我的网格的中心)。

服务器如何只发送地图的一部分以适应这个 2000 x 1000 像素的区域?

Image of what I mean

【问题讨论】:

  • 服务端代码是用什么写的?
  • 我正在使用 node JS 和 express 和 socket io

标签: javascript node.js express socket.io html5-canvas


【解决方案1】:

将地图图像分解为tiles。例如,谷歌地图就是这样做的。

【讨论】:

  • 我做不到。我的地图是 10,000 x 10,000 像素,当玩家移动时,地图应该向上或向下移动 1 个像素。
  • 这如何阻止您将地图切割成 100 1000 x 1000 图像?瓦片地图不必由重复瓦片组成。在 Google 地图上,每个图块都不同。
  • 我的意思是,如果我的用户每秒移动 60 次,则向上移动 1 个像素。每一帧,都是很多瓦片吧?
  • 如果您的图块为 1000 x 1000 像素,则将播放器向上移动 60 像素将使玩家留在同一个图块上或将它们向上移动一个图块。
猜你喜欢
  • 1970-01-01
  • 2017-04-26
  • 2022-12-01
  • 2011-05-17
  • 2015-11-09
  • 1970-01-01
  • 2011-10-16
  • 2014-05-25
  • 2021-06-30
相关资源
最近更新 更多