0

このコードを loadStrings(); で動作させたいと思います。

これで、コードはString string =を介してテキストをロードします。.txt ファイルを読み取れるように変更したいと思います。

いろいろ試してみましたが、いつもエラーコードが出るようです。出来ますか?

PFont font;
String string = "Processing is an open source programming language and environment for people who want to program images, animation, and interactions.";
int fontSize = 10;
int specificWidth = 150;
int lineSpacing = 2;

int textHeight;

void setup() {
  size(600,600);
  background(0);

  font = createFont("Times New Roman", fontSize);
  textFont(font,fontSize);
  noLoop();
}

void draw() {
  fill(60);
  stroke(60);
  rect(100,100,specificWidth, calculateTextHeight(string, specificWidth, fontSize, lineSpacing));
  fill(255);
  text(string, 100,100,specificWidth,1000);
}

int calculateTextHeight(String string, int specificWidth, int fontSize, int lineSpacing) {
  String[] wordsArray;
  String tempString = "";
  int numLines = 0;
  float textHeight;

  wordsArray = split(string, " ");

  for (int i=0; i < wordsArray.length; i++) {
    if (textWidth(tempString + wordsArray[i]) < specificWidth) {
 tempString += wordsArray[i] + " ";
    }
    else {
 tempString = wordsArray[i] + " ";
 numLines++;
    }
  }

  numLines++; //adds the last line

  textHeight = numLines * (textDescent() + textAscent() + lineSpacing);
  return(round(textHeight));
} 
4

1 に答える 1

1

スケッチに移動 -> ファイルを追加してテキスト ファイルを追加し、次のコードを使用してテキスト ファイルから文字列を取得します。

PFont font;
String string = "";
int fontSize = 10;
int specificWidth = 150;
int lineSpacing = 2;
String lines[];

int textHeight;

void setup() {
  size(600,600);

  lines[] = loadStrings("text.txt");

  font = createFont("Times New Roman", fontSize);
  textFont(font,fontSize);
  noLoop();
}

void draw() {
  background(0);
  string = lines[0];
  fill(60);
  stroke(60);
  rect(100,100,specificWidth, calculateTextHeight(string, specificWidth, fontSize, lineSpacing));
  fill(255);
  text(string, 100,100,specificWidth,1000);
}

int calculateTextHeight(String string, int specificWidth, int fontSize, int lineSpacing) {
  String[] wordsArray;
  String tempString = "";
  int numLines = 0;
  float textHeight;

  wordsArray = split(string, " ");

  for (int i=0; i < wordsArray.length; i++) {
    if (textWidth(tempString + wordsArray[i]) < specificWidth) {
 tempString += wordsArray[i] + " ";
    }
    else {
 tempString = wordsArray[i] + " ";
 numLines++;
    }
  }

  numLines++; //adds the last line

  textHeight = numLines * (textDescent() + textAscent() + lineSpacing);
  return(round(textHeight));
} 

この例では、文字列全体がテキスト ファイルの最初の行にあることに注意してください。他の行から文字列を取得したい場合は、「行」配列の別の部分にアクセスする必要があります。

于 2013-08-05T14:59:01.137 に答える