MultiLinesText

  ... the case you feel the need for a new feature or want to submit one.

MultiLinesText

Postby tobiaslucian » Mon Apr 14, 2014 6:53 pm

I make that simple code for multiple lines text... I'm a nooby and'll like your feedback about how do it better... that's it:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package com.example.teclado;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.andengine.entity.scene.Scene;
  7. import org.andengine.entity.text.Text;
  8. import org.andengine.opengl.font.Font;
  9. import org.andengine.opengl.vbo.VertexBufferObjectManager;
  10.  
  11.  
  12. public class MultiLineText{
  13.  
  14.         public int CENTERED = 0;
  15.         public int LEFT = 1;
  16.         public int RIGHT = 2;
  17.        
  18.         private float px;
  19.         private float width;
  20.        
  21.         private List<Text> texts = new ArrayList<Text>();
  22.        
  23.         public MultiLineText(float px, float py, float width, String text, Font font, float espaco, VertexBufferObjectManager vertex){
  24.                
  25.                 this.px = px;
  26.                 this.width = width;
  27.                
  28.                 int index = 0;
  29.                 int pos = 0;
  30.                 int LastSpace = 0;
  31.                 Text t = null;
  32.                 for(int i = 0; i<text.length(); i++){
  33.                         if(Character.toString(text.charAt(i)).equals(" "))LastSpace = i;
  34.                         if(t == null){
  35.                                 float y;
  36.                                 if(index == 0)y = py;
  37.                                 else y = py + index*(texts.get(0).getHeight()*espaco); 
  38.                                 t = new Text(px, y, font, text.subSequence(pos, i), 200, vertex);
  39.                         } else {
  40.                                 t.setText(text.subSequence(pos, i+1));
  41.                                 if(t.getWidth() > width){
  42.                                         index++;
  43.                                         t.setText(text.subSequence(pos, LastSpace));
  44.                                         i = LastSpace+2;
  45.                                         pos = LastSpace+1;
  46.                                         texts.add(t);
  47.                                         t = null;
  48.                                 } if(i == text.length() - 1){
  49.                                         t.setText(text.subSequence(pos, i+1));
  50.                                         texts.add(t);
  51.                                 }
  52.                         }
  53.                 }
  54.         }
  55.  
  56.         public void setAlign(int Align){
  57.                 if(Align == 0){
  58.                        
  59.                         for(int i = 0; i<texts.size(); i++){
  60.                                 texts.get(i).setX(px + (width-texts.get(i).getWidth())/2);
  61.                         }
  62.                        
  63.                 } else if(Align == 1){
  64.                         for(int i = 0; i<texts.size(); i++){
  65.                                 texts.get(i).setX(px);
  66.                         }
  67.                 } else if(Align == 2){
  68.                         for(int i = 0; i<texts.size(); i++){
  69.                                 texts.get(i).setX(px+(width-texts.get(i).getWidth()));
  70.                         }
  71.                 }
  72.         }
  73.        
  74.         public void attach(Scene cena){
  75.                 for(int i=0; i<texts.size(); i++){
  76.                         cena.attachChild(texts.get(i));
  77.                 }
  78.         }
  79. }
  80.  
Parsed in 0.014 seconds, using GeSHi 1.0.8.4


I don't like to need to call "attach", anybody has better solution?

;* haha
tobiaslucian
 
Posts: 1
Joined: Mon Apr 14, 2014 6:47 pm

Return to Features

Who is online

Users browsing this forum: No registered users and 7 guests