PFont f; int ypos; int xpos, xpos2; PGraphics masker; PImage img; String basetext = "LOVEYOULOVEYOULOVEYOULOVEYOULOVEYOU"; String masktext = "YOULOVEYOULOVEYOULOVEYOULOVEYOULOVE"; void setup() { size(600, 480); img = createImage(); f = createFont("serif", 500); textFont(f); masker = createGraphics(width, height); ypos = height*.9; xpos = width*.5; xpos2 = (width*.5)-textWidth(basetext); frameRate(30); smooth(); } void draw () { background(255); masker.beginDraw(); // masker.textAlign(CENTER); masker.textFont(f); masker.background(255); masker.fill(0); masker.text(masktext, xpos, ypos); masker.endDraw(); // textAlign(CENTER); textFont(f); fill(0); text(basetext, xpos2, ypos); img = masker.get(); blend(img, 0, 0, masker.width, masker.height, 0, 0, width, height, ADD); xpos -= 2; xpos2 += 1; if (xpos < -textWidth(masktext)) { xpos = 0; xpos2 = -textWidth(basetext); } }