Android Open Source - Marble-Run Bumper






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  .j  a  v a 2  s  .  co  m*/
import nttu.edu.ball.Ball;
import nttu.edu.ball.Marble;
import nttu.edu.graphics.RenderView;
import nttu.edu.level.Stage;
import android.graphics.Canvas;
import android.util.FloatMath;

public class Bumper extends Terrain {
  
  public float radius;
  
  public Bumper(float x, float y, final float ratio) {
    super(x, y);
    radius = 16f * ratio;
    srcRect.set(0, 32, 16, 48);
    dstRect.set(this.x - radius, this.y - radius, this.x + radius, this.y + radius);
  }
  
  @Override
  public void tick(Stage s) {
    checkCollision(s.cue);
    for (Marble m : s.marbles) {
      checkCollision(m);
    }
  }
  
  @Override
  public void render(Canvas c, final float cx, final float cy) {
    if (bitmap != null) {
      float xOffset = this.x - RenderView.cameraX + cx;
      float yOffset = this.y - RenderView.cameraY + cy;
      if (RenderView.bounds.contains(xOffset, yOffset)) {
        move(xOffset, yOffset);
        c.drawBitmap(bitmap, srcRect, dstRect, null);
      }
    }
  }
  
  private void move(float f, float g) {
    if (bitmap != null) {
      dstRect.set(f - this.radius, g - this.radius, f + this.radius, g + this.radius);
    }
  }
  
  private void checkCollision(Ball b) {
    float dx = b.position[0] - x;
    float dy = b.position[1] - y;
    float distance = FloatMath.sqrt(dx * dx + dy * dy);
    if (distance < radius + b.radius)
      b.bumper = this;
    else if (b.bumper != null && b.bumper == this)
      b.bumper = null;
  }
  
}




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