Android Open Source - Marble-Run Curve Pipe






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 w  w w .  ja  v  a  2 s .co m
import nttu.edu.ball.Ball;
import nttu.edu.ball.Marble;
import nttu.edu.graphics.Art;
import nttu.edu.graphics.RenderView;
import nttu.edu.level.Stage;
import android.graphics.Canvas;

public class CurvePipe extends Path {
  
  public float x, y;
  
  public CurvePipe() {
    super();
  }
  
  public boolean checkCollision(Ball b) {
    switch(this.orientation) {
      case LEFT_TO_UP:
      case LEFT_TO_DOWN:
      case RIGHT_TO_UP:
      case RIGHT_TO_DOWN:
        if (b.position[0] <= dstRect.right && b.position[1] <= dstRect.bottom && b.position[0] >= dstRect.left && b.position[1] >= dstRect.top) {
          b.setCurvePipe(this);
          break;
        }
      default:
        if (b.getCurvePipe() != null && b.getCurvePipe() == this)
          b.setCurvePipe(null);
        return false;
    }
    return true;
  }
  
  public void tick(Stage s) {
    place();
    checkCollision(s.cue);
    for (Marble m: s.marbles)
      checkCollision(m);
  }
  
  public void place() {
    float size = 8 * PIPE_SIZE * ratio;
    dstRect.set(position[0] - size, position[1] - size, position[0] + size, position[1] + size);
    switch(this.orientation) {
      case LEFT_TO_UP:
        x = dstRect.left;
        y = dstRect.top;
        break;
      case LEFT_TO_DOWN:
        x = dstRect.left;
        y = dstRect.bottom;
        break;
      case RIGHT_TO_UP:
        x = dstRect.right;
        y = dstRect.top;
        break;
      case RIGHT_TO_DOWN:
        x = dstRect.right;
        y = dstRect.bottom;
        break;
    }
  }
  
  @Override
  public void render(Canvas c, final float centerX, final float centerY) {
    if (bitmap == null) {
      bitmap = Art.sprites;
      return;
    }
    float xOffset = this.position[0] - RenderView.cameraX + centerX;
    float yOffset = this.position[1] - RenderView.cameraY + centerY;
    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)
      return;
    float size = 8 * PIPE_SIZE * ratio;
    dstRect.set(f - size, g - size, f + size, g + size);
  }
}




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