我无法绘制基于图块的地图:(
然而,地图只会显示对玩家可见的内容
我有一个canvas
元素,我在其上绘制一个图层。
在canvas
上,我使用javascript附加图像32x32px。
图片的位置基于:$tr
$tc
如下图所示:
for($tr = 0; $tr < count($mapArray)-1; $tr++) {
for($tc = 0; $tc < count($mapArray[$tr])-1; $tc++) {
if($mapArray[$tr][$tc]!== null){
echo "attachImage(" . $mapArray[$tr][$tc]. "," . $tc . "," . $tr . ",context);";
}
}
}
我不知道如何从0,0开始绘制瓷砖。它始终从阵列上的相同位置开始绘制图块(例如3,2)。也许我在想这个或者我太累了......我找不到任何方式:(
这是javascript部分
function attachImage(tile, x, y, canvasContext)
{
var base_image = new Image();
base_image.onload = function(){
canvasContext.drawImage(base_image, 32*(x-0),32*(y-0));
}
base_image.src = 'Images/tiles/'+(tile-1)+'.png';
}
重申一下,我希望它从0px,0px开始绘制,因为我只想显示播放器周围的图块。
答案 0 :(得分:0)
我不知道如何删除这个问题,但我找到了答案
$c = 0;
for($tr = $drawy; $tr < $drawy2; $tr++) {
$r = 0;
for($tc = $drawx; $tc < $drawx2; $tc++) {
if($mapArray[$tr][$tc] !== null)
{
$tile = $mapArray[$tr][$tc];
echo "attachImage(" . $tile . "," . $r . "," . $c . ",context);";
}
$r++;
}
$c++;
}
for($tr = 0; $tr < count($mapArrayy)-1; $tr++) {
for($tc = 0; $tc < count($mapArrayy[$tr])-1; $tc++) {
if($mapArrayy[$tr][$tc]!== null){
echo "attachImage(" . $mapArrayy[$tr][$tc]. "," . $tc . "," . $tr . ",context2);";
}
}
}
我在第一个循环中添加了$ c和$ r。就这样。现在它从0px,0px。
中抽取