0

加工初心者です。理想的には、表示される単語ごとにランダムにフォントを変更したいと思います。ただし、JAVA に対する理解が不足しているため、今のところ、配列「nums」に従って特定の番号で各フォントを変更しようとしています。単語ごとにフォントを変更する素晴らしいアイデアを教えていただけませんか?

PFont f1, f2, f3;
String message = "transText 2013";
int[] nums = {1, 3, 5, 7, 9, 11, 13};
float r,g,b = 0;
float rr = 0.5;
float gg = 0.1;
float bb = 0.3;
float n;


void setup(){
  size(800,400);
  frameRate(20);
  nums = new int[6];
  f1 = createFont("Arial-Black", 16, true);
  f2 = createFont("Courier", 16, true);
}

void draw(){

rr = rr + 0.02;
gg = gg + 0.02;
bb = bb + 0.02;

background(35);

r = map(random(rr),0,1,100,255);
g = map(random(gg),0,1,100,255);
b = map(random(bb),0,1,100,255);
color n = color(r,g,b);
fill(n);
// The first character is at pixel 10.
int x = 50; 
for(int i = 0; i < message.length(); i++) {
  if(i == nums){
  textFont(f1);
  }else{
  textFont(f2);
  };

  textSize(random(12,120));
  // Each character is displayed one at a time with the charAt() function.
  text(message.charAt(i),x,height/2);
  // All characters are spaced 50 pixels apart.
  x += textWidth(message.charAt(i)); 
}
}
4

4 に答える 4

0
if(i == nums){

整数値 (数値) を整数の配列 (多数の数値) と比較します。それはまったく不可能です。

整数値を配列の ELEMENT と比較できます。例えば:

if(i==nums[i])

または、配列に値が含まれているかどうかを確認できます。

List<Integer> list = Arrays.asList(nums);
if(list.contains(i))
于 2013-09-05T20:47:28.300 に答える
0

RiTaライブラリを使用できます。

import rita.*;

RiText[] rts;
String[] fonts = { "arial","times","courier" };

void setup() {

   rts = RiText.createLetters(this,"transText 2013",5,30,100);
}

void draw() {

  background(255);
  for (int i = 0; i < rts.length; i++) {   
    rts[i].fill(RiText.randomColor());
    rts[i].font(fonts[(int)random(fonts.length)], 14);
  }
  RiText.drawAll();
}
于 2013-09-07T06:47:08.080 に答える