2009年2月6日金曜日

テキスト03


あのあとふと考えたのですが、前回のコードはPadオブジェクトを生成するときにフォントをロードしていました。
とすると、もしかするとプログラムのロード時にフォントを決めてしまえばモタつかないのではないか?と考えました。
これは当たっていました。
このようにしてみても、和文字を含むフォントデータ自体は2MBくらいありますので、はじめのロード自体には時間がかかります。

//processing
XtPad r1 = new XtPad(10,10,100,20,color(50,50,50));

void setup() {
size(256, 256);
background(100);
stroke(200);
fill(127);
frameRate(15);
r1.loadPadFont();
}

void draw() {
//background(100);
}

void mousePressed() {
if (mousePressed && (mouseButton == LEFT)){
r1.createPad();
}else if (mousePressed && (mouseButton == RIGHT)){
r1.movePad();
}
}

void mouseDragged() {
if (mousePressed && (mouseButton == RIGHT)){
r1.movePad();
}
}
//------------------------------------
class XtPad {
color pCol;
float xpos, ypos, rectWidth, rectHeight;
PFont font;

XtPad(float x, float y, float w, float h,color c){
xpos = x;
ypos = y;
rectWidth = w;
rectHeight =h;
pCol = c;
}
void loadPadFont() {
font = loadFont("MS-Gothic-12.vlw");
textFont(font, 12);
}
void createPad() {
fill(pCol);
rect(mouseX, mouseY, rectWidth, rectHeight);
fill(pCol+color(40,40,40));
text("ABCDEFG日本語", mouseX+10, mouseY+15);
}
void movePad(){
xpos=mouseX;
ypos=mouseY;
}
}

制作・©:のぼる/N.Lab