2012-12-09 4 views
0

У меня проблема с функцией заполнения холста. У меня есть этот код:Как добавить текст в холст

 scene.shapes['shop1'] = new Shape(); 
     var ps1 = scene.shapes['shop1'].points; // for convenience 

     ps1[0] = new Point(1024, 66, 10); // left bottom 
     ps1[1] = new Point(694, 66, 10); // right bottom 
     ps1[2] = new Point(694, 466, 10); // right top 
     ps1[3] = new Point(1024, 466, 10); // left top  


     // Background 
     scene.shapes['shop1'].polygons.push(new Polygon(
      [ps1[0], ps1[1], ps1[2], ps1[3] ], 
      new Point(0, 0, 1), 
      true /* double-sided */, 
      Polygon.SOLID, 
      [177, 216, 249] 
     )); 

        scene.shapes['shop1Header'] = new Shape(); 
     var ps1h = scene.shapes['shop1Header'].points; // for convenience 

     ps1h[0] = new Point(1024, 400, 11); // left bottom 
     ps1h[1] = new Point(694, 400, 11); // right bottom 
     ps1h[2] = new Point(694, 466, 11); // right top 
     ps1h[3] = new Point(1024, 466, 11); // left top  


     // Background 
     scene.shapes['shop1Header'].polygons.push(new Polygon(
      [ps1h[0], ps1h[1], ps1h[2], ps1h[3] ], 
      new Point(0, 0, 1), 
      true /* double-sided */, 
      Polygon.SOLID, 
      [175, 175, 175] 
     ));  

          var x = -1024; 
          var y = -500; 

          ctx.font = '60pt Calibri'; 
          ctx.lineWidth = 3; 
          // fill color 
          ctx.fillStyle = 'blue'; 
          ctx.fillText('Hello World!', x, y); 

Но он не создает текст и не отображает магазин. Вы знаете, как решить эту проблему? Большое спасибо.

ответ

2

Значение x и y отрицательно, поэтому вы рисуете за пределами холста. Если вы установите x на 0 и y на 0 + размер шрифта, он нарисует текст в верхнем левом углу.

EDIT: вам нужно добавить размер шрифта в y.

ctx.font = "60px Calibri"; // Use pixels instead of points 
ctx.fillText("Hello World", 0, 60); 
+0

Это отрицательное значение не проблема, потому что у меня есть камера z positoin = 2048, co, которую она должна показать. Я попробовал изменить его на O, O, но все равно ничего. – user1870556

+0

Извините. Я исправляю свой ответ. На 2-мерном холсте нет позиции z. Как назначить ctx? – ZippyV

+0

здесь http://pastebin.com/56GFR2Vi - это код завершения. Как назначить ctx: canvas = document.getElementById ("cv"); ctx = canvas.getContext ("2d"); и есть положение камеры с положением z: scene.camera.x = 0; scene.camera.y = 0; scene.camera.z = 2048; – user1870556

Смежные вопросы