PHP Tile-based map - >从左上角绘制

时间:2012-10-30 07:35:13

标签: php javascript html mysql

我无法绘制基于图块的地图:( 然而,地图只会显示对玩家可见的内容 我有一个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开始绘制,因为我只想显示播放器周围的图块。

1 个答案:

答案 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。

中抽取