Android Open Source - feup-lpoo-android-tower-defense Text Parser






From Project

Back to project page feup-lpoo-android-tower-defense.

License

The source code is released under:

MIT License

If you think the Android project feup-lpoo-android-tower-defense listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pt.up.fe.lpoo.towerdefense;
/* w w w  .j  a va  2  s . c o  m*/
import pt.up.fe.lpoo.framework.Graphics;
import android.graphics.Paint;

/**
 * Class used to parse strings of text and separate them by lines
 * @author Joao Marinheiro
 * @author Luis Cleto
 */
public class TextParser {
  private String text;
  private int textSize;
  
  /**
   * Constructor for the TextParser. Calculates the number of lines in the text.
   * @param text text to be parsed
   */
  public TextParser(String text)
  {
    this.text = text;
    textSize = 0;
    
    for(int i = 0; i < text.length(); i++)
    {
      if(text.charAt(i) == '\n')
        textSize++;
    }
    if(!text.endsWith("\n"))
      textSize++;
  }
  /**
   * @param lineNum number of the line to search for
   * @return returns a string with the specified line
   */
  private String getLine(int lineNum)
  {
    if(lineNum < 0 || lineNum > textSize)
      return null;
    
    int lineStart = 0;
    int currChar = 0;
    
    for(int currLine = 0; currLine != lineNum; currLine++)
    {  
      while(text.charAt(currChar) != '\n')
      {  
        currChar++;
        
        if(currChar >= text.length())
          return null;
      }
      
      currChar++;
      
      if(currChar >= text.length())
        return null;
    }
    
    lineStart = currChar;
    
    while(text.charAt(currChar) != '\n' || currChar >= text.length())
    {
      currChar++;
    }
    
    return text.substring(lineStart, currChar);
  }
  
  /**
   * Draws the text in the parser line by line on the screen in the specified position
   * @param font Paint object to be used for the drawing
   * @param x drawing starting x position
   * @param y drawing starting y position
   * @param spacing number of pixels between each line
   * @param g Graphics object containing the string drawing functions to use for the drawing
   */
  public void drawText(Paint font, int x, int y, int spacing, Graphics g)
  {  
    for(int i = 0; i < textSize; i++)
    {
      int currY = y + spacing*i;
      
      g.drawString(getLine(i), x, currY, font);
    }
  }
}




Java Source Code List

pt.up.fe.lpoo.framework.Audio.java
pt.up.fe.lpoo.framework.FileIO.java
pt.up.fe.lpoo.framework.Game.java
pt.up.fe.lpoo.framework.Graphics.java
pt.up.fe.lpoo.framework.Image.java
pt.up.fe.lpoo.framework.Input.java
pt.up.fe.lpoo.framework.Music.java
pt.up.fe.lpoo.framework.Pool.java
pt.up.fe.lpoo.framework.Screen.java
pt.up.fe.lpoo.framework.Sound.java
pt.up.fe.lpoo.framework.implementation.AndroidAudio.java
pt.up.fe.lpoo.framework.implementation.AndroidFastRenderView.java
pt.up.fe.lpoo.framework.implementation.AndroidFileIO.java
pt.up.fe.lpoo.framework.implementation.AndroidGame.java
pt.up.fe.lpoo.framework.implementation.AndroidGraphics.java
pt.up.fe.lpoo.framework.implementation.AndroidImage.java
pt.up.fe.lpoo.framework.implementation.AndroidInput.java
pt.up.fe.lpoo.framework.implementation.AndroidMusic.java
pt.up.fe.lpoo.framework.implementation.AndroidSound.java
pt.up.fe.lpoo.framework.implementation.MultiTouchHandler.java
pt.up.fe.lpoo.framework.implementation.SingleTouchHandler.java
pt.up.fe.lpoo.framework.implementation.TouchHandler.java
pt.up.fe.lpoo.towerdefense.Animation.java
pt.up.fe.lpoo.towerdefense.Assets.java
pt.up.fe.lpoo.towerdefense.BarricadeDefense.java
pt.up.fe.lpoo.towerdefense.BoulderProjectile.java
pt.up.fe.lpoo.towerdefense.BoulderTower.java
pt.up.fe.lpoo.towerdefense.BuildingOption.java
pt.up.fe.lpoo.towerdefense.DefenseObject.java
pt.up.fe.lpoo.towerdefense.DescriptionObject.java
pt.up.fe.lpoo.towerdefense.Enemy.java
pt.up.fe.lpoo.towerdefense.FreezeTower.java
pt.up.fe.lpoo.towerdefense.GameElements.java
pt.up.fe.lpoo.towerdefense.GameObj.java
pt.up.fe.lpoo.towerdefense.Golem.java
pt.up.fe.lpoo.towerdefense.InstructionsScreen.java
pt.up.fe.lpoo.towerdefense.LevelScreen.java
pt.up.fe.lpoo.towerdefense.LevelSelectionScreen.java
pt.up.fe.lpoo.towerdefense.LoadingScreen.java
pt.up.fe.lpoo.towerdefense.MainMenuScreen.java
pt.up.fe.lpoo.towerdefense.Messages.java
pt.up.fe.lpoo.towerdefense.MusicPlayer.java
pt.up.fe.lpoo.towerdefense.PathCluster.java
pt.up.fe.lpoo.towerdefense.PoisonTower.java
pt.up.fe.lpoo.towerdefense.Projectile.java
pt.up.fe.lpoo.towerdefense.Skull.java
pt.up.fe.lpoo.towerdefense.Slime.java
pt.up.fe.lpoo.towerdefense.SplashLoadingScreen.java
pt.up.fe.lpoo.towerdefense.StatusEffect.java
pt.up.fe.lpoo.towerdefense.TarPoolDefense.java
pt.up.fe.lpoo.towerdefense.TextParser.java
pt.up.fe.lpoo.towerdefense.Tile.java
pt.up.fe.lpoo.towerdefense.TowerDefenseGame.java
pt.up.fe.lpoo.towerdefense.TurretProjectile.java
pt.up.fe.lpoo.towerdefense.TurretTower.java
pt.up.fe.lpoo.towerdefense.Wave.java