2016-12-23 1 views
0

Я делаю простой проект с Physics.JS, и я хочу иметь возможность добавлять текст в мир PhysicsJS. Я просмотрел документацию, но не смог найти что-то, что могло бы позволить мне сделать такое. Есть ли способ добавить текст и также иметь возможность манипулировать его частями, такими как увеличение скорости, реституция и другие вещи от двигателя?Как добавить текст в холст с помощью PhysicsJS

+0

Если вы хотите визуализировать текст, который взаимодействует с физикой мира, вам нужно создать физическое тело в форме нужного вам текста. Что касается статического рисования текста, для этого физическийJS не создан. –

+0

Вы имеете в виду вытягивать каждого символа текста с помощью выпуклого полигона как способ создания тела? – Darko

+0

Yup. То есть, если вы хотите, чтобы он действовал как физическое тело. –

ответ

0

Просто продлить rectangle тело, и изменить его view на холст с текстом на нем:

Physics.body('text', 'rectangle', function (parent) { 
     var canv = document.createElement('canvas'); 
     canv.width = 310; 
     canv.height = 60; 
     var ctx = canv.getContext("2d"); 
     ctx.fillStyle = "#ffffff"; 
     ctx.textAlign = "left" 
     ctx.textBaseline = "top"; 
     ctx.font = "80px sans-serif"; 

     return { 
      // Called when the body is initialized 
      init: function(options) { 
       parent.init.call(this, options); 
       ctx.fillText(options.text,0,0); 
      }, 
      // Called when the body is added to a world 
      connect: function() { 
       this.view = canv; 
      } 
     } 
    }); 

Затем, чтобы создать его экземпляр:

Physics.body('text', { 
    x: 400, 
    y: 570, 
    width: 310, 
    height: 60, 
    text: "Some text here", 
}) 

Вы указываете строку текста с помощью options.text ,
Конечно, можно было бы сделать его более динамичным, позволяя указывать параметры шрифта в параметрах, затем автоматически вычислять размер на init и т. Д. ...