Android Open Source - Marble-Run Void






From Project

Back to project page Marble-Run.

License

The source code is released under:

Apache License

If you think the Android project Marble-Run 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 nttu.edu.entity;
//from www  . ja va  2 s .c  om
import java.util.Random;
import nttu.edu.graphics.Art;
import nttu.edu.graphics.RenderView;
import nttu.edu.level.Stage;
import android.graphics.Canvas;

public class Void extends Terrain {
  public float radius = 0f;
  public int direction;
  
  public Void(float x, float y, final float ratio) {
    super(x, y);
    // TODO: Will give it a random background.
    Random random = new Random();
    switch (random.nextInt(20)) {
      case 2:
        srcRect.set(32, 16, 40, 24);
        break;
      case 5:
        srcRect.set(32, 24, 40, 32);
        break;
      case 8:
        srcRect.set(40, 24, 48, 32);
        break;
      default:
        srcRect.set(40, 16, 48, 24);
        break;
    }
    this.radius = 16 * ratio;
    this.direction = random.nextInt(4);
    dstRect.set(this.x - radius, this.y - radius, this.x + radius, this.y + radius);
  }
  
  @Override
  public void tick(Stage s) {
    if (bitmap != Art.sprites) {
      bitmap = Art.sprites;
      return;
    }
    dstRect.set(x - radius, y - radius, x + radius, y + radius);
    if (s.cue.position[0] <= dstRect.right && s.cue.position[1] <= dstRect.bottom && s.cue.position[0] >= dstRect.left && s.cue.position[1] >= dstRect.top) {
      if (s.cue.position[2] < 0.1f)
        s.cue.die();
    }
  }
  
  @Override
  public void render(Canvas c, float centerX, float centerY) {
    if (bitmap != null) {
      float xOffset = this.x - RenderView.cameraX + centerX;
      float yOffset = this.y - RenderView.cameraY + centerY;
      if (RenderView.bounds.contains(xOffset, yOffset)) {
        move(xOffset, yOffset);
        //TODO: Make this bitmap use the matrix, instead of rotating the entire Canvas (takes a long time).
        c.save();
        c.rotate((this.direction * 90), dstRect.centerX(), dstRect.centerY());
        c.drawBitmap(bitmap, srcRect, dstRect, null);
        c.restore();
        
      }
    }
  }
  
  private void move(float f, float g) {
    if (bitmap != null) {
      dstRect.set(f - this.radius, g - this.radius, f + this.radius, g + this.radius);
    }
  }
}




Java Source Code List

nttu.edu.activities.LevelSelectionActivity.java
nttu.edu.activities.MenuActivity.java
nttu.edu.activities.NewLoadingActivity.java
nttu.edu.activities.PlayActivity.java
nttu.edu.activities.ScoreActivity.java
nttu.edu.activities.SettingsActivity.java
nttu.edu.alt.NewBall.java
nttu.edu.alt.NewCue.java
nttu.edu.alt.NewHole.java
nttu.edu.alt.Obstacle.java
nttu.edu.ball.Ball.java
nttu.edu.ball.Cue.java
nttu.edu.ball.Marble.java
nttu.edu.entity.Border.java
nttu.edu.entity.Bumper.java
nttu.edu.entity.Coin.java
nttu.edu.entity.Connector.java
nttu.edu.entity.CurvePipe.java
nttu.edu.entity.Entity.java
nttu.edu.entity.Funnel.java
nttu.edu.entity.Hole.java
nttu.edu.entity.Path.java
nttu.edu.entity.Pipe.java
nttu.edu.entity.Ramp.java
nttu.edu.entity.ShortFunnel.java
nttu.edu.entity.Tee.java
nttu.edu.entity.Terrain.java
nttu.edu.entity.Void.java
nttu.edu.graphics.Art.java
nttu.edu.graphics.RenderView.java
nttu.edu.handler.Accelero.java
nttu.edu.handler.ImageInfo.java
nttu.edu.handler.Info.java
nttu.edu.handler.Loading.java
nttu.edu.handler.ModPlayer.java
nttu.edu.handler.MusicHandler.java
nttu.edu.hud.BestScore.java
nttu.edu.hud.Compass.java
nttu.edu.hud.GoalCompass.java
nttu.edu.hud.HUDMenu.java
nttu.edu.hud.HUDScore.java
nttu.edu.hud.MarbleCompass.java
nttu.edu.hud.TimeBasedScore.java
nttu.edu.level.HUD.java
nttu.edu.level.Stage.java
nttu.edu.score.Format.java
nttu.edu.score.Score.java
nttu.edu.sound.Sound.java