2017-05-21 1 views
0

J'ai travaillé sur le codage d'un programme de typographie en cours de traitement, et je n'arrive pas à obtenir la touche Entrée pour fonctionner comme je le souhaite. Voici mon code:Comment faire entrer la clé start une nouvelle chaîne sur une nouvelle ligne dans le traitement?

String vtl = ""; 
float cursor; 
int vtly = 20; 

void setup(){ 
    size(800, 200); 
    textSize(15); 
    stroke(0); 
    fill(0); 
} 
void draw(){ 
    background(250); 
    cursor = textWidth(vtl); 
    line(cursor, vtly - 15, cursor, vtly); 
    text(vtl, 0, vtly); 
} 
void keyPressed(){ 
    if(textWidth(vtl + key) == width){ 
     vtly = vtly + 25; 
    } 
    if(key == BACKSPACE){ 
     if(vtl.length() > 0){ 
     vtl = vtl.substring(0, vtl.length() - 1); 
     } 
    }else if(textWidth(vtl + key) < width){ 
     vtl = vtl + key; 
    } 

    if(key == ENTER){ 
     vtly = vtly + 15; 
     vtl = "\n"; 
    } 
} 

Chaque fois que la touche Entrée est pressée, toute la première ligne est supprimée. Comment puis-je réparer cela?

+0

Vous attribuez la valeur vtl de "\ n" à la fin. Que diriez-vous de l'assortir avec vtl = vtl + "\ n"; ? – Rikusor

+0

Cela ne fonctionne pas. Il envoie la première ligne et commence à taper environ 3 lignes à partir de cela. –

Répondre

0

Regardez cette ligne:

vtl = "\n"; 

Ici vous configurez vtl à "\n", qui jette l'ancienne valeur de vtl. Si vous voulez ajouter une nouvelle ligne à la fin de la String, vous devez l'ajouter à la valeur existante:

vtl = vtl + "\n"; 

Ce qui peut être raccourci à:

vtl += "\n"; 

Après que vous avez d'autres problèmes avec le placement vertical du texte, mais c'est une question distincte.

+0

Eh bien, si vous voulez me le dire, vous pourriez aussi bien me dire comment y remédier. –

+0

@I_Am_The_Ion_Man S'il vous plaît gardez à l'esprit que nous sommes tous volontaires pour répondre aux questions gratuitement, dans notre temps libre. Je n'ai pas vraiment commencé à penser au placement vertical, parce que vous ne l'avez pas mentionné dans votre question. Je vous donnais la chance de comprendre par vous-même. Mais si vous voulez être impoli, je passerais tout de suite mon temps à répondre à d'autres questions. Avoir un bon. –